From 252a62dee94e4f50601bbcd7529d00f177036cf6 Mon Sep 17 00:00:00 2001 From: Lexi Date: Sun, 19 Aug 2018 13:35:39 -0500 Subject: [PATCH 1/3] support passing custom TLS options to EM's start_tls --- lib/websocket/eventmachine/client.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/websocket/eventmachine/client.rb b/lib/websocket/eventmachine/client.rb index 80a06fd..ac29760 100644 --- a/lib/websocket/eventmachine/client.rb +++ b/lib/websocket/eventmachine/client.rb @@ -83,7 +83,7 @@ def post_init # @private def connection_completed if @args[:ssl] - start_tls + start_tls @args[:tls] else send(@handshake.to_s, :type => :plain) end From 8ca5c33dac6d0f9d33e4c161c1f92b9bd53a65da Mon Sep 17 00:00:00 2001 From: Lexi Date: Sun, 19 Aug 2018 13:36:27 -0500 Subject: [PATCH 2/3] enable SNI by default for WSS connections --- lib/websocket/eventmachine/client.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/websocket/eventmachine/client.rb b/lib/websocket/eventmachine/client.rb index ac29760..e2e2f3c 100644 --- a/lib/websocket/eventmachine/client.rb +++ b/lib/websocket/eventmachine/client.rb @@ -35,6 +35,8 @@ def self.connect(args = {}) host = args[:host] if args[:host] port = args[:port] if args[:port] if args[:ssl] + args[:tls] ||= {} + args[:tls][:sni_hostname] ||= host port ||= 443 else port ||= 80 From 8cc0f85c6f562bc23c24c0314a0da431cfb70bab Mon Sep 17 00:00:00 2001 From: Lexi Date: Sun, 19 Aug 2018 13:55:44 -0500 Subject: [PATCH 3/3] add :tls to documentation for connect --- lib/websocket/eventmachine/client.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/websocket/eventmachine/client.rb b/lib/websocket/eventmachine/client.rb index e2e2f3c..b7900fd 100644 --- a/lib/websocket/eventmachine/client.rb +++ b/lib/websocket/eventmachine/client.rb @@ -23,6 +23,7 @@ class Client < Base # @option args [Integer] :version Version of protocol to use(default = 13) # @option args [Hash] :headers HTTP headers to use in the handshake # @option args [Boolean] :ssl Force SSL/TLS connection + # @option args [Hash] :tls TLS options hash to be passed to EM start_tls def self.connect(args = {}) host = nil port = nil