#include <atalk/netatalk_conf.h>
#define VOLPASSLEN 8
+#ifndef UUID_PRINTABLE_STRING_LENGTH
+#define UUID_PRINTABLE_STRING_LENGTH 37
+#endif
#define IS_VAR(a, b) (strncmp((a), (b), 2) == 0)
mktemp(eaname);
-// become_root();
+ become_root();
if ((sys_setxattr(vol->v_path, eaname, eacontent, 4, 0)) == 0) {
sys_removexattr(vol->v_path, eaname);
haseas = 0;
}
-// unbecome_root();
+ unbecome_root();
return haseas;
}
struct sockaddr_storage client;
const DSI *dsi = obj->dsi;
- if (!args)
+ if (!args || !dsi)
return -1;
strlcpy(buf, args, sizeof(buf));
continue;
if (STRCMP(secname, ==, INISEC_HOMES)) {
have_uservol = 1;
- if (!obj->uid)
- /* not an AFP session, but cnid daemon, dbd or ad util */
+ if (obj->username[0] == 0
+ || strcmp(obj->username, obj->options.guest) == 0)
+ /* not an AFP session, but cnid daemon, dbd or ad util, or guest login */
continue;
strlcpy(tmp, pwent->pw_dir, MAXPATHLEN);
strlcat(tmp, "/", MAXPATHLEN);
while (*p == '/')
p++;
EC_NULL_LOG( user = strdup(p) );
- strlcpy(obj->username, user, MAXUSERLEN);
if (prw = strchr(user, '/'))
*prw++ = 0;
if (prw != 0)
subpath = prw;
+ strlcpy(obj->username, user, MAXUSERLEN);
strlcat(tmpbuf, user, MAXPATHLEN);
strlcat(tmpbuf, "/", MAXPATHLEN);