test reading fail when use https

Maxim Dounin mdounin at mdounin.ru
Sun Jun 26 00:48:40 MSD 2011


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.

> 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

Maxim Dounin

More information about the nginx mailing list