]> jfr.im git - irc/freenode/Sigyn.git/commitdiff
little changes on logs detection
authorNicolas Coevoet <redacted>
Sat, 30 Jan 2016 11:24:56 +0000 (11:24 +0000)
committerNicolas Coevoet <redacted>
Sat, 30 Jan 2016 11:24:56 +0000 (11:24 +0000)
plugin.py

index 5cbee75dcccc639e3fd25889f75a4fe49e366ed3..df9e80cc1a280a932d5cc8de2634fa6b1cd53ccb 100644 (file)
--- a/plugin.py
+++ b/plugin.py
@@ -261,7 +261,7 @@ class Ircd (object):
         # { ip : message }
         self.digs = {}
         # flag or time
-        self.netsplit = False
+        self.netsplit = time.time()+120
         self.tors = {}
         self.ping = None
         self.servers = {}
@@ -952,16 +952,27 @@ class Sigyn(callbacks.Plugin,plugins.ChannelDBHandler):
             if not users or users < i.servers[server]:
                 found = server
                 users = i.servers[server]
-        i.ping = time.time()
-        irc.queueMsg(ircmsgs.IrcMsg('TIME %s.freenode.net' % found))
+        i.servers = {}
+        server = '%s.freenode.net' % found
+        i.servers[server] = time.time()
+        def bye():
+            if server in i.servers:
+                del i.servers[server]
+                if not i.netsplit:
+                    self.logChannel(irc,'INFO: netsplit activated for %ss due to %s/%ss of lags with %s : some abuses are ignored' % (self.registryValue('netsplitDuration'),self.regitryValue('lagPermit'),self.registryValue('lagPermit'),server))
+                i.netsplit = time.time() + self.registryValue('netsplitDuration')
+        schedule.addEvent(bye,time.time()+self.registryValue('lagPermit')+2)
+        irc.queueMsg(ircmsgs.IrcMsg('TIME %s' % server))
 
     def do391 (self,irc,msg):
         i = self.getIrc(irc)
-        delay = time.time()-i.ping
-        if delay > self.registryValue('lagPermit'):
-            if not i.netsplit:
-                self.logChannel(irc,'INFO: netsplit activated for %ss due to %s/%ss of lags with %s : some abuses are ignored' % (self.registryValue('netsplitDuration'),delay,self.registryValue('lagPermit'),msg.prefix))    
-            i.netsplit = time.time() + self.registryValue('netsplitDuration')
+        if msg.prefix in i.servers:
+            delay = time.time()-i.servers[msg.prefix]
+            del i.servers[msg.prefix]
+            if delay > self.registryValue('lagPermit'):
+                if not i.netsplit:
+                    self.logChannel(irc,'INFO: netsplit activated for %ss due to %s/%ss of lags with %s : some abuses are ignored' % (self.registryValue('netsplitDuration'),delay,self.registryValue('lagPermit'),msg.prefix))    
+                i.netsplit = time.time() + self.registryValue('netsplitDuration')
 
     def handleMsg (self,irc,msg,isNotice):
         if not ircutils.isUserHostmask(msg.prefix):
@@ -1809,8 +1820,7 @@ class Sigyn(callbacks.Plugin,plugins.ChannelDBHandler):
         m = None
         try:
             m = socket.gethostbyname(h)
-        except socket.error as err:
-            self.log.debug('%s -> %s -> %s' % (ip,h,err))
+        except:
             m = None
         message = None
         if m: