[MINOR] add a generic delete_listener() primitive

Most protocols will be able to share a single delete_listener()
primitive. Provide it in protocols.c, and remove the specific
version from proto_uxst.
This commit is contained in:
Willy Tarreau 2007-10-28 22:26:05 +01:00
parent b648d6383b
commit 1a64d16720
4 changed files with 21 additions and 16 deletions

View File

@ -28,7 +28,6 @@
int uxst_event_accept(int fd);
void uxst_add_listener(struct listener *listener);
void uxst_del_listener(struct listener *listener);
void process_uxst_stats(struct task *t, struct timeval *next);
#endif /* _PROTO_PROTO_UXST_H */

View File

@ -58,6 +58,13 @@ int disable_all_listeners(struct protocol *proto);
*/
int unbind_listener(struct listener *listener);
/* 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
* number of listeners is updated. Note that the listener must have previously
* been unbound. This is the generic function to use to remove a listener.
*/
void delete_listener(struct listener *listener);
/* Registers the protocol <proto> */
void protocol_register(struct protocol *proto);

View File

@ -310,21 +310,6 @@ void uxst_add_listener(struct listener *listener)
proto_unix.nb_listeners++;
}
/* Delete a listener from the list of unix stream listeners. The listener's
* state is automatically updated from LI_ASSIGNED to LI_INIT. The number of
* listeners is updated. Note that the listener must have previously been
* unbound. This is the function to use to remove a listener.
*/
void uxst_del_listener(struct listener *listener)
{
if (listener->state != LI_ASSIGNED)
return;
listener->state = LI_INIT;
LIST_DEL(&listener->proto_list);
proto_unix.nb_listeners--;
}
/********************************
* 3) protocol-oriented functions
********************************/

View File

@ -100,6 +100,20 @@ int unbind_listener(struct listener *listener)
return ERR_NONE;
}
/* 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
* number of listeners is updated. Note that the listener must have previously
* been unbound. This is the generic function to use to remove a listener.
*/
void delete_listener(struct listener *listener)
{
if (listener->state != LI_ASSIGNED)
return;
listener->state = LI_INIT;
LIST_DEL(&listener->proto_list);
listener->proto->nb_listeners--;
}
/* Registers the protocol <proto> */
void protocol_register(struct protocol *proto)
{