added full half-op support
[NeonServV5.git] / src / IRCParser.c
index c1dbf6bca825450332036be9c19114fdc10dbe7a..750ac7b783c871643de7fe85ecb1b04cf7a491ee 100644 (file)
@@ -395,7 +395,8 @@ static IRC_CMD(raw_kick) {
     int keep_channel = 1;
     if(isUserOnChan(target, chan) && (chan->flags & CHANFLAG_RECEIVED_USERLIST)) {
         if(user == NULL) {
-            user = createTempUser(from);
+            user = createTempUserMask(from);
+                       if(!user) return 0;
             user->flags |= USERFLAG_ISTMPUSER;
         }
         struct ChanUser *chanuser = getChanUser(target, chan);
@@ -424,7 +425,8 @@ static IRC_CMD(raw_topic) {
     if(chan == NULL) return 0;
     if(chan->chanbot != client->user) return 1; //just ignore it to prevent event duplicates
     if(user == NULL) {
-        user = createTempUser(from);
+        user = createTempUserMask(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     event_topic(user, chan, argv[1]);
@@ -436,7 +438,8 @@ static IRC_CMD(raw_privmsg) {
     if(from == NULL || argc < 2) return 0;
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
-        user = createTempUser(from);
+        user = createTempUserMask(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(!stricmp(user->nick, "*status") && !match("Disconnected from IRC.*", argv[1])) {
@@ -493,7 +496,8 @@ static IRC_CMD(raw_notice) {
     if(from == NULL || argc < 2) return 0;
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
-        user = createTempUser(from);
+        user = createTempUserMask(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(argv[0][0] == '#') { //Channel notice
@@ -547,7 +551,8 @@ static IRC_CMD(raw_invite) {
     if(from == NULL || argc < 2) return 0;
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
-        user = createTempUser(from);
+        user = createTempUserMask(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     event_invite(client, user, argv[1]);
@@ -558,7 +563,8 @@ static IRC_CMD(raw_mode) {
     if(from == NULL || argc < 2) return 0;
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
-        user = createTempUser(from);
+        user = createTempUserMask(from);
+               if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;
     }
     if(argv[0][0] == '#') {