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