diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/acconfig.h | 1 | ||||
-rw-r--r-- | source3/include/local.h | 3 | ||||
-rw-r--r-- | source3/lib/netatalk.c | 155 |
3 files changed, 0 insertions, 159 deletions
diff --git a/source3/acconfig.h b/source3/acconfig.h index 97b1e85924..8312a5e5d3 100644 --- a/source3/acconfig.h +++ b/source3/acconfig.h @@ -73,7 +73,6 @@ #undef HAVE_VA_COPY #undef HAVE_SETRESUID_DECL #undef HAVE_SETRESUID -#undef WITH_NETATALK #undef WITH_UTMP #undef WITH_MSDFS #undef WITH_LIBICONV diff --git a/source3/include/local.h b/source3/include/local.h index bf828b5894..e16cdbbc5d 100644 --- a/source3/include/local.h +++ b/source3/include/local.h @@ -166,9 +166,6 @@ it are worked out */ #define USE_READ_PREDICTION 0 -/* name of directory that netatalk uses to store macintosh resource forks */ -#define APPLEDOUBLE ".AppleDouble/" - /* * Default passwd chat script. */ diff --git a/source3/lib/netatalk.c b/source3/lib/netatalk.c deleted file mode 100644 index 035f3794a0..0000000000 --- a/source3/lib/netatalk.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - Unix SMB/CIFS implementation. - Copyright (C) Andrew Tridgell 1992-1998 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* - netatalk.c : routines for improving interaction between Samba and netatalk. - Copyright (C) John D. Blair <jdblair@cobaltnet.com> 1998 - Cobalt Networks, Inc. -*/ - -#include "includes.h" - -#ifdef WITH_NETATALK - -/***************** - ntalk_resourcepath: creates the path to the netatalk resource fork for - a given file - - fname: normal filename - doublename: buffer that will contain the location of the resource fork - length: length of this buffer (to prevent overflows) - - NOTE: doesn't currently gracefully deal with buffer overflows- it just - doesn't allow them to occur. -******************/ -void ntalk_resourcepath(const char *fname, char *doublename, const int length) -{ - int i; - int charnum; - int lastslash; - char appledouble[] = APPLEDOUBLE; - - /* copy fname to doublename and find last slash */ - for (i = 0; (fname[i] != 0) && (i <= length); i++) { - if (fname[i] == '/') { - lastslash = i; - } - doublename[i] = fname[i]; - } - lastslash++; /* location just after last slash */ - - /* insert .AppleDouble */ - charnum = lastslash; - for (i = 0; (appledouble[i] != 0) && (i <= length); i++) { - doublename[charnum] = appledouble[i]; - charnum++; - } - - /* append last part of file name */ - for (i = lastslash; (fname[i] != 0) && (i <= length); i++) { - doublename[charnum] = fname[i]; - charnum++; - } - - doublename[charnum] = 0; -} - -/********************** - ntalk_mkresdir: creates a new .AppleDouble directory (if necessary) - for the resource fork of a specified file -**********************/ -int ntalk_mkresdir(const char *fname) -{ - char fdir[255]; - int i; - int lastslash; - SMB_STRUCT_STAT dirstats; - char appledouble[] = APPLEDOUBLE; - - /* find directory containing fname */ - for (i = 0; (fname[i] != 0) && (i <= 254); i++) { - fdir[i] = fname[i]; - if (fdir[i] == '/') { - lastslash = i; - } - } - lastslash++; - fdir[lastslash] = 0; - sys_lstat(fdir, &dirstats); - - /* append .AppleDouble */ - for (i = 0; (appledouble[i] != 0) && (lastslash <= 254); i++) { - fdir[lastslash] = appledouble[i]; - lastslash++; - } - fdir[lastslash] = 0; - - /* create this directory */ - /* silently ignore EEXIST error */ - if ((mkdir(fdir, dirstats.st_mode) < 0) && (errno != EEXIST)) { - return errno; - } - - /* set ownership of this dir to the same as its parent */ - /* holy race condition, batman! */ - /* warning: this doesn't check for errors */ - chown(fdir, dirstats.st_uid, dirstats.st_gid); - - printf("%s\n", fdir); - - return 1; -} - -/********************** - ntalk_unlink: unlink a file and its resource fork -**********************/ -int ntalk_unlink(const char *fname) -{ - char buf[255]; - - ntalk_resourcepath(fname, buf, 255); - unlink(buf); - return unlink(fname); -} - -/********************** - ntalk_chown: chown a file and its resource fork -**********************/ -int ntalk_chown(const char *fname, const uid_t uid, const gid_t gid) -{ - char buf[255]; - - ntalk_resourcepath(fname, buf, 255); - chown(buf, uid, gid); - return chown(fname, uid, gid); -} - -/********************** - ntalk_chmod: chmod a file and its resource fork -**********************/ -int ntalk_chmod(const char *fname, mode_t perms) -{ - char buf[255]; - - ntalk_resourcepath(fname, buf, 255); - chmod(buf, perms); - return chmod(fname, perms); -} - -#endif /* WITH_NETATALK */ |