[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.
diff --git a/include/proto/proto_uxst.h b/include/proto/proto_uxst.h
index dd5a40c..642beb8 100644
--- a/include/proto/proto_uxst.h
+++ b/include/proto/proto_uxst.h
@@ -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 */
diff --git a/include/proto/protocols.h b/include/proto/protocols.h
index 353e4c4..c5efd0c 100644
--- a/include/proto/protocols.h
+++ b/include/proto/protocols.h
@@ -58,6 +58,13 @@
*/
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);
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index ca00b31..0b3f317 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -310,21 +310,6 @@
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
********************************/
diff --git a/src/protocols.c b/src/protocols.c
index 3e118b8..294edef 100644
--- a/src/protocols.c
+++ b/src/protocols.c
@@ -100,6 +100,20 @@
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)
{