added NeonBackup bot
[NeonServV5.git] / src / modules / NeonServ.mod / event_neonserv_join.c
index 77d5de7519a200df297dbe939b3b691b405e8c03..5f8d1440237321d666847a207e310274aa1bd8fe 100644 (file)
@@ -1,4 +1,4 @@
-/* event_neonserv_join.c - NeonServ v5.3
+/* event_neonserv_join.c - NeonServ v5.4
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ static void neonserv_event_join(struct ChanUser *chanuser) {
     if(!client) return; //we can't "see" this event
     if(chanuser->user == client->user) {
         requestOp(client->user, chanuser->chan);
+        module_neonbackup_recover_chan(chanuser->chan);
         return;
     }
     if(chanuser->user->flags & USERFLAG_ISBOT) return;
@@ -59,7 +60,7 @@ static void neonserv_event_join(struct ChanUser *chanuser) {
         cache->client = client;
         cache->chanuser = chanuser;
         cache->was_registering = (user->flags & USERFLAG_WAS_REGISTRING);
-        get_userauth(user, neonserv_event_join_nick_lookup, cache);
+        get_userauth(user, module_id, neonserv_event_join_nick_lookup, cache);
     } else
         neonserv_event_join_async1(client, chanuser, (user->flags & USERFLAG_WAS_REGISTRING));
 }
@@ -173,7 +174,7 @@ static void neonserv_event_join_async1(struct ClientSocket *client, struct ChanU
         sprintf(nameBuf, "dynlimit_%s", chan->name);
         if(!timeq_name_exists(nameBuf)) {
             //neonserv_event_join_dynlimit
-            timeq_add_name(nameBuf, 30, neonserv_event_join_dynlimit, strdup(chan->name));
+            timeq_add_name(nameBuf, 30, module_id, neonserv_event_join_dynlimit, strdup(chan->name));
         }
     }
     //AUTOINVITE
@@ -237,6 +238,7 @@ static TIMEQ_CALLBACK(neonserv_event_join_dynlimit) {
     char *chanName = data;
     struct ChanNode *chan = getChanByName(chanName);
     free(chanName);
+    if(!chan) return;
     struct ClientSocket *client = getBotForChannel(chan);
     if(!client) return;
     loadChannelSettings(chan);