Example #1
0
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");
}
Example #2
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); 
}