}
+/* --- @p_unbind@ --- *
+ *
+ * Arguments: ---
+ *
+ * Returns: ---
+ *
+ * Use: Unbinds the UDP sockets. There must not be any active peers,
+ * and none can be created until the sockets are rebound.
+ */
+
+void p_unbind(void)
+{
+ int i;
+
+#ifndef NDEBUG
+ { peer_iter it; p_mkiter(&it); assert(!p_next(&it)); }
+#endif
+
+ for (i = 0; i < NADDRFAM; i++) {
+ if (udpsock[i].sf.fd == -1) continue;
+ sel_rmfile(&udpsock[i].sf);
+ close(udpsock[i].sf.fd);
+ udpsock[i].sf.fd = -1;
+ }
+}
+
/* --- @p_init@ --- *
*
* Arguments: ---