static void mupnp_ssdpresponse_server_thread(mUpnpThread* thread) { mUpnpSSDPResponseServer* server; mUpnpSSDPPacket* ssdpPkt; void* userData; mupnp_log_debug_l4("Entering...\n"); server = (mUpnpSSDPResponseServer*)mupnp_thread_getuserdata(thread); userData = mupnp_ssdpresponse_server_getuserdata(server); if (mupnp_ssdpresponse_server_isopened(server) == false) return; ssdpPkt = mupnp_ssdp_packet_new(); mupnp_ssdp_packet_setuserdata(ssdpPkt, userData); while (mupnp_thread_isrunnable(thread) == true) { if (mupnp_httpu_socket_recv(server->httpuSock, ssdpPkt) <= 0) break; mupnp_ssdp_packet_print(ssdpPkt); mupnp_ssdpresponse_server_performlistener(server, ssdpPkt); mupnp_ssdp_packet_clear(ssdpPkt); } mupnp_ssdp_packet_delete(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); }