BOOL mupnp_httpmu_socket_bind(mUpnpHttpMuSocket *sock, const char *mcastAddr, int port, const char *bindAddr) { mupnp_log_debug_l4("Entering...\n"); if (mupnp_socket_bind(sock, port, bindAddr, FALSE, TRUE) == FALSE) return FALSE; if (mupnp_socket_joingroup(sock, mcastAddr, bindAddr) == FALSE) { mupnp_socket_close(sock); return FALSE; } mupnp_log_debug_l4("Leaving...\n"); return TRUE; }
bool mupnp_http_server_open(mUpnpHttpServer *httpServer, int bindPort, const char *bindAddr) { mupnp_log_debug_l4("Entering...\n"); if (mupnp_http_server_isopened(httpServer) == true) return false; httpServer->sock = mupnp_socket_stream_new(); if (mupnp_socket_bind(httpServer->sock, bindPort, bindAddr, true, false) == false) { mupnp_socket_delete(httpServer->sock); httpServer->sock = NULL; return false; } if (mupnp_socket_listen(httpServer->sock) == false) { mupnp_socket_delete(httpServer->sock); httpServer->sock = NULL; return false; } mupnp_log_debug_l4("Leaving...\n"); return true; }