-/* UserNode.c - NeonServ v5.2
+/* UserNode.c - NeonServ v5.3
* Copyright (C) 2011 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
#include "UserNode.h"
#include "ChanUser.h"
#include "tools.h"
+#include "IRCEvents.h"
static struct UserNode **userList;
return last->next;
}
+struct UserNode* getUsersWithAuth(const char *auth, struct UserNode *last) {
+ int cindex = (last ? get_nicklist_entry(last->nick[0]) : 0);
+ struct UserNode *cuser = last;
+ while(cindex <= VALID_NICK_CHARS_FIRST_LEN) {
+ for(cuser = (cuser ? cuser->next : userList[cindex]); cuser; cuser = cuser->next) {
+ if((cuser->flags & USERFLAG_ISAUTHED) && !strcmp(cuser->auth, auth))
+ return cuser;
+ }
+ cindex++;
+ cuser = NULL;
+ }
+ return NULL;
+}
+
int getUserCount() {
int i, count = 0;
struct UserNode *user;
void delUser(struct UserNode* user, int freeUser) {
int userListIndex = get_nicklist_entry(user->nick[0]);
if(userListIndex == -1) return;
+ event_freeuser(user);
struct UserNode *cuser, *last_user = NULL;
for(cuser = userList[userListIndex]; cuser; cuser = cuser->next) {
if(cuser == user) {