static void mupnp_controlpoint_ssdplistner(mUpnpSSDPPacket *ssdpPkt) { mUpnpControlPoint *ctrlPoint; MUPNP_SSDP_LISTNER listener; mupnp_log_debug_l4("Entering...\n"); ctrlPoint = (mUpnpControlPoint *)mupnp_ssdp_packet_getuserdata(ssdpPkt); if (ctrlPoint == NULL) return; /* We filter out all but rootdevice, since it must be advertized by all * devices. This way we avoid lots of device updates during advertizement * cycle. */ if (mupnp_ssdp_packet_isrootdevice(ssdpPkt) == true) { if (mupnp_ssdp_packet_isalive(ssdpPkt) == true) mupnp_controlpoint_adddevicebyssdppacket(ctrlPoint, ssdpPkt); else if (mupnp_ssdp_packet_isbyebye(ssdpPkt) == true) mupnp_controlpoint_removedevicebyssdppacket(ctrlPoint, ssdpPkt); } listener = mupnp_controlpoint_getssdplistener(ctrlPoint); if (listener != NULL) listener(ssdpPkt); mupnp_log_debug_l4("Leaving...\n"); }
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); }