Ejemplo n.º 1
0
void SSDPNotifyListner(mUpnpSSDPPacket *ssdpPkt)
{
	if (mupnp_ssdp_packet_isdiscover(ssdpPkt) == true) {
		printf("ssdp:discover : ST = %s\n",
			mupnp_ssdp_packet_getst(ssdpPkt)); 
	}
	else if (mupnp_ssdp_packet_isalive(ssdpPkt) == true) {
		printf("ssdp:alive : uuid = %s, NT = %s, location = %s\n",
			mupnp_ssdp_packet_getusn(ssdpPkt), 
			mupnp_ssdp_packet_getnt(ssdpPkt), 
			mupnp_ssdp_packet_getlocation(ssdpPkt)); 
	}
	else if (mupnp_ssdp_packet_isbyebye(ssdpPkt) == true) {
		printf("ssdp:byebye : uuid = %s, NT = %s\n",
			mupnp_ssdp_packet_getusn(ssdpPkt), 
			mupnp_ssdp_packet_getnt(ssdpPkt));
	}
	mupnp_ssdp_packet_print(ssdpPkt); 
}
Ejemplo n.º 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;
}