struct UserNode *user;
struct WHOQueueEntry *next;
void *callback[MAXCALLBACKS];
- void *data;
+ void *data[MAXCALLBACKS];
};
static struct WHOQueueEntry *first_entry = NULL, *last_entry = NULL;
int i;
for(i = 1; i < MAXCALLBACKS; i++)
entry->callback[i] = NULL;
- entry->data = data;
+ entry->data[0] = data;
+ for(i = 1; i < MAXCALLBACKS; i++)
+ entry->data[i] = NULL;
putsock(bot, "WHO %s,%d %%tuhnaf,%d", chan->name, entry->type, entry->type);
} else
callback(bot, chan, data);
int i;
for(i = 1; i < MAXCALLBACKS; i++)
entry->callback[i] = NULL;
- entry->data = data;
+ entry->data[0] = data;
+ for(i = 1; i < MAXCALLBACKS; i++)
+ entry->data[i] = NULL;
putsock(bot, "WHO %s,%d d%%tuhnaf,%d", chan->name, entry->type, entry->type);
} else
callback(bot, chan, data);
int i;
for(i = 1; i < MAXCALLBACKS; i++)
entry->callback[i] = NULL;
- entry->data = data;
+ entry->data[0] = data;
+ for(i = 1; i < MAXCALLBACKS; i++)
+ entry->data[i] = NULL;
//WHO ".$user->getNick().",".$id." %tuhna,".$id
putsock(bot, "WHO %s,%d %%tuhna,%d", user->nick, entry->type, entry->type);
}
for(i = 0; i < MAXCALLBACKS; i++) {
userauth_callback_t *callback = entry->callback[i];
if(!callback) break;
- callback(client, entry->user->nick, entry->user, entry->data);
+ callback(client, entry->user->nick, entry->user, entry->data[i]);
}
}
}
for(i = 0; i < MAXCALLBACKS; i++) {
callback = entry->callback[i];
if(!callback) break;
- callback(client, entry->chan, entry->data);
+ callback(client, entry->chan, entry->data[i]);
}
if(entry->chan->flags & CHANFLAG_HAVE_INVISIBLES) {
//remove all invisible users again
for(i = 0; i < MAXCALLBACKS; i++) {
callback = entry->callback[i];
if(!callback) break;
- callback(client, entry->user->nick, NULL, entry->data);
+ callback(client, entry->user->nick, NULL, entry->data[i]);
}
}
}