Hi, I have an Lua SSL client. The first time it connects, all is fine. But then, I kill the client. Reconnect it. After a few commands, when more datas are sent: # /usr/lib/ruby/1.8/openssl/buffering.rb:178: warning: error on stack: # error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry # Exception `OpenSSL::SSL::SSLError' at # /usr/lib/ruby/1.8/openssl/buffering.rb:178 - SSL_write:: error: 1409F07F:SSL # routines:SSL3_WRITE_PENDING:bad write retry It's complety reproductible. Anybody has an idea ? Thanks, regards. Leo ------------- Ruby (pseudo) code I use: # SSL key and cert key = OpenSSL::PKey::RSA.new 512 cert = OpenSSL::X509::Certificate.new cert.not_before = Time.now cert.not_after = Time.now + 3600 cert.public_key = key.public_key cert.sign key, OpenSSL::Digest::SHA1.new # SSL context $ctx = OpenSSL::SSL::SSLContext.new $ctx.key = key $ctx.cert = cert tcp_server = TCPserver.new $port server = OpenSSL::SSL::SSLServer.new tcp_server, $ctx while true socket = server.accept thread.new socket do |so| while true begin send-receive work rescue socket.close end end end end
on 2007-05-16 20:35
on 2007-05-16 21:22
On Thu, May 17, 2007 at 01:35:04AM +0900, email@example.com wrote: > # routines:SSL3_WRITE_PENDING:bad write retry > > It's complety reproductible. Anybody has an idea ? Perhaps you need to make a new SSL context for each incoming connection? After all, each client will start a fresh SSL negotiation.