Committer  : entrope
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Commit time: 2004-09-13 18:38:43 UTC

Modified files:
     ChangeLog ircd/listener.c

Log message:

Consolidate duplicated code in add_listener(), and make sure
listener->server is set before calling inetport() on it.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.466 ircu2.10/ChangeLog:1.467
--- ircu2.10/ChangeLog:1.466    Sun Sep 12 05:57:32 2004
+++ ircu2.10/ChangeLog  Mon Sep 13 11:38:32 2004
@@ -1,3 +1,8 @@
+2004-09-13  Michael Poole <[EMAIL PROTECTED]>
+
+       * ircd/listener.c (add_listener): Consolidate duplicated code, and
+       make sure listener->server is set before calling inetport() on it.
+
 2004-09-12  Michael Poole <[EMAIL PROTECTED]>
 
        * include/channel.c (mode_parse_upass, mode_parse_apass): Only let
Index: ircu2.10/ircd/listener.c
diff -u ircu2.10/ircd/listener.c:1.23 ircu2.10/ircd/listener.c:1.24
--- ircu2.10/ircd/listener.c:1.23       Sat Sep 11 20:53:44 2004
+++ ircu2.10/ircd/listener.c    Mon Sep 13 11:38:32 2004
@@ -16,7 +16,7 @@
  *   along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- *  $Id: listener.c,v 1.23 2004/09/12 03:53:44 entrope Exp $
+ *  $Id: listener.c,v 1.24 2004/09/13 18:38:32 entrope Exp $
  */
 #include "config.h"
 
@@ -256,31 +256,21 @@
       && !ircd_aton(&vaddr, vhost_ip))
       return;
 
-  if ((listener = find_listener(port, &vaddr))) {
-    /*
-     * set active flag and change connect mask here, it's the only thing
-     * that can change on a rehash
-     */
-    listener->active = 1;
-    if (mask)
-      ipmask_parse(mask, &listener->mask, &listener->mask_bits);
-    else
-      listener->mask_bits = 0;
-    listener->hidden = is_hidden;
-    listener->server = is_server;
-    return;
-  }
-
-  listener = make_listener(port, &vaddr);
+  listener = find_listener(port, &vaddr);
+  if (!listener)
+    listener = make_listener(port, &vaddr);
+  listener->active = 1;
+  listener->hidden = is_hidden;
+  listener->server = is_server;
+  if (mask)
+    ipmask_parse(mask, &listener->mask, &listener->mask_bits);
+  else
+    listener->mask_bits = 0;
 
-  if (inetport(listener)) {
-    listener->active = 1;
-    if (mask)
-      ipmask_parse(mask, &listener->mask, &listener->mask_bits);
-    else
-      listener->mask_bits = 0;
-    listener->hidden = is_hidden;
-    listener->server = is_server;
+  if (listener->fd >= 0) {
+    /* If the listener is already open, do not try to re-open. */
+  }
+  else if (inetport(listener)) {
     listener->next   = ListenerPollList;
     ListenerPollList = listener;
   }
----------------------- End of diff -----------------------

Reply via email to