Skip to content

Commit 30f3f56

Browse files
committed
fix delimeter U+FFFD parsing
1 parent 9450e21 commit 30f3f56

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

Web/SocketIO/Protocol.hs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ demultiplexMessage = do
3333
---- | Using U+FFFD as delimiter
3434
frameParser :: Parser a -> Parser a
3535
frameParser parser = do
36-
string "\253"
36+
string "�"
3737
len <- decimal
38-
string "\253"
38+
string "�"
3939
x <- take len
4040
case parseOnly parser x of
4141
Left e -> error e
@@ -53,8 +53,6 @@ parseFramedMessage input = case parseOnly framedMessageParser input of
5353
Left e -> error e
5454
Right r -> Framed r
5555

56-
57-
5856
--------------------------------------------------------------------------------
5957
-- | Message, not framed
6058
messageParser :: Parser Message

Web/SocketIO/Request.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ serializeMessage = toByteString 0
5858
leftover n'
5959
toByteString (i + 1)
6060

61-
frame b = "" <> serialize size <> "" <> b'
61+
frame b = "�" <> serialize size <> "�" <> b'
6262
where b' = serialize b
6363
size = B.length b'
6464

Web/SocketIO/Types/Request.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ instance (Show a, Serializable a) => Serializable (Framed a) where
5656
serialize (Framed [message]) = serialize message
5757
serialize (Framed messages) = mconcat $ map frame messages
5858
where frame message = let serialized = serialize message
59-
in "" <> serialize size <> "" <> serialized
59+
in "�" <> serialize size <> "�" <> serialized
6060
where size = B.length (serialize message)
6161

6262
--------------------------------------------------------------------------------

0 commit comments

Comments
 (0)