Exemple #1
0
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;
}
Exemple #2
0
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;
}