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 -----------------------