Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #28838

Re: How to timeout a recv() on an ssl connection?

From Grant Edwards <invalid@invalid.invalid>
Newsgroups comp.lang.python
Subject Re: How to timeout a recv() on an ssl connection?
Date 2012-09-10 17:37 +0000
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <k2l8h1$b47$1@reader1.panix.com> (permalink)
References <k2l7jg$ja0$1@reader1.panix.com>

Show all headers | View raw


On 2012-09-10, Grant Edwards <invalid@invalid.invalid> wrote:
> I can't figure out how to timeout a recv() on an SSLSocket -- I'm using
> Python 2.6 nad  2.7. Here's what I've got so far (it needs to work on
> either a plain or SSL socket):
>
>         s.settimeout(timeout)
>         try:
>             b = ord(s.recv(1))
>         except socket.timeout:
>             return None
>         except ssl.SSLError as e:
>             if e.message == 'The read operation timed out':
>                 return None
>             else:
>                 raise
>         finally:
>             s.settimeout(None)
>              
>
> It works fine on normal sockets.  With an SSLSocket, it works the
> first time it's called with timeout set to something other than None
> (it times out properly). Subsequence reads with timeout set to None
> work, but then the second time it's called with a non-None timeout, it
> hangs for several minutes, and then the recv() returns an empty
> string.

Doh! Never mind.

The above code does appear to be working correctly.  I had a different
bug that was misleading me...


-- 
Grant Edwards               grant.b.edwards        Yow! What GOOD is a
                                  at               CARDBOARD suitcase ANYWAY?
                              gmail.com            

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

How to timeout a recv() on an ssl connection? Grant Edwards <invalid@invalid.invalid> - 2012-09-10 17:21 +0000
  Re: How to timeout a recv() on an ssl connection? Grant Edwards <invalid@invalid.invalid> - 2012-09-10 17:37 +0000

csiph-web