+/*********************************************************************
+ *
+ * Function : bind_ports_helper
+ *
+ * Description : Bind the listen ports. Handles logging, and aborts
+ * on failure.
+ *
+ * Parameters :
+ * 1 : config = Privoxy configuration. Specifies ports
+ * to bind to.
+ * 2 : sockets = Preallocated array of opened sockets
+ * corresponding to specification in config.
+ * All non-opened sockets will be set to
+ * JB_INVALID_SOCKET.
+ *
+ * Returns : Nothing. Inspect sockets argument.
+ *
+ *********************************************************************/
+static void bind_ports_helper(struct configuration_spec * config,
+ jb_socket sockets[])
+{
+ int i;
+
+ for (i = 0; i < MAX_LISTENING_SOCKETS; i++)
+ {
+ if (config->hport[i])
+ {
+ sockets[i] = bind_port_helper(config->haddr[i], config->hport[i]);
+ }
+ else
+ {
+ sockets[i] = JB_INVALID_SOCKET;
+ }
+ }
+ config->need_bind = 0;
+}
+
+
+/*********************************************************************
+ *
+ * Function : close_ports_helper
+ *
+ * Description : Close listenings ports.
+ *
+ * Parameters :
+ * 1 : sockets = Array of opened and non-opened sockets to
+ * close. All sockets will be set to
+ * JB_INVALID_SOCKET.
+ *
+ * Returns : Nothing.
+ *
+ *********************************************************************/
+static void close_ports_helper(jb_socket sockets[])
+{
+ int i;
+
+ for (i = 0; i < MAX_LISTENING_SOCKETS; i++)
+ {
+ if (JB_INVALID_SOCKET != sockets[i])
+ {
+ close_socket(sockets[i]);
+ }
+ sockets[i] = JB_INVALID_SOCKET;
+ }
+}
+
+