mUpnpActionResponse *mupnp_control_action_request_post(mUpnpActionRequest *actionReq) { mUpnpSoapRequest *soapReq; mUpnpSoapResponse *soapRes; mUpnpActionResponse *actionRes; mUpnpHttpRequest *httpReq; mUpnpNetURL *postURL; mupnp_log_debug_l4("Entering...\n"); soapReq = mupnp_control_action_request_getsoaprequest(actionReq); soapRes = mupnp_soap_request_getsoapresponse(soapReq); actionRes = mupnp_control_action_request_getactionresponse(actionReq); httpReq = mupnp_soap_request_gethttprequest(soapReq); postURL = mupnp_http_request_getposturl(httpReq); mupnp_control_action_response_setsoapresponse(actionRes, soapRes); mupnp_soap_request_post( soapReq, mupnp_net_url_gethost(postURL), mupnp_net_url_getport(postURL)); mupnp_log_debug_l4("Leaving...\n"); return actionRes; }
static mUpnpDevice *mupnp_controlpoint_createdevicefromssdkpacket(mUpnpSSDPPacket *ssdpPkt) { const char *location; mUpnpNetURL *url; mUpnpDevice *dev; bool parseSuccess; mupnp_log_debug_l4("Entering...\n"); location = mupnp_ssdp_packet_getlocation(ssdpPkt); if (mupnp_strlen(location) <= 0) return NULL; dev = mupnp_device_new(); url = mupnp_net_url_new(); mupnp_net_url_set(url, location); parseSuccess = mupnp_device_parsedescriptionurl(dev, url); if (parseSuccess) { mupnp_device_sethttpport(dev, mupnp_net_url_getport(url)); } mupnp_net_url_delete(url); if (parseSuccess == false) { mupnp_device_delete(dev); return NULL; } mupnp_device_setssdppacket(dev, ssdpPkt); #ifndef MUPNP_OPTIMIZED_CP_MODE if (mupnp_controlpoint_parseservicesfordevice(dev, ssdpPkt) == false) { mupnp_device_delete(dev); return NULL; } #endif mupnp_log_debug_l4("Leaving...\n"); return dev; }