Correction: It shows 501s not 503s.

More info: Running on Win2008R1 x86. This classes client is actually a
client/server GUI which POSTs XML over HTTP(S). The XML part works fine.

Regards,

SZ
On Sat, Feb 26, 2011 at 8:47 AM, Fastream Technologies
<ga...@fastream.com>wrote:

> Hello,
>
> We have the following code which should IMHO work straght-forward but when
> I run it on production server with GUI 7/24 open, it fails. When I telnet to
> it, I enter,
>
> GET /
>
> and it does nothing when it should. When I press enter 10-20 times, it
> displays "forbidden" (which is what it should have shown in the first case)
> and then 503s. Is this a known issue? Below is the code.
>
> Regards,
>
> SZ
>
> void __fastcall AdminServer::HTTPServerGetDocument(TObject *Sender, TObject
> *Client, Overbyteicshttpsrv::THttpGetFlag &Flags)
> {
>  Flags = hg403;
> }
>
> //---------------------------------------------------------------------------
> void __fastcall AdminServer::HTTPServerHeadDocument(TObject *Sender,
> TObject *Client, Overbyteicshttpsrv::THttpGetFlag &Flags)
> {
>  Flags = hg403;
> }
>
> //---------------------------------------------------------------------------
> void __fastcall AdminServer::HTTPServerPostDocument(TObject *Sender,
> TObject *Client, Overbyteicshttpsrv::THttpGetFlag &Flags)
> {
>  THttpConnection *httpClient = (THttpConnection*)Client;
>  httpClient->Tag = (int)(void*)new AdminServerConnectionData();
>  httpClient->LineMode = false;
>  if(httpClient->RequestContentLength <= 4 * 1024 * 1024)
>   Flags = hgAcceptData;
> }
>
> //---------------------------------------------------------------------------
> void __fastcall AdminServer::HTTPServerPostedData(TObject *Sender, TObject
> *Client, WORD ErrCode)
> {
>  THttpConnection *httpClient = (THttpConnection*)Client;
>  AdminServerConnectionData *connectionData =
> (AdminServerConnectionData*)(void*)httpClient->Tag;
>  if(ErrCode)
>  {
>   delete connectionData;
>   httpClient->Tag = 0;
>   httpClient->Abort();
>  }
>  else
>  {
>   int Len = 0;
>   if(connectionData)
>    Len = httpClient->Receive((void*)connectionData->buffer, 16384);
>   if(Len <= 0)
>    return;
>   if(connectionData->docSize + Len > httpClient->RequestContentLength)
>   {
>    connectionData->stream->Write((void*)connectionData->buffer,
> httpClient->RequestContentLength - connectionData->docSize);
>    connectionData->docSize = httpClient->RequestContentLength;
>   }
>   else
>   {
>    connectionData->stream->Write((void*)connectionData->buffer, Len);
>    connectionData->docSize += Len;
>   }
>   if(httpClient->RequestContentLength <= connectionData->docSize)
>   {
>    connectionData->stream->Seek(0, 0);
>    TMemoryStream *responseXML = processRequest(connectionData->stream,
> httpClient);
>    Overbyteicshttpsrv::THttpGetFlag Flags;
>    httpClient->DocStream = responseXML;
>    httpClient->AnswerStream(Flags, "", "application/xml", "");
>   }
>  }
> }
>
> //---------------------------------------------------------------------------
> void __fastcall AdminServer::HTTPServerClientRequestDone(TObject *Sender,
> TObject *Client)
> {
>  Overbyteicshttpsrv::THttpConnection *httpClient =
> (Overbyteicshttpsrv::THttpConnection*)Client;
>  AdminServerConnectionData *connectionData =
> (AdminServerConnectionData*)(void*)httpClient->Tag;
>  delete connectionData;
>  httpClient->Tag = 0;
>  httpClient->PostedDataReceived();
>  if(newIP.Length() || newPort.Length())
>   PostMessage(serverContainerObject->handle, WM_RESTART_ADMIN_SERVER, 0,
> 0);
> }
>
> //---------------------------------------------------------------------------
> void __fastcall AdminServer::HTTPServerClientDisconnected(TObject *Sender,
> TObject *Client, WORD Error)
> {
>  THttpConnection *httpClient = (THttpConnection*)Client;
>  AdminServerConnectionData *connectionData =
> (AdminServerConnectionData*)(void*)httpClient->Tag;
>  delete connectionData;
>  httpClient->Tag = 0;
> }
>
> //---------------------------------------------------------------------------
>
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to