diff --git a/ChangeLog b/ChangeLog index e8e03f0267..925426f9ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Dec 2 01:12:15 2007 James Edward Gray II + + Merged 14070 from trunk. + + * lib/xmlrpc/server.rb (XMLRPC::Server#server): Improve signal handling so + pressing control-c in the controlling terminal or sending SIGTERM stops + the XML-RPC server. + Sat Dec 1 15:13:33 2007 Yukihiro Matsumoto * lib/resolv.rb: documentation update. backported from 1.9. diff --git a/lib/xmlrpc/server.rb b/lib/xmlrpc/server.rb index 59a5869408..ca8d3b0a5b 100644 --- a/lib/xmlrpc/server.rb +++ b/lib/xmlrpc/server.rb @@ -639,11 +639,11 @@ class Server < WEBrickServlet def serve if RUBY_PLATFORM =~ /mingw|mswin32/ - signal = 1 + signals = [1] else - signal = "HUP" + signals = %w[INT TERM HUP] end - trap(signal) { @server.shutdown } + signals.each { |signal| trap(signal) { @server.shutdown } } @server.start end