Skip to content

Commit

Permalink
Merge pull request #87 from haljin/master
Browse files Browse the repository at this point in the history
Fix the lost frame, certificates for test
  • Loading branch information
Azolo authored Feb 2, 2021
2 parents ce7064e + dc57e92 commit ad20100
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 103 deletions.
2 changes: 1 addition & 1 deletion lib/websockex.ex
Original file line number Diff line number Diff line change
Expand Up @@ -1014,7 +1014,7 @@ defmodule WebSockex do
key <- :crypto.strong_rand_bytes(16) |> Base.encode64(),
{:ok, request} <- WebSockex.Conn.build_request(conn, key),
:ok <- WebSockex.Conn.socket_send(conn, request),
{:ok, headers} <- WebSockex.Conn.handle_response(conn),
{:ok, headers} <- WebSockex.Conn.handle_response(conn, my_pid),
:ok <- validate_handshake(headers, key) do
:ok = WebSockex.Conn.controlling_process(conn, my_pid)
:ok = WebSockex.Conn.set_active(conn)
Expand Down
8 changes: 5 additions & 3 deletions lib/websockex/conn.ex
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ defmodule WebSockex.Conn do
default #{@socket_connect_timeout_default} ms.
- `:socket_recv_timeout` - Timeout in ms for receiving a HTTP response header
from socket, default #{@socket_recv_timeout_default} ms.
- `:ssl_options` - extra options for an SSL connection
[public_key]: http://erlang.org/doc/apps/public_key/using_public_key.html
"""
Expand All @@ -55,6 +56,7 @@ defmodule WebSockex.Conn do
| {:insecure, boolean}
| {:socket_connect_timeout, non_neg_integer}
| {:socket_recv_timeout, non_neg_integer}
| {:ssl_options, [:ssl.tls_client_option()]}

@type t :: %__MODULE__{
conn_mod: :gen_tcp | :ssl,
Expand Down Expand Up @@ -224,13 +226,13 @@ defmodule WebSockex.Conn do
Sends any access information in the buffer back to the process as a message
to be processed.
"""
@spec handle_response(__MODULE__.t()) :: {:ok, [header]} | {:error, reason :: term}
def handle_response(conn) do
@spec handle_response(__MODULE__.t(), pid()) :: {:ok, [header]} | {:error, reason :: term}
def handle_response(conn, owner_pid) do
with {:ok, buffer} <- wait_for_response(conn),
{:ok, headers, buffer} <- decode_response(buffer) do
# Send excess buffer back to the process
unless buffer == "" do
send(self(), {transport(conn.conn_mod), conn.socket, buffer})
send(owner_pid, {transport(conn.conn_mod), conn.socket, buffer})
end

