-- 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: 3f188b755e503fbf624079414ee2156a7e4eb5a3:
path_to:
revision_to:

git.thebackupbox.net

urcd

git://git.thebackupbox.net/urcd

commit 3f188b755e503fbf624079414ee2156a7e4eb5a3
Author: root <root@localhost.(none)>
Date:   Thu Dec 25 11:14:59 2014 +0000

    [urc] (security) update

diff --git a/src/cryptoserv.c b/src/cryptoserv.c

index b6a98b5f3e66a6a52ffc8fbb2faf9edf618a1a48..

index ..8b89dd974b73db2df3aeff69f3d5092ca0370704 100644

--- a/src/cryptoserv.c
+++ b/src/cryptoserv.c
@@ -428,7 +428,10 @@ main(int argc, char *argv[])
     continue;
    }
   }
- if (write(1,buffer0,i)<=0) exit(14);
- if ((i>=4)&&(!memcmp("quit",buffer1,4))) exit(15);
+  if (write(1,buffer0,i)<=0) exit(14);
+  if ((i>=4)&&(!memcmp("quit",buffer1,4))) {
+   write(1,"",0); // send EOF
+   exit(15);
+  }
  }
 }
diff --git a/src/urcd.pyx b/src/urcd.pyx

index 0fb2274ada3bb9b0da878ea621e60b4f25bf6a48..

index ..c3d1455804e52f43b2a2ea6bcec48ec98823dfa1 100644

--- a/src/urcd.pyx
+++ b/src/urcd.pyx
@@ -191,7 +191,9 @@ def sock_close(sn,sf):
  except: pass
  if sn:
   if URCDB:
-   for dst in channels: channel_struct[dst]['names'].remove(nick)
+   for dst in channels:
+    if nick in channel_struct[dst]['names']: channel_struct[dst]['names'].remove(nick)
+   for dst in urcsecretboxdb: del channel_struct[dst]
    db['channel_struct'] = channel_struct
    db['active_clients'] = active_clients
    db['Mask'] = Mask
@@ -334,12 +336,13 @@ while 1:
  del names

  if URCDB and now - sync >= TIMEOUT:
-  if not PRESENCE:
-   for dst in channels: channel_struct[dst]['names'].remove(nick)
   db['channel_struct'] = channel_struct
   db['active_clients'] = active_clients
   db['Mask'] = Mask
   db['Src'] = Src
+  if not PRESENCE:
+   for dst in channels: db['channel_struct'][dst]['names'].remove(nick)
+  for dst in urcsecretboxdb: del db['channel_struct'][dst]
   db.sync()
   sync = now
   if not PRESENCE:
@@ -475,10 +478,9 @@ while 1:
    elif cmd =='-k' and dst.lower() in urcsecretboxdb:
     del urcsecretboxdb[dst.lower()]
    if dst.lower() in urcsecretboxdb:
-    try_write(wr,':'+serv+' 324 '+Nick+' '+dst+' +kn')
-    try_write(wr,'\n') if URCDB else try_write(wr,'s\n')
+    try_write(wr,':'+serv+' 324 '+Nick+' '+dst+' +kns\n')
    else: try_write(wr,':'+serv+' 324 '+Nick+' '+dst+' +n\n')
-   try_write(wr,':'+serv+' 329 '+Nick+' '+dst+' '+str(int(now))+'\n')
+   try_write(wr,':'+serv+' 329 '+Nick+' '+dst+' 1354841938\n') ### Fri Dec 28 18:58:58 2012 +0000

   elif re_CLIENT_MODE_NICK(buffer):
    if PRESENCE: try_write(wr,':'+serv+' 221 '+re_SPLIT(buffer,2)[1]+' :+\n')
@@ -562,9 +564,7 @@ while 1:
    for dst in channel_struct:
     if channel_struct[dst]['names']:
      try_write(wr,':'+serv+' 322 '+Nick+' '+dst+' '+str(len(channel_struct[dst]['names'])))
-     if dst in urcsecretboxdb:
-      if URCDB: try_write(wr,' :[+kn] ')
-      else: try_write(wr,' :[+kns] ')
+     if dst in urcsecretboxdb: try_write(wr,' :[+kns] ')
      else: try_write(wr,' :[+n] ')
      if channel_struct[dst]['topic']: try_write(wr,channel_struct[dst]['topic'])
      try_write(wr,'\n')

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

-- Response ended

-- Page fetched on Sun Jun 2 14:24:41 2024