[MINOR] add a generic unbind_listener() primitive
Most protocols will be able to share a single unbind_listener() primitive. Provided it in protocols.c.
This commit is contained in:
parent
8eebe5ea40
commit
b648d6383b
|
@ -51,6 +51,13 @@ int enable_all_listeners(struct protocol *proto);
|
|||
*/
|
||||
int disable_all_listeners(struct protocol *proto);
|
||||
|
||||
/* This function closes the listening socket for the specified listener,
|
||||
* provided that it's already in a listening state. The listener enters the
|
||||
* LI_ASSIGNED state. It always returns ERR_NONE. This function is intended
|
||||
* to be used as a generic function for standard protocols.
|
||||
*/
|
||||
int unbind_listener(struct listener *listener);
|
||||
|
||||
/* Registers the protocol <proto> */
|
||||
void protocol_register(struct protocol *proto);
|
||||
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
#include <types/protocols.h>
|
||||
|
||||
#include <proto/fd.h>
|
||||
|
||||
/* List head of all registered protocols */
|
||||
static struct list protocols = LIST_HEAD_INIT(protocols);
|
||||
|
||||
|
@ -81,6 +83,23 @@ int disable_all_listeners(struct protocol *proto)
|
|||
return ERR_NONE;
|
||||
}
|
||||
|
||||
/* This function closes the listening socket for the specified listener,
|
||||
* provided that it's already in a listening state. The listener enters the
|
||||
* LI_ASSIGNED state. It always returns ERR_NONE. This function is intended
|
||||
* to be used as a generic function for standard protocols.
|
||||
*/
|
||||
int unbind_listener(struct listener *listener)
|
||||
{
|
||||
if (listener->state == LI_READY)
|
||||
EV_FD_CLR(listener->fd, DIR_RD);
|
||||
|
||||
if (listener->state >= LI_LISTEN) {
|
||||
fd_delete(listener->fd);
|
||||
listener->state = LI_ASSIGNED;
|
||||
}
|
||||
return ERR_NONE;
|
||||
}
|
||||
|
||||
/* Registers the protocol <proto> */
|
||||
void protocol_register(struct protocol *proto)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue