mUpnpHttpHeader *mupnp_http_headerlist_get(mUpnpHttpHeaderList *headerList, const char *name) { mUpnpHttpHeader *header; const char *headerName; mupnp_log_debug_l4("Entering...\n"); if (name == NULL) return NULL; for (header = mupnp_http_headerlist_gets(headerList); header != NULL; header = mupnp_http_header_next(header)) { headerName = mupnp_http_header_getname(header); if (headerName == NULL) continue; if (mupnp_strcasecmp(headerName, name) == 0) return header; } return NULL; mupnp_log_debug_l4("Leaving...\n"); }
void mupnp_ssdp_packet_print(mUpnpSSDPPacket *ssdpPkt) { mUpnpHttpHeader *header; mupnp_log_debug_l4("Entering...\n"); mupnp_log_debug_s("ssdp from %s %d\n", mupnp_ssdp_packet_getremoteaddress(ssdpPkt), mupnp_ssdp_packet_getremoteport(ssdpPkt)); /**** print headers ****/ for (header = mupnp_http_headerlist_gets(ssdpPkt->headerList); header != NULL; header = mupnp_http_header_next(header)) { mupnp_log_debug_s("%s: %s\n", mupnp_http_header_getname(header), mupnp_http_header_getvalue(header)); } mupnp_log_debug_l4("Leaving...\n"); }
void mupnp_ssdp_packet_copy(mUpnpSSDPPacket *dstSsdpPkt, mUpnpSSDPPacket *srcSsdpPkt) { mUpnpHttpHeader *srcHeader; mUpnpHttpHeader *destHeader; mupnp_log_debug_l4("Entering...\n"); mupnp_socket_datagram_packet_copy(dstSsdpPkt->dgmPkt, srcSsdpPkt->dgmPkt); /**** copy headers ****/ mupnp_ssdp_packet_clear(dstSsdpPkt); for (srcHeader = mupnp_ssdp_packet_getheaders(srcSsdpPkt); srcHeader != NULL; srcHeader = mupnp_http_header_next(srcHeader)) { destHeader = mupnp_http_header_new(); mupnp_http_header_setname(destHeader, mupnp_http_header_getname(srcHeader)); mupnp_http_header_setvalue(destHeader, mupnp_http_header_getvalue(srcHeader)); mupnp_ssdp_packet_addheader(dstSsdpPkt, destHeader); } /* Set timestamp */ mupnp_ssdp_packet_settimestamp(dstSsdpPkt, mupnp_getcurrentsystemtime()); mupnp_log_debug_l4("Leaving...\n"); }
char *mupnp_ssdprequest_tostring(mUpnpSSDPRequest *ssdpReq, mUpnpString *ssdpMsg) { mUpnpHttpHeader *header; const char *name; const char *value; mupnp_log_debug_l4("Entering...\n"); mupnp_string_addvalue(ssdpMsg, mupnp_http_request_getmethod(ssdpReq)); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_SP); mupnp_string_addvalue(ssdpMsg, mupnp_http_request_geturi(ssdpReq)); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_SP); mupnp_string_addvalue(ssdpMsg, mupnp_http_request_getversion(ssdpReq)); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_CRLF); for (header = mupnp_http_packet_getheaders((mUpnpHttpPacket *)ssdpReq); header != NULL; header = mupnp_http_header_next(header)) { name = mupnp_http_header_getname(header); value = mupnp_http_header_getvalue(header); mupnp_string_addvalue(ssdpMsg, name); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_COLON); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_SP); mupnp_string_addvalue(ssdpMsg, value); mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_CRLF); } mupnp_string_addvalue(ssdpMsg, MUPNP_HTTP_CRLF); return mupnp_string_getvalue(ssdpMsg); mupnp_log_debug_l4("Leaving...\n"); }