Blame erlang-cowlib-0002-WS-accepts-iodata-so-byte_size-won-t-work-unless-we-.patch
|
|
adeb5bb |
From: Rob Ashton <robashton@codeofrob.com>
|
|
|
adeb5bb |
Date: Thu, 9 Apr 2015 18:01:38 +0100
|
|
|
adeb5bb |
Subject: [PATCH] WS accepts iodata, so byte_size won't work unless we flatten
|
|
|
adeb5bb |
|
|
|
adeb5bb |
|
|
|
adeb5bb |
diff --git a/src/cow_ws.erl b/src/cow_ws.erl
|
|
|
adeb5bb |
index c89c17a..c025b38 100644
|
|
|
adeb5bb |
--- a/src/cow_ws.erl
|
|
|
adeb5bb |
+++ b/src/cow_ws.erl
|
|
|
adeb5bb |
@@ -580,7 +580,7 @@ masked_frame({binary, Payload}, _) ->
|
|
|
adeb5bb |
[<< 1:1, 0:3, 2:4, 1:1, Len/bits >>, MaskKeyBin, mask(iolist_to_binary(Payload), MaskKey, <<>>)].
|
|
|
adeb5bb |
|
|
|
adeb5bb |
payload_length(Payload) ->
|
|
|
adeb5bb |
- case byte_size(Payload) of
|
|
|
adeb5bb |
+ case iolist_size(Payload) of
|
|
|
adeb5bb |
N when N =< 125 -> << N:7 >>;
|
|
|
adeb5bb |
N when N =< 16#ffff -> << 126:7, N:16 >>;
|
|
|
adeb5bb |
N when N =< 16#7fffffffffffffff -> << 127:7, N:64 >>
|