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 25196 : bool is_afpinfo_stream(const char *sname) 28 : { 29 0 : int cmp; 30 : 31 25196 : if (sname == NULL) { 32 7074 : return false; 33 : } 34 : 35 18122 : cmp = strncasecmp(sname, 36 : AFPINFO_STREAM_NAME, 37 : strlen(AFPINFO_STREAM_NAME)); 38 18122 : if (cmp == 0) { 39 12004 : return true; 40 : } 41 6118 : return false; 42 : } 43 : 44 13210 : bool is_afpresource_stream(const char *sname) 45 : { 46 0 : int cmp; 47 : 48 13210 : if (sname == NULL) { 49 7074 : return false; 50 : } 51 : 52 6136 : cmp = strncasecmp(sname, 53 : AFPRESOURCE_STREAM_NAME, 54 : strlen(AFPRESOURCE_STREAM_NAME)); 55 6136 : if (cmp == 0) { 56 3370 : return true; 57 : } 58 2766 : return false; 59 : } 60 : 61 : /** 62 : * Test whether stream is an Apple stream. 63 : **/ 64 10572 : bool is_apple_stream(const char *sname) 65 : { 66 10572 : if (is_afpinfo_stream(sname)) { 67 2844 : return true; 68 : } 69 7728 : if (is_afpresource_stream(sname)) { 70 752 : return true; 71 : } 72 6976 : return false; 73 : }