test reading fail when use https
wandenberg
nginx-forum at nginx.us
Sun Jun 26 17:28:29 MSD 2011
Hello!
Thanks for your explanation.
Now I understood, sorry for my mistakes.
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Sat, Jun 25, 2011 at 04:06:30PM -0400,
> wandenberg wrote:
>
> > Sorry Maxim. I didn't understood your answer.
>
> You can't use c->recv() as it doesn't allow to
> peek. Using
> c->recv() will result in possibly valid and
> required data to be
> lost. And that's why normal recv() is used
> instead there.
>
I turned back to use normal recv() respecting msg_peek functionality.
> > Can you explain better? Why this work for detect
> when users goes off on
> > http, but not in https ?
>
> Quoting just 2 days old message from the same
> list[1]:
>
> % Yes, the code in question won't be able to
> detect SSL connection
> % close with appropriate shutdown records sent by
> a client (as well
> % as connection close with some other pending
> data, e.g. pipelined
> % request). It is not possible to detect
> connection close with
> % standard socket interface if there are pending
> data without
> % reading that data first, which isn't always
> desired/possible.
> %
> % In the particular case of SSL it should be
> possible to use
> % SSL_peek() here, but better aproach is to use
> OS-provided hint,
> % e.g. as EV_EOF provided by kqueue interface (and
> used by nginx).
>
> [1]
> http://nginx.org/pipermail/nginx/2011-June/027672.
> html
To solve the problem of detect when users close connection on https I
did this implementation
#if (NGX_HTTP_SSL)
if (c->ssl == NULL) {
n = recv(c->fd, buf, 1, MSG_PEEK);
} else {
n = SSL_peek(c->ssl->connection, buf, 1);
}
#else
n = recv(c->fd, buf, 1, MSG_PEEK);
#endif
I would like to know if you see any other problem on that and if is
possible to this code be applied on nginx source?
>
> Maxim Dounin
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
Thanks for your quickly response.
Regards,
Wandenberg
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,209967,210178#msg-210178
More information about the nginx
mailing list