} nickserv_conf;
struct pendingLOCUser {
- char numeric[COMBO_NUMERIC_LEN+1];
+ struct handle_info *handle_info;
unsigned long time;
struct authlogEntry *authlog;
struct pendingLOCUser *next;
struct authlogEntry *authlog = authlog_add(hi, NULL, ptr);
struct pendingLOCUser *pending;
if(authlog && (pending = malloc(sizeof(*pending)))) {
- for(ii = 0; ii < COMBO_NUMERIC_LEN; ii++)
- pending->numeric[ii] = numeric[ii];
- pending->numeric[COMBO_NUMERIC_LEN] = '\0';
+ pending->handle_info = hi;
pending->time = now;
pending->authlog = authlog;
pending->next = pendingLOCUsers;
static void
check_user_nick(struct userNode *user) {
//check if this user is a pending LOC user
- struct pendingLOCUser *pending, *next, *prev = NULL;
- for(pending = pendingLOCUsers; pending; pending = next) {
- next = pending->next;
- if(!strcmp(user->numeric, pending->numeric)) {
- pending->authlog->user = user;
- if(prev)
- prev->next = next;
- else
- pendingLOCUsers = next;
- free(pending);
- }
- if(now - pending->time > 10) {
- if(prev)
- prev->next = next;
- else
- pendingLOCUsers = next;
- free(pending);
+ if(pendingLOCUsers) {
+ struct pendingLOCUser *pending, *next, *prev = NULL;
+ for(pending = pendingLOCUsers; pending; pending = next) {
+ next = pending->next;
+ if(user->handle_info == pending->handle_info) {
+ pending->authlog->user = user;
+ if(prev)
+ prev->next = next;
+ else
+ pendingLOCUsers = next;
+ free(pending);
+ }
+ if(now - pending->time > 10) {
+ if(prev)
+ prev->next = next;
+ else
+ pendingLOCUsers = next;
+ free(pending);
+ }
}
}
struct nick_info *ni;