Re: [PATCH]: Sending HTTP_BAD_REQUEST to client in case of bad request

"Dziugas Baltrunas" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi,

compiled and tested - works as expected.

On 3/23/06, Alexander Malysh <[email protected]> wrote:
> Hi,
>
> how about attached patch? it should work ok but untested.
>
> Thanks,
> Alex
>
> Dziugas Baltrunas wrote:
>
> > Hi,
> >
> > ok, what about putting simple return statement instead of goto error?
> >
> > In case of queued for sending, http_send_reply() will register a
> > callback to receive_request() with a state sending_reply which will
> > close the connection afterwards. So it means that http_send_reply()
> > will destroy the connection anyway.
> >
> > However, above will not work, i.e. client will get a 400 reply but the
> > connection won't be closed because we have p->persistent_conn = 1 as
> > default in client_create() which I think has to be changed into 0. Who
> > said that HTTP 1.1 connection should default to keep-alive anyway?
> >
> > Btw, in order for others to understand what this is all about, given
> > that localhost:13013 is your smsbox up and running, try the following:
> >
> >> telnet localhost 13013
> > Trying 127.0.0.1...
> > Connected to localhost.
> > Escape character is '^]'.
> > asdf
> > Connection closed by foreign host.
> >
> > Which means that it violates http, gives no indication to client, etc.
> > etc., so this should definitely be changed. Proposed way is the
> > following:
> >
> >> telnet localhost 13013
> > Trying 127.0.0.1...
> > Connected to localhost.
> > Escape character is '^]'.
> > asdf
> > HTTP/1.1 400 Bad Request
> > Server: Kannel/cvs-20060308
> > Content-Length: 0
> >
> > Connection closed by foreign host.
> >
> > On 3/23/06, Alexander Malysh <[email protected]> wrote:
> >> Hi,
> >>
> >> no go with your patch. http_send_reply is a queuing function. that means
> >> when response could not be sent at once (e.g. client too slow) response
> >> sending will be registered (queued) in fdset. but in your patch you will
> >> destroy httpclient with goto error statement.
> >>
> >> You should split http_send_reply function in a helper function which
> >> just prepare response and main function that send response queued as
> >> earlier. Then here instead of sending through http_send_reply you do
> >> something like:
> >>
> >> Octstr *resp = http_prepare_reply(...)
> >> conn_send(resp);
> >> goto error;
> >>
> >> Thanks,
> >> Alex
> >>
> >> Dziugas Baltrunas schrieb:
> >> > Hi list,
> >> >
> >> > in case of client sends us malformed URL (such as
> >> > /cgi-bin/sendsms?user=test&pass=test&to=12345 &text=test), attached
> >> > patch sends a HTTP 400 Bad request error instead of simply closing the
> >> > socket thus giving no indication to the client.
> >> >
> >> > --
> >> > Dziugas
> >> >
> >> >
> >> >
>
>


--
Dziugas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.