[MINOR] add a generic unbind_all_listeners() primitive

Most protocols will be able to share a single unbind_all_listeners()
primitive. Provide it in protocols.c.
This commit is contained in:
Willy Tarreau 2007-10-28 22:35:41 +01:00
parent 1a64d16720
commit 3acf8c3da8
2 changed files with 19 additions and 0 deletions

View File

@ -58,6 +58,12 @@ int disable_all_listeners(struct protocol *proto);
*/ */
int unbind_listener(struct listener *listener); int unbind_listener(struct listener *listener);
/* This function closes all listening sockets bound to the protocol <proto>,
* and the listeners end in LI_ASSIGNED state if they were higher. It does not
* detach them from the protocol. It always returns ERR_NONE.
*/
int unbind_all_listeners(struct protocol *proto);
/* Delete a listener from its protocol's list of listeners. The listener's /* Delete a listener from its protocol's list of listeners. The listener's
* state is automatically updated from LI_ASSIGNED to LI_INIT. The protocol's * state is automatically updated from LI_ASSIGNED to LI_INIT. The protocol's
* number of listeners is updated. Note that the listener must have previously * number of listeners is updated. Note that the listener must have previously

View File

@ -100,6 +100,19 @@ int unbind_listener(struct listener *listener)
return ERR_NONE; return ERR_NONE;
} }
/* This function closes all listening sockets bound to the protocol <proto>,
* and the listeners end in LI_ASSIGNED state if they were higher. It does not
* detach them from the protocol. It always returns ERR_NONE.
*/
int unbind_all_listeners(struct protocol *proto)
{
struct listener *listener;
list_for_each_entry(listener, &proto->listeners, proto_list)
unbind_listener(listener);
return ERR_NONE;
}
/* Delete a listener from its protocol's list of listeners. The listener's /* Delete a listener from its protocol's list of listeners. The listener's
* state is automatically updated from LI_ASSIGNED to LI_INIT. The protocol's * state is automatically updated from LI_ASSIGNED to LI_INIT. The protocol's
* number of listeners is updated. Note that the listener must have previously * number of listeners is updated. Note that the listener must have previously