-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: urcd
action: commit
revision:
path_from:
revision_from: 08c99a85a8ae4f89fa1c9bfabf9683bebc76ed45:
path_to:
revision_to:

git.thebackupbox.net

urcd

git://git.thebackupbox.net/urcd

commit 08c99a85a8ae4f89fa1c9bfabf9683bebc76ed45
Author: root <root@localhost.(none)>
Date:   Tue Dec 30 08:14:20 2014 +0000

    [urcd] (security) domains shouldn't be over 256 bytes, enforcing this might protect some irc clients

diff --git a/src/urcd.pyx b/src/urcd.pyx

index 21a10a331e80fd912a521ac0b9043126db467597..

index ..b0959582a68129d25471455564dc45887a461d78 100644

--- a/src/urcd.pyx
+++ b/src/urcd.pyx
@@ -41,10 +41,10 @@ re_CLIENT_QUIT = re.compile('^QUIT ',re.IGNORECASE).search
 re_CLIENT_USER = re.compile('^USER ',re.IGNORECASE).search
 re_BUFFER_CTCP_DCC = re.compile('\x01(?!ACTION )',re.IGNORECASE).sub
 re_BUFFER_COLOUR = re.compile('(\x03[0-9][0-9]?((?<=[0-9]),[0-9]?[0-9]?)?)|[\x02\x03\x0f\x1d\x1f]',re.IGNORECASE).sub
-re_SERVER_PRIVMSG_NOTICE_TOPIC_INVITE_PART = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]+ ((PRIVMSG)|(NOTICE)|(TOPIC)|(INVITE)|(PART)) [#&!+]?['+RE+']+ :.*$',re.IGNORECASE).search
-re_SERVER_JOIN = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]+ JOIN :[#&!+]['+RE+']+$',re.IGNORECASE).search
-re_SERVER_QUIT = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]+ QUIT :.*$',re.IGNORECASE).search
-re_SERVER_KICK = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]+ KICK [#&!+]['+RE+']+ ['+RE+']+ :.*$',re.IGNORECASE).search
+re_SERVER_PRIVMSG_NOTICE_TOPIC_INVITE_PART = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]{1,256} ((PRIVMSG)|(NOTICE)|(TOPIC)|(INVITE)|(PART)) [#&!+]?['+RE+']+ :.*$',re.IGNORECASE).search
+re_SERVER_JOIN = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]{1,256} JOIN :[#&!+]['+RE+']+$',re.IGNORECASE).search
+re_SERVER_QUIT = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]{1,256} QUIT :.*$',re.IGNORECASE).search
+re_SERVER_KICK = re.compile('^:['+RE+']+![~:#'+RE+'.]+@[~:#'+RE+'.]{1,256} KICK [#&!+]['+RE+']+ ['+RE+']+ :.*$',re.IGNORECASE).search
 re_SERVICE = re.compile('^:['+RE+']*Serv!',re.IGNORECASE).search

 ### strange values will likely yield strange results ###
@@ -764,9 +764,9 @@ while 1:
     if src in Src: del Src[src]

   elif re_SERVER_KICK(buffer):
-   cmd = buffer[1:].split('!',1)[0].lower()
-   dst, src = re_SPLIT(buffer.lower(),4)[2:4]
-   if len(cmd)>NICKLEN or len(src)>NICKLEN or len(dst)>CHANNELLEN: continue
+   src = buffer[1:].split('!',1)[0].lower()
+   dst, cmd = re_SPLIT(buffer.lower(),4)[2:4]
+   if len(src)>NICKLEN or len(cmd)>NICKLEN or len(dst)>CHANNELLEN: continue
    active_clients[cmd] = now
    Src[src] = buffer[1:].split('!',1)[0]
    Mask[src] = buffer.split(' ',1)[0].split('@',1)[1].split(' ',1)[0]
@@ -779,8 +779,8 @@ while 1:
        break
      dst = re_SPLIT(buffer,3)[2].lower()
     channel_struct[dst] = struct_channel
-   if src != nick:
+   if cmd != nick:
     dst = re_SPLIT(buffer,3)[2].lower()
-    if src in channel_struct[dst]['names']:
+    if cmd in channel_struct[dst]['names']:
      channel_struct[dst]['names'].remove(src)
      if dst in channels: try_write(wr,buffer)

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 14:17:54 2024