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

}
Example #3
0
/*----------------------------------------------------------------------
|   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;
}
Example #4
0
/*----------------------------------------------------------------------
|   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;
}