/* do variable substitution for volume name */
if (STRCMP(secname, ==, INISEC_HOMES)) {
- if (p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home"))
- strlcpy(tmp, p, MAXPATHLEN);
- else
- strlcpy(tmp, p, MAXPATHLEN);
+ p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home");
+ if (strstr(p, "$u") == NULL) {
+ LOG(log_warning, logtype_afpd, "home name must contain $u.");
+ p = "$u's home";
+ }
+ strlcpy(tmp, p, MAXPATHLEN);
} else {
strlcpy(tmp, secname, AFPVOL_U8MNAMELEN);
}
* @param obj (r) handle
* @param delvol_fn (r) callback called for deleted volumes
*/
-int load_volumes(AFPObj *obj, void (*delvol_fn)(struct vol *))
+int load_volumes(AFPObj *obj, void (*delvol_fn)(const AFPObj *obj, struct vol *))
{
EC_INIT;
int fd = -1;
if (vol->v_deleted) {
LOG(log_debug, logtype_afpd, "load_volumes: deleted: %s", vol->v_localname);
if (delvol_fn)
- delvol_fn(vol);
+ delvol_fn(obj, vol);
vol = Volumes;
}
}
/* do variable substitution for volume name */
p = iniparser_getstring(obj->iniconfig, INISEC_HOMES, "home name", "$u's home");
+ if (strstr(p, "$u") == NULL)
+ p = "$u's home";
strlcpy(tmpbuf, p, AFPVOL_U8MNAMELEN);
EC_NULL_LOG( volxlate(obj, volname, sizeof(volname) - 1, tmpbuf, pw, volpath, NULL) );
char *q, *r;
char val[MAXVAL];
+ if (processname != NULL)
+ set_processname(processname);
+
AFPObj->afp_version = 11;
options->configfile = AFPObj->cmdlineconfigfile ? strdup(AFPObj->cmdlineconfigfile) : strdup(_PATH_CONFDIR "afp.conf");
options->sigconffile = strdup(_PATH_STATEDIR "afp_signature.conf");
options->uuidconf = strdup(_PATH_STATEDIR "afp_voluuid.conf");
- options->flags = OPTION_ACL2MACCESS | OPTION_UUID | OPTION_SERVERNOTIF | AFPObj->cmdlineflags;
+ options->flags = OPTION_UUID | AFPObj->cmdlineflags;
if ((config = iniparser_load(AFPObj->options.configfile)) == NULL)
return -1;
options->logconfig = iniparser_getstrdup(config, INISEC_GLOBAL, "log level", "default:note");
options->logfile = iniparser_getstrdup(config, INISEC_GLOBAL, "log file", NULL);
- if (processname[0] != '\0') {
- set_processname(processname);
- setuplog(options->logconfig, options->logfile);
- }
+ setuplog(options->logconfig, options->logfile);
/* "server options" boolean options */
if (!iniparser_getboolean(config, INISEC_GLOBAL, "zeroconf", 1))
options->flags |= OPTION_KEEPSESSIONS;
if (iniparser_getboolean(config, INISEC_GLOBAL, "close vol", 0))
options->flags |= OPTION_CLOSEVOL;
- if (!iniparser_getboolean(config, INISEC_GLOBAL, "client polling", 1))
+ if (!iniparser_getboolean(config, INISEC_GLOBAL, "client polling", 0))
options->flags |= OPTION_SERVERNOTIF;
if (!iniparser_getboolean(config, INISEC_GLOBAL, "use sendfile", 1))
options->flags |= OPTION_NOSENDFILE;
+ if (iniparser_getboolean(config, INISEC_GLOBAL, "solaris share reservations", 1))
+ options->flags |= OPTION_SHARE_RESERV;
if (!iniparser_getboolean(config, INISEC_GLOBAL, "save password", 1))
options->passwdbits |= PASSWD_NOSAVE;
if (iniparser_getboolean(config, INISEC_GLOBAL, "set password", 0))