Title: [928] trunk/jopenssl: - Fix sync needing to be set on SSLSocket
- Revision
- 928
- Author
- nicksieger
- Date
- 2008-03-07 14:41:13 -0500 (Fri, 07 Mar 2008)
Log Message
- Fix sync needing to be set on SSLSocket
- Add some debug to test_ssl tests
Modified Paths
Diff
Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/SSLSocket.java (927 => 928)
--- trunk/jopenssl/src/java/org/jruby/ext/openssl/SSLSocket.java 2008-03-07 17:13:45 UTC (rev 927)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/SSLSocket.java 2008-03-07 19:41:13 UTC (rev 928)
@@ -124,6 +124,9 @@
}
io = args[0];
api.callMethod(this,"io=",io);
+ // This is a bit of a hack: SSLSocket should share code with RubyBasicSocket, which always sets sync to true.
+ // Instead we set it here for now.
+ api.callMethod(io,"sync=",getRuntime().getTrue());
c = (SocketChannel)(((RubyIO)io).getChannel());
api.callMethod(this,"context=",ctx);
api.callMethod(this,"sync_close=",getRuntime().getFalse());
Modified: trunk/jopenssl/test/openssl/ssl_server.rb (927 => 928)
--- trunk/jopenssl/test/openssl/ssl_server.rb 2008-03-07 17:13:45 UTC (rev 927)
+++ trunk/jopenssl/test/openssl/ssl_server.rb 2008-03-07 19:41:13 UTC (rev 928)
@@ -28,8 +28,19 @@
end
end
+if $DEBUG
+ def log(s); File.open("ssl-server-debug", "a") {|f| f.puts s}; end
+ File.open("ssl-server-debug", "w") {|f| f << ""}
+ log "server starting"
+else
+ def log(s) end
+end
+
+begin
ca_cert = OpenSSL::X509::Certificate.new(get_pem)
+log "got ca cert #{ca_cert.inspect}"
ssl_cert = OpenSSL::X509::Certificate.new(get_pem)
+log "got ssl cert #{ssl_cert.inspect}"
ssl_key = make_key(get_pem)
port = Integer(ARGV.shift)
verify_mode = Integer(ARGV.shift)
@@ -49,6 +60,7 @@
tcps = nil
100.times{|i|
begin
+ log "starting server on #{port+i}"
tcps = TCPServer.new("0.0.0.0", port+i)
port = port + i
break
@@ -56,9 +68,11 @@
next
end
}
+log "starting ssl server"
ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
ssls.start_immediately = start_immediately
+log("sending pid #{Process.pid}")
$stdout.sync = true
$stdout.puts Process.pid
$stdout.puts port
@@ -79,3 +93,7 @@
ssl.close
}
end
+rescue
+ log $!
+ log $!.backtrace.join("\n")
+end
\ No newline at end of file
Modified: trunk/jopenssl/test/openssl/test_ssl.rb (927 => 928)
--- trunk/jopenssl/test/openssl/test_ssl.rb 2008-03-07 17:13:45 UTC (rev 927)
+++ trunk/jopenssl/test/openssl/test_ssl.rb 2008-03-07 19:41:13 UTC (rev 928)
@@ -74,6 +74,7 @@
jruby_oop {
begin
cmd = [RUBY]
+ cmd << "-Ilib"
cmd << "-d" if $DEBUG
cmd << SSL_SERVER << port0.to_s << verify_mode.to_s
cmd << (start_immediately ? "yes" : "no")
@@ -81,15 +82,21 @@
server.write(@ca_cert.to_pem)
server.write(@svr_cert.to_pem)
server.write(@svr_key.to_pem)
- pid = Integer(server.gets)
+ $stderr.puts "sent certs to server" if $DEBUG
+ str = server.gets
+ $stderr.puts "got pid from server: #{str}" if $DEBUG
+ pid = Integer(str)
if port = server.gets
if $DEBUG
$stderr.printf("%s started: pid=%d port=%d\n", SSL_SERVER, pid, port)
end
block.call(server, port.to_i)
end
+ rescue => e
+ puts e, *(e.backtrace)
ensure
if server
+ $stderr.puts "killing: #{pid}" if $DEBUG
Process.kill(:KILL, pid)
server.close
end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel