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); }
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; }