void FrontEnd::onHttpResponseHeader(const NPT_SocketInfo& socketInfo, const NPT_HttpResponse *response) { const NPT_List<NPT_HttpHeader*>& ls = response->GetHeaders().GetHeaders(); NPT_LOG_FINER_2("RESP: %d %s", response->GetStatusCode(), response->GetReasonPhrase().GetChars()); for (NPT_Ordinal i = 0; i < ls.GetItemCount(); i++) { NPT_HttpHeader *hh = *ls.GetItem(i); NPT_LOG_FINER_2("[%s]=[%s]", hh->GetName().GetChars(), hh->GetValue().GetChars()); } }
void FrontEnd::onHttpRequestHeader(const NPT_SocketInfo& socketInfo, const NPT_HttpRequest *request) { NPT_LOG_FINER_2("%s %s", request->GetMethod().GetChars(), request->GetUrl().ToString().GetChars()); NPT_LOG_FINER_2("from %s:%d", socketInfo.remote_address.GetIpAddress().ToString().GetChars(), socketInfo.remote_address.GetPort()); const NPT_List<NPT_HttpHeader*>& ls0 = request->GetHeaders().GetHeaders(); for (NPT_Ordinal i = 0; i < ls0.GetItemCount(); i++) { NPT_HttpHeader *hh = *ls0.GetItem(i); NPT_LOG_FINER_2("[%s]=[%s]", hh->GetName().GetChars(), hh->GetValue().GetChars()); } }
/*---------------------------------------------------------------------- | PLT_HttpClient::Connect +---------------------------------------------------------------------*/ NPT_Result PLT_HttpClient::Connect(NPT_Socket* connection, NPT_HttpRequest& request, NPT_Timeout timeout) { // get the address of the server NPT_IpAddress server_address; NPT_CHECK_SEVERE(server_address.ResolveName(request.GetUrl().GetHost(), timeout)); NPT_SocketAddress address(server_address, request.GetUrl().GetPort()); // connect to the server NPT_LOG_FINER_2("Connecting to %s:%d\n", (const char*)request.GetUrl().GetHost(), request.GetUrl().GetPort()); NPT_CHECK_SEVERE(connection->Connect(address, timeout)); return NPT_SUCCESS; }
/*---------------------------------------------------------------------- | DumpBody +---------------------------------------------------------------------*/ static NPT_Result ReadBody(PLT_Downloader& downloader, NPT_InputStreamReference& stream, NPT_Size& size) { NPT_LargeSize avail; char buffer[2048]; NPT_Result ret = NPT_ERROR_WOULD_BLOCK; /* reset output param first */ size = 0; /* we test for availability first to avoid getting stuck in Read forever in case blocking is true and the download is done writing to the stream */ NPT_CHECK(stream->GetAvailable(avail)); if (avail) { ret = stream->Read(buffer, 2048, &size); NPT_LOG_FINER_2("Read %d bytes (result = %d)\n", size, ret); return ret; } else { Plt_DowloaderState state = downloader.GetState(); switch (state) { case PLT_DOWNLOADER_ERROR: return NPT_FAILURE; case PLT_DOWNLOADER_SUCCESS: /* no more data expected */ return NPT_ERROR_EOS; default: NPT_System::Sleep(NPT_TimeInterval(0, 10000)); break; } } return NPT_SUCCESS; }