-- 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: 68da4ad4210cdfc5dce5163425ce4348cd70d568:
path_to:
revision_to:

git.thebackupbox.net

urcd

git://git.thebackupbox.net/urcd

commit 68da4ad4210cdfc5dce5163425ce4348cd70d568
Author: root <root@localhost.(none)>
Date:   Fri Dec 26 14:41:06 2014 +0000

    [urcd] fix for ipv6 mask parsing

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

index cf066e01843b784d6883aca71b78a4dee3806834..

index ..50cb430438a6d7c03092c8a58788325e867ff1dd 100644

--- a/src/urcd.pyx
+++ b/src/urcd.pyx
@@ -681,11 +681,11 @@ while 1:
   buffer += '\n'

   if re_SERVER_PRIVMSG_NOTICE_TOPIC_INVITE_PART(buffer):
-   src = buffer.split(':',2)[1].split('!',1)[0].lower()
+   src = buffer[1:].split('!',1)[0].lower()
    if len(src)>NICKLEN: continue
    active_clients[src] = now
-   Src[src] = buffer.split(':',2)[1].split('!',1)[0]
-   Mask[src] = buffer.split(':',2)[1].split('@',1)[1].split(' ',1)[0]
+   Src[src] = buffer[1:].split('!',1)[0]
+   Mask[src] = buffer.split(' ',1)[0].split('@',1)[1].split(' ',1)[0]
    cmd, dst = re_SPLIT(buffer.lower(),3)[1:3]
    if dst in urcsecretboxdb.keys() and AUTH != dst: continue
    if dst[0] in ['#','&','!','+']:
@@ -725,12 +725,12 @@ while 1:
    if dst == nick or dst in channels: try_write(wr,buffer)

   elif re_SERVER_JOIN(buffer):
-   src = buffer.split(':',2)[1].split('!',1)[0].lower()
+   src = buffer[1:].split('!',1)[0].lower()
    if len(src)>NICKLEN: continue
    active_clients[src] = now
-   Src[src] = buffer.split(':',2)[1].split('!',1)[0]
-   Mask[src] = buffer.split(':',2)[1].split('@',1)[1].split(' ',1)[0]
-   dst = buffer.split(':')[2].split('\n',1)[0].lower()
+   Src[src] = buffer[1:].split('!',1)[0]
+   Mask[src] = buffer.split(' ',1)[0].split('@',1)[1].split(' ',1)[0]
+   dst = buffer.split(' :')[1].split('\n',1)[0].lower()
    if len(dst)>CHANNELLEN: continue
    if dst in urcsecretboxdb.keys() and AUTH != dst: continue
    if not dst in channel_struct.keys():
@@ -739,7 +739,7 @@ while 1:
       if not dst in channels:
        del channel_struct[dst]
        break
-     dst = buffer.split(':')[2].split('\n',1)[0].lower()
+     dst = buffer.split(' :')[1].split('\n',1)[0].lower()
     channel_struct[dst] = dict(
      names = collections.deque([],CHANLIMIT),
      topic = None,
@@ -756,7 +756,7 @@ while 1:
     channel_struct[dst]['names'].append(src)

   elif re_SERVER_QUIT(buffer):
-   src = buffer.split(':',2)[1].split('!',1)[0].lower()
+   src = buffer[1:].split('!',1)[0].lower()
    if src == nick or len(src)>NICKLEN: continue
    cmd = '\x01'
    for dst in channel_struct.keys():
@@ -767,16 +767,16 @@ while 1:
       cmd = '\x00'
    if src in active_clients.keys():
     del active_clients[src]
-    del Mask[src]
-    del Src[src]
+    if src in Mask: del Mask[src]
+    if src in Src: del Src[src]

   elif re_SERVER_KICK(buffer):
-   cmd = buffer.split(':',2)[1].split('!',1)[0].lower()
+   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
    active_clients[cmd] = now
-   Src[src] = buffer.split(':',2)[1].split('!',1)[0]
-   Mask[src] = buffer.split(':',2)[1].split('@',1)[1].split(' ',1)[0]
+   Src[src] = buffer[1:].split('!',1)[0]
+   Mask[src] = buffer.split(' ',1)[0].split('@',1)[1].split(' ',1)[0]
    if dst in urcsecretboxdb.keys() and AUTH != dst: continue
    if not dst in channel_struct.keys():
     if len(channel_struct.keys())>=CHANLIMIT:

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

-- Response ended

-- Page fetched on Sun Jun 2 15:19:45 2024