X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fafpd%2Ffiledir.c;h=8f1109c9efea834d53752530d176c83f2988937b;hb=edf01c724768d494e522ec84380e8e49b37a2bd6;hp=d41a439ecb23df0caed1e4bb2fcdaccb64e197c3;hpb=863882cb7af7d0bd2651f957b155fd5aa9e2d9d6;p=netatalk.git diff --git a/etc/afpd/filedir.c b/etc/afpd/filedir.c index d41a439e..8f1109c9 100644 --- a/etc/afpd/filedir.c +++ b/etc/afpd/filedir.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "directory.h" #include "dircache.h" @@ -103,7 +104,7 @@ int afp_getfildirparams(AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *r if (!dir) return AFPERR_NOOBJ; - ret = getdirparams(vol, dbitmap, s_path, dir, + ret = getdirparams(obj, vol, dbitmap, s_path, dir, rbuf + 3 * sizeof( uint16_t ), &buflen ); if (ret != AFP_OK ) return( ret ); @@ -111,7 +112,7 @@ int afp_getfildirparams(AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *r /* this is a directory */ *(rbuf + 2 * sizeof( uint16_t )) = (char) FILDIRBIT_ISDIR; } else { - if (fbitmap && AFP_OK != (ret = getfilparams(vol, fbitmap, s_path, curdir, + if (fbitmap && AFP_OK != (ret = getfilparams(obj, vol, fbitmap, s_path, curdir, rbuf + 3 * sizeof( uint16_t ), &buflen )) ) { return( ret ); } @@ -188,7 +189,7 @@ int afp_setfildirparams(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf if (S_ISDIR(st->st_mode)) { rc = setdirparams(vol, path, bitmap, ibuf ); } else { - rc = setfilparams(vol, path, bitmap, ibuf ); + rc = setfilparams(obj, vol, path, bitmap, ibuf ); } if ( rc == AFP_OK ) { setvoltime(obj, vol ); @@ -248,7 +249,7 @@ static int moveandrename(const struct vol *vol, adflags = 0; if (!isdir) { - if ((oldunixname = strdup(mtoupath(vol, oldname, sdir->d_did, utf8_encoding()))) == NULL) + if ((oldunixname = strdup(mtoupath(vol, oldname, sdir->d_did, utf8_encoding(vol->v_obj)))) == NULL) return AFPERR_PARAM; /* can't convert */ id = cnid_get(vol->v_cdb, sdir->d_did, oldunixname, strlen(oldunixname)); @@ -315,7 +316,7 @@ static int moveandrename(const struct vol *vol, } } - if (NULL == (upath = mtoupath(vol, newname, curdir->d_did, utf8_encoding()))){ + if (NULL == (upath = mtoupath(vol, newname, curdir->d_did, utf8_encoding(vol->v_obj)))){ rc = AFPERR_PARAM; goto exit; } @@ -599,7 +600,7 @@ char *ctoupath(const struct vol *vol, struct dir *dir, char *name) { if (vol == NULL || dir == NULL || name == NULL) return NULL; - return absupath(vol, dir, mtoupath(vol, name, dir->d_did, utf8_encoding())); + return absupath(vol, dir, mtoupath(vol, name, dir->d_did, utf8_encoding(vol->v_obj))); } /* ------------------------- */ @@ -695,7 +696,7 @@ int afp_moveandrename(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf _U rc = moveandrename(vol, sdir, sdir_fd, oldname, newname, isdir); if ( rc == AFP_OK ) { - char *upath = mtoupath(vol, newname, pdid, utf8_encoding()); + char *upath = mtoupath(vol, newname, pdid, utf8_encoding(obj)); if (NULL == upath) { rc = AFPERR_PARAM;