120 |
case ']': |
case ']': |
121 |
case '\\': |
case '\\': |
122 |
case '!': |
case '!': |
123 |
|
case ':': |
124 |
case '^': |
case '^': |
125 |
return(TRUE); |
return(TRUE); |
126 |
} |
} |
326 |
loadstrfromconfig(config->configfile, section, "gid", &(data), "%g"); |
loadstrfromconfig(config->configfile, section, "gid", &(data), "%g"); |
327 |
data = strdupwrapper(data); |
data = strdupwrapper(data); |
328 |
data = tokenset_apply(tset, data, FALSE); |
data = tokenset_apply(tset, data, FALSE); |
329 |
|
|
330 |
if (sscanf(data, "%d", &intdata) != 1) |
if (sscanf(data, "%d", &intdata) != 1) |
331 |
{ |
{ |
332 |
/* try for username then */ |
/* if it starts with a "!" mark, get gid of username */ |
333 |
struct group *grent; |
if (data[0] == '!') |
334 |
grent = getgrnam(data); |
{ |
335 |
if (grent) |
struct passwd *pwdent; |
336 |
peer->gidt_asgid = grent->gr_gid; |
pwdent = getpwnam(data+1); |
337 |
else |
if (pwdent) |
338 |
peer->gidt_asgid = config->gidt_nobodygid; |
peer->gidt_asgid = pwdent->pw_gid; |
339 |
|
else |
340 |
|
peer->gidt_asgid = config->gidt_nobodygid; |
341 |
|
} |
342 |
|
else |
343 |
|
{ |
344 |
|
/* try for groupname then */ |
345 |
|
struct group *grent; |
346 |
|
grent = getgrnam(data); |
347 |
|
if (grent) |
348 |
|
peer->gidt_asgid = grent->gr_gid; |
349 |
|
else |
350 |
|
peer->gidt_asgid = config->gidt_nobodygid; |
351 |
|
} |
352 |
} |
} |
353 |
else |
else |
354 |
{ |
{ |