Skip to content

Commit 28aac1e

Browse files
committed
add ssl support to goliath, closespostrank-labs#24
1 parent cc4ba94 commit 28aac1e

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

‎lib/goliath/runner.rb‎

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,30 @@ def options_parser
100100
opts.separator"Server options:"
101101

102102
opts.on('-e','--environment NAME',"Set the execution environment (prod, dev or test) (default: #{@options[:env]})"){ |val| @options[:env]=val}
103-
104103
opts.on('-a','--address HOST',"Bind to HOST address (default: #{@options[:address]})"){ |addr| @options[:address]=addr}
105104
opts.on('-p','--port PORT',"Use PORT (default: #{@options[:port]})"){ |port| @options[:port]=port.to_i}
106105

106+
opts.separator""
107+
opts.separator"Daemon options:"
108+
107109
opts.on('-u','--user USER',"Run as specified user"){|v| @options[:user]=v}
110+
opts.on('-c','--config FILE',"Config file (default: ./config/<server>.rb)"){ |v| @options[:config]=v}
111+
opts.on('-d','--daemonize',"Run daemonized in the background (default: #{@options[:daemonize]})"){ |v| @options[:daemonize]=v}
108112
opts.on('-l','--log FILE',"Log to file (default: off)"){ |file| @options[:log_file]=file}
109113
opts.on('-s','--stdout',"Log to stdout (default: #{@options[:log_stdout]})"){ |v| @options[:log_stdout]=v}
110-
111-
opts.on('-c','--config FILE',"Config file (default: ./config/<server>.rb)"){ |v| @options[:config]=v}
112114
opts.on('-P','--pid FILE',"Pid file (default: off)"){ |file| @options[:pid_file]=file}
113-
opts.on('-d','--daemonize',"Run daemonized in the background (default: #{@options[:daemonize]})"){ |v| @options[:daemonize]=v}
114-
opts.on('-v','--verbose',"Enable verbose logging (default: #{@options[:verbose]})"){ |v| @options[:verbose]=v}
115115

116+
opts.separator""
117+
opts.separator"SSL options:"
118+
opts.on('--ssl','Enables SSL (default: off)'){|v| @options[:ssl]=v}
119+
opts.on('--ssl-key FILE','Path to private key'){|v| @options[:ssl_key]=v}
120+
opts.on('--ssl-cert FILE','Path to certificate'){|v| @options[:ssl_cert]=v}
121+
opts.on('--ssl-verify','Enables SSL certificate verification'){|v| @options[:ssl_verify]=v}
122+
123+
opts.separator""
124+
opts.separator"Common options:"
125+
126+
opts.on('-v','--verbose',"Enable verbose logging (default: #{@options[:verbose]})"){ |v| @options[:verbose]=v}
116127
opts.on('-h','--help','Display help message'){show_options(opts)}
117128
end
118129
end

‎lib/goliath/server.rb‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ def start(&blk)
8080
EM.set_effective_user(options[:user])ifoptions[:user]
8181

8282
EM.start_server(address,port,Goliath::Connection)do |conn|
83+
conn.start_tls(
84+
:private_key_file=>options[:ssl_key],
85+
:cert_chain_file=>options[:ssl_cert],
86+
:verify_peer=>options[:ssl_verify]
87+
)ifoptions[:ssl]
88+
8389
conn.port=port
8490
conn.app=app
8591
conn.api=api

0 commit comments

Comments
(0)