np->nextbyauthname=np->auth->nicks;
np->auth->nicks=np;
if(accountflags)
- np->auth->flags=strtoul(accountflags + 1,NULL,10);
+ np->auth->flags=strtoull(accountflags + 1,NULL,10);
}
}
if(!userid) {
nick *target;
unsigned long userid;
time_t accountts;
- flag_t accountflags;
+ u_int64_t accountflags, oldflags;
if (cargc<4) {
return CMD_OK;
accountts=strtoul(cargv[2],NULL,10);
userid=strtoul(cargv[3],NULL,10);
if(cargc>=5)
- accountflags=strtoul(cargv[4],NULL,10);
+ accountflags=strtoull(cargv[4],NULL,10);
/* allow user flags to change if all fields match */
if (IsAccount(target)) {
return CMD_OK;
}
- arg[0] = (void *)target->auth;
- arg[1] = (void *)(long)target->auth->flags;
+ oldflags = target->auth->flags;
+ arg[0] = target->auth;
+ arg[1] = &oldflags;
if (cargc>=5)
target->auth->flags=accountflags;
triggerhook(HOOK_AUTH_FLAGSUPDATED, (void *)arg);
- /* TODO: trigger flag update hook */
return CMD_OK;
}
target->authname=malloc(strlen(cargv[1]) + 1);
strcpy(target->authname,cargv[1]);
} else {
- target->auth=findorcreateauthname(userid, target->authname);
+ target->auth=findorcreateauthname(userid, cargv[1]);
target->auth->usercount++;
target->authname=target->auth->name;
target->nextbyauthname = target->auth->nicks;