From 9593a33fd1c376b7a6bcbc5a5ab8d2c66f9c88d1 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Mon, 3 Oct 2011 08:12:32 +0400 Subject: [PATCH] Allow evconnlistener to be created in disabled state. --- include/event2/listener.h | 3 +++ listener.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/event2/listener.h b/include/event2/listener.h index 0cb8583c..9a72e99e 100644 --- a/include/event2/listener.h +++ b/include/event2/listener.h @@ -69,6 +69,9 @@ typedef void (*evconnlistener_errorcb)(struct evconnlistener *, void *); /** Flag: Indicates that the listener should be locked so it's safe to use * from multiple threadcs at once. */ #define LEV_OPT_THREADSAFE (1u<<4) +/** Flag: Indicates that the listener should be created in disabled + * state. Use evconnlistener_enable() to enable it later. */ +#define LEV_OPT_DISABLED (1u<<5) /** Allocate a new evconnlistener object to listen for incoming TCP connections diff --git a/listener.c b/listener.c index 7f803382..703a6aae 100644 --- a/listener.c +++ b/listener.c @@ -193,7 +193,8 @@ evconnlistener_new(struct event_base *base, event_assign(&lev->listener, base, fd, EV_READ|EV_PERSIST, listener_read_cb, lev); - evconnlistener_enable(&lev->base); + if (!(flags & LEV_OPT_DISABLED)) + evconnlistener_enable(&lev->base); return &lev->base; }