{:ok, headers}
Expand Down
16 changes: 9 additions & 7 deletions mix.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
%{"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []},
"earmark": {:hex, :earmark, "1.1.1", "433136b7f2e99cde88b745b3a0cfc3fbc81fe58b918a09b40fce7f00db4d8187", [:mix], []},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"mime": {:hex, :mime, "1.1.0", "01c1d6f4083d8aa5c7b8c246ade95139620ef8effb009edde934e0ec3b28090a", [:mix], []},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], []}}
%{
"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "6a0edee96885fae3a8dd0ac1f333538a42e807db638a9453064ccfdaa6b9fdac"},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], [], "hexpm", "db622da03aa039e6366ab953e31186cc8190d32905e33788a1acb22744e6abd2"},
"earmark": {:hex, :earmark, "1.1.1", "433136b7f2e99cde88b745b3a0cfc3fbc81fe58b918a09b40fce7f00db4d8187", [:mix], [], "hexpm", "d446a8ffea9968237fcada883303ac6e04a00a1dc41039061645eea9e7af65a0"},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm", "5c30e436a5acfdc2fd8fe6866585fcaf30f434c611d8119d4f3390ced2a550f3"},
"mime": {:hex, :mime, "1.1.0", "01c1d6f4083d8aa5c7b8c246ade95139620ef8effb009edde934e0ec3b28090a", [:mix], [], "hexpm", "33dd09e615daab5668c15cc3a33829892728fdbed910ab0c0a0edb06b45fc54d"},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm", "fd5244357e6d5651d3e1bc3582f5e29c29f5055f34194533100ececc2dfae2fd"},
"ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], [], "hexpm", "6e56493a862433fccc3aca3025c946d6720d8eedf6e3e6fb911952a7071c357f"},
}
70 changes: 16 additions & 54 deletions test/support/priv/websockex.cer
Original file line number Diff line number Diff line change
@@ -1,56 +1,18 @@
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 1048577 (0x100001)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US, ST=Invalid, L=Nope, O=WebSockex
Validity
Not Before: Mar 21 05:47:45 2017 GMT
Not After : Mar 19 05:47:45 2027 GMT
Subject: C=US, ST=Invalid, O=WebSockex, CN=localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:b5:27:2f:4a:e9:56:ce:4c:36:91:f9:c6:d9:47:
87:2b:18:32:6f:76:9f:db:66:00:84:78:76:dd:78:
d0:22:91:17:89:57:44:59:a6:dd:53:8d:82:8e:4e:
bb:d7:0e:0a:fb:21:08:cf:02:a8:d8:ae:eb:65:3d:
45:c4:60:c1:13:95:29:a8:ab:a9:7b:34:c3:d5:82:
17:92:6e:1e:9d:22:61:55:41:23:ae:41:b1:38:70:
69:97:9c:b8:0f:7a:6b:aa:7b:6e:c9:d4:ae:2e:f7:
7c:91:e7:0c:2f:09:80:da:b5:90:5d:bd:88:6f:4b:
bb:8d:4b:45:9e:0c:9a:23:89
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
58:5d:2a:bc:a2:1f:f0:82:17:f2:9f:f6:9f:cc:e2:7a:3b:09:
4d:bd:1e:5f:fd:98:b3:c9:94:21:70:25:67:c6:fb:85:fc:76:
68:2c:7f:dd:d2:52:32:6a:42:d1:48:ea:53:b0:a6:46:20:ee:
34:af:b7:aa:d1:8d:18:57:88:f0:42:de:13:2e:dc:c8:b0:33:
f5:60:f2:4a:62:c4:e9:0d:43:bd:42:c7:53:54:c6:97:68:fa:
d4:c4:7a:12:e8:e4:86:24:f1:46:3c:52:24:b7:9a:69:d8:ed:
2b:8a:2c:1c:70:3b:bd:67:d9:1e:fe:b3:54:04:f9:a5:de:1a:
ef:49:64:d4:ed:3c:fb:f3:c5:24:ef:2a:e7:52:18:2e:4f:79:
29:b6:11:18:7c:7c:93:d8:8f:5b:a2:36:a0:66:8d:cf:46:1d:
be:46:b5:db:1d:a5:9e:4a:96:80:26:ee:b0:1b:d7:5b:a5:e4:
01:7e:9e:8f:0e:1d:0c:b3:65:1b:b2:fa:32:28:5f:61:a9:d9:
f1:49:1b:87:73:55:d8:45:c4:85:1c:e0:d1:fa:b7:3a:ce:31:
7f:ea:db:68:2e:7b:18:5e:b5:33:fb:96:71:5f:b1:b8:d3:ca:
9c:00:9b:4d:f4:14:fa:c2:8d:3b:96:23:74:c9:b7:bc:71:dd:
d9:21:04:3e
-----BEGIN CERTIFICATE-----
MIICezCCAWMCAxAAATANBgkqhkiG9w0BAQQFADBCMQswCQYDVQQGEwJVUzEQMA4G
A1UECBMHSW52YWxpZDENMAsGA1UEBxMETm9wZTESMBAGA1UEChMJV2ViU29ja2V4
MB4XDTE3MDMyMTA1NDc0NVoXDTI3MDMxOTA1NDc0NVowRzELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0ludmFsaWQxEjAQBgNVBAoTCVdlYlNvY2tleDESMBAGA1UEAxMJ
bG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1Jy9K6VbOTDaR
+cbZR4crGDJvdp/bZgCEeHbdeNAikReJV0RZpt1TjYKOTrvXDgr7IQjPAqjYrutl
PUXEYMETlSmoq6l7NMPVgheSbh6dImFVQSOuQbE4cGmXnLgPemuqe27J1K4u93yR
5wwvCYDatZBdvYhvS7uNS0WeDJojiQIDAQABMA0GCSqGSIb3DQEBBAUAA4IBAQBY
XSq8oh/wghfyn/afzOJ6OwlNvR5f/ZizyZQhcCVnxvuF/HZoLH/d0lIyakLRSOpT
sKZGIO40r7eq0Y0YV4jwQt4TLtzIsDP1YPJKYsTpDUO9QsdTVMaXaPrUxHoS6OSG
JPFGPFIkt5pp2O0riiwccDu9Z9ke/rNUBPml3hrvSWTU7Tz788Uk7yrnUhguT3kp
thEYfHyT2I9bojagZo3PRh2+RrXbHaWeSpaAJu6wG9dbpeQBfp6PDh0Ms2Ubsvoy
KF9hqdnxSRuHc1XYRcSFHODR+rc6zjF/6ttoLnsYXrUz+5ZxX7G408qcAJtN9BT6
wo07liN0ybe8cd3ZIQQ+
MIIC4jCCAcoCFFn0yt4MiM9P8jCdRwyfQalDvA2yMA0GCSqGSIb3DQEBCwUAMBQx
EjAQBgNVBAMMCXdlYnNvY2tleDAeFw0yMTAxMjIwOTM2NTNaFw0yMzEwMTkwOTM2
NTNaMEcxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdJbnZhbGlkMRIwEAYDVQQKDAlX
ZWJzb2NrZXgxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALpVXwVPjqvg5JXakidY/aQ3AE7fVLgtMDhS81kb74mtvGDG
GgoNvxuo5UEnRp9qWeuxirJ+s1PtACxB23f0xvCSXnGQKAyVEvwp/RZzZVPEIGCB
xFFI+ou3SGyUHxx1cW3Y4ha1XZjFGPTC7OGb2EY+rR934aEel4tmEb4ZkdqKl7rT
1e9lWdtWIzMbOxFE3tiN59/k/rHohEX4/tcBMIG9gYld7ppt3j1uN8G8r+ML9mQT
j/N6mtUkFaTa1y/W16cdRx9Si1NDGTmR+T+yaeFjOc8G3x5pJ8m1fSvC1WQ/dp+7
u+PwW0QSEIhlrJHdn29AyuF54zQTL5qmk35TwxcCAwEAATANBgkqhkiG9w0BAQsF
AAOCAQEAIhdTVS1JQmfYtyI5/M3D6WKHjNEaPM2xf7oNE0cU7c8KbC99qZ02YPlK
YVwV55G0THmGyw9BMXhVj7iHXN01JaxgJ4nBt3uNiniuClOXjO9z9F++hDtqa4Iu
FehXtQA4vlPaVWPgqZrME/N6HQZNs5zdu3Dr1A5SOLXag2eLtbdOUJQGMph2rMrL
3DnHK+RXal8j0v0yYTp0XAQHOr8eOPEDNwQ0LAuwOmpCG9IV2fwiaMZrHjgwjQFU
lVpZ3tdGX8TddjEC6Hrs2kDsu3VpAVC94PQy6Y5g6MVv3+Hs2wA1QaFn0OxtK7tu
aCuFg7tg5qVZZMyMLdNaJpusRv1DiA==
-----END CERTIFICATE-----
43 changes: 27 additions & 16 deletions test/support/priv/websockex.key
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALUnL0rpVs5MNpH5
xtlHhysYMm92n9tmAIR4dt140CKRF4lXRFmm3VONgo5Ou9cOCvshCM8CqNiu62U9
RcRgwROVKairqXs0w9WCF5JuHp0iYVVBI65BsThwaZecuA96a6p7bsnUri73fJHn
DC8JgNq1kF29iG9Lu41LRZ4MmiOJAgMBAAECgYBz2x258UXdJoz4CyELsV1XSGBp
PRq7vJ60Gj8bIbsrgFPnOHK0S63dU/GdhelIfuiy98ukaXUHL8fItck68Q5JnUI8
VHaz0x2fnWYk0AMJn0c1WH8PAN+V7tUy7QyN/vhIUcUdzqWfNiKxcL+rR8KmOKAH
O9Jewx+QGX5CgcUg6QJBAOxqbd5P1HN6mDl2VSZjWye8q/40c9IdJ0RtNKZlLlRv
9gFE5xdihPeB8KnHgvKWi13ToVtxiK/irztec+B+sMMCQQDEKNKpLIBNQSkV07ym
cGdIgwpT2bhHvXXfrlfhmORszpK2mNqRl49MYBHhuxbId8PxqcD9Q+YsD6u9dV2A
aJXDAkBGU1aBZg/VlidIGJo1xCJujKJBCQtW+lMe+LlLshd5CKEOOZfgje7tzVpw
tqeOUBf+/iAmmnxFjdIAgBVKN4WPAkEAoqqjvyyrHOV7N6GFoJQ34hbg2pYCzmMb
u6ktMWSDkINhgNCS+AcyCwjj60glZYqD0ASQiLXkywcXyR3pstGH1wJAWcLgiUcs
6GpvjGUgkC8J6UqYCMi1azTlMapKJiT7TFNRmRNstp1gz0JU+zqb/Jy7R1ZyDLKE
Gt6Pz43/Rn/GdQ==
-----END PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAulVfBU+Oq+DkldqSJ1j9pDcATt9UuC0wOFLzWRvvia28YMYa
Cg2/G6jlQSdGn2pZ67GKsn6zU+0ALEHbd/TG8JJecZAoDJUS/Cn9FnNlU8QgYIHE
UUj6i7dIbJQfHHVxbdjiFrVdmMUY9MLs4ZvYRj6tH3fhoR6Xi2YRvhmR2oqXutPV
72VZ21YjMxs7EUTe2I3n3+T+seiERfj+1wEwgb2BiV3umm3ePW43wbyv4wv2ZBOP
83qa1SQVpNrXL9bXpx1HH1KLU0MZOZH5P7Jp4WM5zwbfHmknybV9K8LVZD92n7u7
4/BbRBIQiGWskd2fb0DK4XnjNBMvmqaTflPDFwIDAQABAoIBAGS/gigR8xdV+uJX
ksy5njLrFjyPHnSS4k6h8zfMFgFAMem1UyD6e8lN0d8fiFzrmQEKNu75+KY5L+2+
EhdS/znWOkB27GCZPfGgFlrMPA5FrifgIjC9H9LpX7xtfkDZ82GscdpLZ/cRIsQ8
nO4DYLXib6LjI9kE/HV/07oQgz9A4SZNNzDQOKpEZup6c1a9XdIqAqE9Ms9zVK+3
U55q6AHotMejs+Hu21GTwZ9Te4L+cnJH28KJvmZ0tgtuGNICXG/Gjye0KLvtWPtj
MKbF6gemkjB7MXVFFl4rud5ZTmJuRp8Gg+KuWooxzM0DcjHLZDyYiZ/fDk2m+7/u
qW9pn7ECgYEA8OD/qzbcF9dEtMICtr6LedozhWsLHtBFv0HKcZIU4cxQ00Dr6fm/
e/2umFSvDSlZNtQHF9tRYCl2Ng018CrgQWoLkrmqdWkNYqxHZhUpQ8/LQ+ZWhH8N
Lfq0SnL/6Oc2xRsMqAsrutLh9Wtslos1bwYZS9fTh5sE7ceqbH8DkTkCgYEAxgfP
X5x1c7s5F7K4brLn8fJl0ozHo7m9uv0HjTTAOHOL4rkdeSd4caJRqhxEqJhv3FjY
GTR6OTPeCvA1Tcej8VEYchTgkh4nQe3F8KibN/WwMVR9c1zwyAesRh5zwKFiAm4z
RaEb3GTuxltTaZNXs2XvDLbd3MJvfvVdBd9aBs8CgYEA5nKrxzat7BUkAzbVd9Xm
BEbQIaVeNzWUdLzRnEPgvIFHFkS3Ltqj6lCx98SU0KetVXoV6yoEuVYRZPbQkpvC
fnKg7de5D6jYiH0/tZcrKlgjJCu6u/n9Nu7yC4Pn9v81c+9D9YTyakMUsEH82i4G
idgw3VF3avXRCleKYVBGrmkCgYAtmlbS+cDCafb30hxOwbxQJzXzip/ewENE8Efw
6JjrZxBroZ177O77nBmaRvA4swHviDYbd849pggYFMDxrGvAgqBShSRCAdeggxT2
Gp3EATwV4BMToe+A4ON3MkQNtBxR2vbLrhIwar3hx94pjdjAY1TtZJ8q20u5vN8z
HwAoWQKBgEn5q9mXf6Emd14VDRXRt//kyozr35KayOfDX//Evu6WmDUqnNG0Jh8w
d1O6/dpGIl1iAbr/mpdNH72MscF1VNZgaAe/H1wqE8UR+qdrl+vLoQTdm8SOHSxQ
bOLiiCSSSoKugtlhvy5OhoSRisEksD6hYgzIy8kTzKyxyz8ktBUJ
-----END RSA PRIVATE KEY-----
36 changes: 16 additions & 20 deletions test/support/priv/websockexca.cer
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
-----BEGIN CERTIFICATE-----
MIIDrDCCApSgAwIBAgIJAK3HQ7B1fVXfMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNV
BAYTAlVTMRAwDgYDVQQIEwdJbnZhbGlkMQ0wCwYDVQQHEwROb3BlMRIwEAYDVQQK
EwlXZWJTb2NrZXgwHhcNMTcwMzIxMDUxMDA2WhcNMjcwMzE5MDUxMDA2WjBCMQsw
CQYDVQQGEwJVUzEQMA4GA1UECBMHSW52YWxpZDENMAsGA1UEBxMETm9wZTESMBAG
A1UEChMJV2ViU29ja2V4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
yzbLnGQA1VizhVWgaMp5wKHfN+cd4Cso1FADzlN+gmwcP+hry3dj5JyWoSfut7Ju
F6587Q6oI3pivT9jg1c+EvP/fn3vhwfa4Jvoa10yON5atTOLx3HUOBKN3hVGQhfU
hcBMTQbgA5gLo3a/hSs25CjP0C32DEtl+l9NSK9QRFePG3uJoy8UizvOPUB3jMsx
/F51Ljc+EgsLddM6KIPZz4vLm/nmv8CwSfdWOMG491/h6nebSfPcyJUefwnTmN+K
NXaHZYK8L2h2L9dYj+Hzc0Wzav8cW5L26H/kE2AnTJNas2xVRwdPgPqA8EA69Jg/
pyw79h2VXttfzJgNGkw1HwIDAQABo4GkMIGhMB0GA1UdDgQWBBREqMlZvy/CYG4c
m1vNzuSMcLJkmzByBgNVHSMEazBpgBREqMlZvy/CYG4cm1vNzuSMcLJkm6FGpEQw
QjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0ludmFsaWQxDTALBgNVBAcTBE5vcGUx
EjAQBgNVBAoTCVdlYlNvY2tleIIJAK3HQ7B1fVXfMAwGA1UdEwQFMAMBAf8wDQYJ
KoZIhvcNAQELBQADggEBAAJekhrU8nwpWzXix98lgqK6vLZKHOHgQEBDKoKfjf0W
wLeBZLTwl0BMcQuRQqCNaA7qqjQuqHFtkQFiDa/U87Lmc30dlIXY47e/NHE0xTmv
Sz76lzFbKikZ/c/iiyUYDpIPHVxmkmmX5XBTKKU+iqP4/j29SLNkVgpWpliMBF80
yinSTO1ZCpZ6Mc8zkvtzUk35Ndsz1ZkoskYVPGrWn0Ljf8jAlnVCPhMovrOiaXRl
CdirUyFcMEZ4ssRlp5E7J537wESn3gA4T3TAkNlN3+4VmoF7bEzaNuAVojL2dRZm
/p9zgdmybc+CqK565n2Gfm0UwcPtb5i3++sMJDlYCl4=
MIIC+DCCAeCgAwIBAgIUDDYQOSph8qwwwIr7NatpB+ceyo0wDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJd2Vic29ja2V4MB4XDTIxMDEyMjA5Mjg1M1oXDTIzMTEx
MjA5Mjg1M1owFDESMBAGA1UEAwwJd2Vic29ja2V4MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAuX7Dp1e1DBDA/u0UO382vP7DUMr1uGedbmO56Kz+1Nuw
7OcT+U/PfpWKFSPxl37NInOcPA7G+uXfQf0gQK+JjrU4yTe/KNWRscGARZ4s9cCj
aq2zIoRUoh2QoXkY36N4THoMB+SSn6n7uDhj3iemYuI2QbnZY0Zeu8tBIV4ozqmV
/FQU6L5NgEi/0qMrlfcLc8dDaiYhJAjnnsPcch77w1+dLxfPuls9m685CIs/yjny
MFdzLGsN8XlTnY8BpYdGazWMRVT2yfzeBjmTS+vRsXKvhtgm2jInjLRJtB3VV4NL
gmRFBQ47J5smZ0n7RgUM5lFHgeEFYMqaqnYAH6dorQIDAQABo0IwQDAOBgNVHQ8B
Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUDJxtasTNHp+4C3MQ
9XeCPrR+1AUwDQYJKoZIhvcNAQELBQADggEBADkvGzmpk7B27HnkwzN8p+4PTbAU
lr3qV1dYkpmULyhf7m+AQhLdskYcByHgC4S1bLt41RZsh3mvrznnpNDZh8OsAH7I
j5vCKVB7ht66dvPNqR69SiD9KjVfrShTPJzhXDC8Kjp6ziJW3sIpJ7IQKlBxdIfw
h/CR5eGfD2Cx1t1RNG/kT9cwGdYS2UuX3MBAgGth9LYfK2+pjYSEoRSMjqLQL4xK
q2t9iuiTPl7ABa19FFpTg0k6kPM4EETgAniY9TwW05U+4bGDc7mhZJhdokG1LXde
kUH/diZ7ukCm5gBi5Yl1r9mNAbMCXTFvkZnXzkSMbwq+HXweadw5a3dQ+J8=
-----END CERTIFICATE-----
2 changes: 1 addition & 1 deletion test/websockex/conn_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ defmodule WebSockex.ConnTest do
{:ok, request} = WebSockex.Conn.build_request(conn, "pants")
:ok = WebSockex.Conn.socket_send(conn, request)

assert WebSockex.Conn.handle_response(conn) ==
assert WebSockex.Conn.handle_response(conn, self()) ==
{:error, %WebSockex.RequestError{code: 400, message: "Bad Request"}}
end

Expand Down
14 changes: 13 additions & 1 deletion test/websockex_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,19 @@ defmodule WebSockexTest do

on_exit(fn -> WebSockex.TestServer.shutdown(server_ref) end)

{:ok, _pid} = TestClient.start_link(url, %{})
{:ok, _pid} =
TestClient.start_link(url, %{},
insecure: false,
ssl_options: [
cacertfile:
Path.join([
__DIR__,
"support/priv",
"websockexca.cer"
])
]
)

server_pid = WebSockex.TestServer.receive_socket_pid()

send(server_pid, :immediate_reply)
Expand Down

0 comments on commit ad20100

Please sign in to comment.