Esempio n. 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");
}
Esempio n. 2
0
mUpnpSSDPPacket *mupnp_ssdp_packet_new()
{
	mUpnpSSDPPacket *ssdpPkt;

	mupnp_log_debug_l4("Entering...\n");

	ssdpPkt = (mUpnpSSDPPacket *)malloc(sizeof(mUpnpSSDPPacket));
	
	if ( NULL != ssdpPkt )
	{
		ssdpPkt->dgmPkt = mupnp_socket_datagram_packet_new();
		ssdpPkt->headerList = mupnp_http_headerlist_new();
		ssdpPkt->initialized = 0;

		mupnp_ssdp_packet_setuserdata(ssdpPkt, NULL);
		mupnp_ssdp_packet_settimestamp(ssdpPkt, mupnp_getcurrentsystemtime());

		ssdpPkt->timestamps = (mUpnpTime *)malloc(MUPNP_SSDP_FILTER_TABLE_SIZE * sizeof(mUpnpTime));
	}
	
	return ssdpPkt;

	mupnp_log_debug_l4("Leaving...\n");
}