added IPNode for storing real IP's of users
[NeonServV5.git] / src / UserNode.c
index 3f20a13eccdf93a8a7a85409bc405f0f8d87fbd2..21b618d1118b51a16fac594e638f44976378ba6b 100644 (file)
@@ -18,6 +18,7 @@
 #include "ChanUser.h"
 #include "tools.h"
 #include "IRCEvents.h"
+#include "IPNode.h"
 
 static struct UserNode **userList;
 
@@ -199,6 +200,7 @@ struct UserNode* addUser(const char *nick) {
     user->created = time(0);
     user->ident[0] = 0;
     user->host[0] = 0;
+    user->ip = NULL;
     user->realname[0] = 0;
     user->flags = 0;
     user->channel = NULL;
@@ -255,6 +257,7 @@ struct UserNode* createTempUser(const char *nick) {
         }
         user->ident[0] = 0;
         user->host[0] = 0;
+        user->ip = NULL;
         user->realname[0] = 0;
         user->flags = 0;
         user->channel = NULL;
@@ -299,6 +302,7 @@ struct UserNode* createTempUserMask(const char *mask) {
                 }
                 user->ident[0] = 0;
                 user->host[0] = 0;
+                user->ip = NULL;
                 user->realname[0] = 0;
                 user->flags = 0;
                 user->channel = NULL;
@@ -322,6 +326,7 @@ struct UserNode* createTempUserMask(const char *mask) {
             user->created = time(0);
             user->ident[0] = 0;
             user->host[0] = 0;
+            user->ip = NULL;
             user->realname[0] = 0;
             user->flags = USERFLAG_ISSERVER;
             user->channel = NULL;
@@ -345,6 +350,7 @@ struct UserNode* createTempUserMask(const char *mask) {
                 user->created = time(0);
                 user->ident[0] = 0;
                 user->host[0] = 0;
+                user->ip = NULL;
                 user->realname[0] = 0;
                 user->flags = 0;
                 user->channel = NULL;
@@ -417,9 +423,11 @@ void delUser(struct UserNode* user, int freeUser) {
             removeChanUserFromLists(chanUser, 1, 0, freeUser);
         }
     }
-    if(freeUser)
+    if(freeUser) {
+        if(user->ip)
+            freeIPNode(user->ip);
         free(user);
-    else
+    else
         user->next = NULL;
 }