Line data Source code
1 : /* 2 : Unix SMB/CIFS implementation. 3 : Samba utility functions 4 : Copyright (C) Ralph Boehme 2019 5 : 6 : This program is free software; you can redistribute it and/or modify 7 : it under the terms of the GNU General Public License as published by 8 : the Free Software Foundation; either version 3 of the License, or 9 : (at your option) any later version. 10 : 11 : This program is distributed in the hope that it will be useful, 12 : but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 : GNU General Public License for more details. 15 : 16 : You should have received a copy of the GNU General Public License 17 : along with this program. If not, see <http://www.gnu.org/licenses/>. 18 : */ 19 : 20 : #include "includes.h" 21 : #include "MacExtensions.h" 22 : #include "util_macstreams.h" 23 : 24 : /* Yes, I have considered multibyte */ 25 : #undef strncasecmp 26 : 27 25324 : bool is_afpinfo_stream(const char *sname) 28 : { 29 0 : int cmp; 30 : 31 25324 : if (sname == NULL) { 32 7062 : return false; 33 : } 34 : 35 18262 : cmp = strncasecmp(sname, 36 : AFPINFO_STREAM_NAME, 37 : strlen(AFPINFO_STREAM_NAME)); 38 18262 : if (cmp == 0) { 39 12072 : return true; 40 : } 41 6190 : return false; 42 : } 43 : 44 13270 : bool is_afpresource_stream(const char *sname) 45 : { 46 0 : int cmp; 47 : 48 13270 : if (sname == NULL) { 49 7062 : return false; 50 : } 51 : 52 6208 : cmp = strncasecmp(sname, 53 : AFPRESOURCE_STREAM_NAME, 54 : strlen(AFPRESOURCE_STREAM_NAME)); 55 6208 : if (cmp == 0) { 56 3442 : return true; 57 : } 58 2766 : return false; 59 : } 60 : 61 : /** 62 : * Test whether stream is an Apple stream. 63 : **/ 64 10598 : bool is_apple_stream(const char *sname) 65 : { 66 10598 : if (is_afpinfo_stream(sname)) { 67 2858 : return true; 68 : } 69 7740 : if (is_afpresource_stream(sname)) { 70 764 : return true; 71 : } 72 6976 : return false; 73 : }