From: Yann L. <as...@la...> - 2012-08-22 19:29:41
|
Hi, I'm having problems closing a OpenSSL.SSL.Conection. I use python-openssl 0.13 from debian openssl 1.0.1c and last thing the underlying socket is non-blocking. I have tried shutdown() but it tracebacks: Traceback (most recent call last): File "<string>", line 1, in <fragment> OpenSSL.SSL.Error: [('SSL routines', 'SSL_shutdown', 'uninitialized')] I've tried sock_shutdown() (withou argument even if documentation says there is one) no traceback but that doesn't close the socket I've tried close() (doc says it exists, but it doesn't) And now I'm out of idea. someone could point me how I should do that? Thanks in advance, -- Yann |
From: Yann L. <as...@la...> - 2012-08-22 20:51:32
|
On 08/22/2012 10:44 PM, ex...@tw... wrote: > On 07:13 pm, as...@la... wrote: >> Hi, >> >> I'm having problems closing a OpenSSL.SSL.Conection. > > Hi Yann, > > Perhaps you can explain your goals in a little more detail. "Shutdown" > unfortunately has several possible meanings in the context of an SSL > connection. > > It could mean you want to perform an orderly SSL protocol shutdown. > There are two variations of this. You might want to do so without > shutting down the underlying (TCP?) connection. Or you might want to > shut down that underlying connection. > > Or it could just mean you want to close the connection, either in an > orderly fashion or otherwise (people tend to be sloppy about closing SSL > connections, particularly when using SSL for HTTPS). > > Shutdown and close are also distinct operations when it comes to the > underlying TCP connection. You might want to actually close the > underlying TCP connection, rather than just shutting it down. > > So, are any of those close to what you want to do? Please elaborate, > perhaps providing a short, self-contained, complete (minimal) example in > doing so (<http://sscce.org/>). > > Also, I have copied the Launchpad user list on this reply, as I would > consider it a great boon if pyOpenSSL eventually completely moved off of > sourceforge, including no longer using the sourceforge hosted mailing > list service. Hi, Thanks for your reply. What I want to do is to completly close the socket. My application opens a socket, transfer things, and once finished I want to close the socket. From what I understand I'm supposed to call shutdown() then close() but that doesn't work for me :/ It's hard for me to provide a small example, because haveing non-blocking sockets isn't donein 2 lines :/ -- Yann |
From: Yann L. <as...@la...> - 2012-08-23 09:53:44
|
On 08/22/2012 10:51 PM, Yann Leboulanger wrote: > On 08/22/2012 10:44 PM, ex...@tw... wrote: >> On 07:13 pm, as...@la... wrote: >>> Hi, >>> >>> I'm having problems closing a OpenSSL.SSL.Conection. >> >> Hi Yann, >> >> Perhaps you can explain your goals in a little more detail. "Shutdown" >> unfortunately has several possible meanings in the context of an SSL >> connection. >> >> It could mean you want to perform an orderly SSL protocol shutdown. >> There are two variations of this. You might want to do so without >> shutting down the underlying (TCP?) connection. Or you might want to >> shut down that underlying connection. >> >> Or it could just mean you want to close the connection, either in an >> orderly fashion or otherwise (people tend to be sloppy about closing SSL >> connections, particularly when using SSL for HTTPS). >> >> Shutdown and close are also distinct operations when it comes to the >> underlying TCP connection. You might want to actually close the >> underlying TCP connection, rather than just shutting it down. >> >> So, are any of those close to what you want to do? Please elaborate, >> perhaps providing a short, self-contained, complete (minimal) example in >> doing so (<http://sscce.org/>). >> >> Also, I have copied the Launchpad user list on this reply, as I would >> consider it a great boon if pyOpenSSL eventually completely moved off of >> sourceforge, including no longer using the sourceforge hosted mailing >> list service. > > Hi, > > Thanks for your reply. > > What I want to do is to completly close the socket. > My application opens a socket, transfer things, and once finished I want > to close the socket. > > From what I understand I'm supposed to call shutdown() then close() but > that doesn't work for me :/ > > It's hard for me to provide a small example, because haveing > non-blocking sockets isn't donein 2 lines :/ > After debugging and debugging again, I found that I did SSL over SSL ... And in this case I was not able to shutdown the second SSL connection. Now that my code doesn't do SSL over SSL, I can corecly shutdown() and then close() the connection. [OT] sad that shutdwn() doesn't take an argument like the standads socket. I know it's discussed in bug 900792: https://bugs.launchpad.net/pyopenssl/+bug/900792 Sorry for the noise! -- Yann |
From: <ex...@tw...> - 2012-08-22 21:30:34
|
On 07:13 pm, as...@la... wrote: >Hi, > >I'm having problems closing a OpenSSL.SSL.Conection. Hi Yann, Perhaps you can explain your goals in a little more detail. "Shutdown" unfortunately has several possible meanings in the context of an SSL connection. It could mean you want to perform an orderly SSL protocol shutdown. There are two variations of this. You might want to do so without shutting down the underlying (TCP?) connection. Or you might want to shut down that underlying connection. Or it could just mean you want to close the connection, either in an orderly fashion or otherwise (people tend to be sloppy about closing SSL connections, particularly when using SSL for HTTPS). Shutdown and close are also distinct operations when it comes to the underlying TCP connection. You might want to actually close the underlying TCP connection, rather than just shutting it down. So, are any of those close to what you want to do? Please elaborate, perhaps providing a short, self-contained, complete (minimal) example in doing so (<http://sscce.org/>). Also, I have copied the Launchpad user list on this reply, as I would consider it a great boon if pyOpenSSL eventually completely moved off of sourceforge, including no longer using the sourceforge hosted mailing list service. Thanks, Jean-Paul |