Merge branch 'development'
[NeonServV5.git] / src / IRCParser.c
index 35b99a491269e282a769f9e001a192de782d320e..701ad457b54d592ecae6b15c02d9d110916e2a88 100644 (file)
@@ -481,7 +481,8 @@ static IRC_CMD(raw_kick) {
     chanuser->visCount--;
     if(chanuser->visCount == 0) {
         delChanUser(chanuser, 0); //not free, yet!
-        event_kick(user, chanuser, argv[2]);
+        if(user)
+            event_kick(user, chanuser, argv[2]);
         freeChanUser(chanuser);
     }
     
@@ -556,6 +557,7 @@ static IRC_CMD(raw_quit) {
     if(user->channel == NULL) {
         if(isBot(user)) {
             //ASSERT
+                       DESYNCHRONIZE(cache_sync);
             return 0;
         }
         if((user->flags & USERFLAG_WAS_REGISTERING)) {
@@ -640,6 +642,7 @@ static IRC_CMD(raw_privmsg) {
     if(from == NULL || argc < 2) return 0;
     struct UserNode *user = getUserByMask(from);
     if(user == NULL) {
+        if(stricmplen(from, "***!", 4) == 0) return 1; /* ZNC Playback */
         user = createTempUserMask(from);
                if(!user) return 0;
         user->flags |= USERFLAG_ISTMPUSER;