From 0402a1eecd427bbaf82f40f8c790a87dec2f4ddb Mon Sep 17 00:00:00 2001 From: Francois Normandin Date: Tue, 20 Oct 2020 11:37:45 -0400 Subject: [PATCH 1/4] [Fix: 7] Store return headers as lowercase to support case-insensitive header matching as per RFC 2616 Section 4.2 (https://tools.ietf.org/html/rfc2616#section-4.2) --- .../WebSocket/Read Return Header.vi | Bin 16046 -> 16130 bytes .../WebSockets/WebSocket/Set Return Header.vi | Bin 16485 -> 16573 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Source/WebSockets/WebSocket/Read Return Header.vi b/Source/WebSockets/WebSocket/Read Return Header.vi index 63249a7146231e69f3867edbd8fdbda5c30e7cd4..340cb8708857550a7cafb36345efc05e5392ecdc 100644 GIT binary patch delta 3248 zcmZuzc{J2}A0CE8_N6ooBZL&j8rtn^b|#~eEeuU!7?XY?F)<=bbVZgdW6j!vW{f40 zZLHCtYi}%Lr^C=69cmT7pwbA3@0)fpPOf1c>I5>hp zy2&6A*dGJ}!47y}BFz1?Fbn$*qPTe}&{zsA)7n@OD4K9UL!h*37gW3`d?cT9ng7{DS2S3UE%ml$W87@?WUWTBD5b@^UdGowf*9{ z36Fd)b&A4$l)V0�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 delta 3163 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 O!2SDT1uZ;Eh5a8>=C%+3 delta 2604 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 J-j)n-`xmx1m#zQ+ From d7b2069a211298ac3aefc5789aa054a8ec375474 Mon Sep 17 00:00:00 2001 From: Francois Normandin Date: Tue, 20 Oct 2020 12:55:04 -0400 Subject: [PATCH 2/4] [Fix: 8] Timeout elapsed on read operation will stop the loop waiting for incoming frames --- Source/WebSockets/WebSocket/Internal Read.vi | Bin 22861 -> 22909 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Source/WebSockets/WebSocket/Internal Read.vi b/Source/WebSockets/WebSocket/Internal Read.vi index d5a53774747b3118adcc1537558cf666f6349ba3..e430f3758a757fd85b01eb8f303f5dbc1bf6f562 100644 GIT binary patch delta 10394 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 p!T-Qn{105>|KS4vyPl@be>e) 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 Date: Fri, 13 Oct 2023 05:44:47 -0700 Subject: [PATCH 3/4] stop tracking alias file --- Source/WebSockets Examples.aliases | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 Source/WebSockets Examples.aliases diff --git a/Source/WebSockets Examples.aliases b/Source/WebSockets Examples.aliases deleted file mode 100644 index a82e33a..0000000 --- a/Source/WebSockets Examples.aliases +++ /dev/null @@ -1,3 +0,0 @@ -[My Computer] -My Computer = "169.254.52.239" - From df2ec54334d01eafbfe597b144249b042aa897ba Mon Sep 17 00:00:00 2001 From: Francois Normandin Date: Fri, 13 Oct 2023 06:02:28 -0700 Subject: [PATCH 4/4] build 2.0.2 --- WebSockets API.vipb | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/WebSockets API.vipb b/WebSockets API.vipb index 96fbe1b..66ef350 100644 --- a/WebSockets API.vipb +++ b/WebSockets API.vipb @@ -1,7 +1,7 @@ - + MediaMongrels_Ltd_lib_WebSockets_API - 2.0.1.41 + 2.0.2.42 false Source Builds @@ -9,7 +9,7 @@ MIT License 13.0 - false + true 00000D7E002800000C9A00000400000200020022002200080000000000FFFFFF00FF80000000FFFFFFFFFFFF0000FFFFFFFFCCCC0000FFFFFFFF99990000FFFFFFFF66660000FFFFFFFF33330000FFFFFFFF00000000FFFFCCCCFFFF0000FFFFCCCCCCCC0000FFFFCCCC99990000FFFFCCCC66660000FFFFCCCC33330000FFFFCCCC00000000FFFF9999FFFF0000FFFF9999CCCC0000FFFF999999990000FFFF999966660000FFFF999933330000FFFF999900000000FFFF6666FFFF0000FFFF6666CCCC0000FFFF666699990000FFFF666666660000FFFF666633330000FFFF666600000000FFFF3333FFFF0000FFFF3333CCCC0000FFFF333399990000FFFF333366660000FFFF333333330000FFFF333300000000FFFF0000FFFF0000FFFF0000CCCC0000FFFF000099990000FFFF000066660000FFFF000033330000FFFF000000000000CCCCFFFFFFFF0000CCCCFFFFCCCC0000CCCCFFFF99990000CCCCFFFF66660000CCCCFFFF33330000CCCCFFFF00000000CCCCCCCCFFFF0000CCCCCCCCCCCC0000CCCCCCCC99990000CCCCCCCC66660000CCCCCCCC33330000CCCCCCCC00000000CCCC9999FFFF0000CCCC9999CCCC0000CCCC999999990000CCCC999966660000CCCC999933330000CCCC999900000000CCCC6666FFFF0000CCCC6666CCCC0000CCCC666699990000CCCC666666660000CCCC666633330000CCCC666600000000CCCC3333FFFF0000CCCC3333CCCC0000CCCC333399990000CCCC333366660000CCCC333333330000CCCC333300000000CCCC0000FFFF0000CCCC0000CCCC0000CCCC000099990000CCCC000066660000CCCC000033330000CCCC0000000000009999FFFFFFFF00009999FFFFCCCC00009999FFFF999900009999FFFF666600009999FFFF333300009999FFFF000000009999CCCCFFFF00009999CCCCCCCC00009999CCCC999900009999CCCC666600009999CCCC333300009999CCCC0000000099999999FFFF000099999999CCCC0000999999999999000099999999666600009999999933330000999999990000000099996666FFFF000099996666CCCC0000999966669999000099996666666600009999666633330000999966660000000099993333FFFF000099993333CCCC0000999933339999000099993333666600009999333333330000999933330000000099990000FFFF000099990000CCCC000099990000999900009999000066660000999900003333000099990000000000006666FFFFFFFF00006666FFFFCCCC00006666FFFF999900006666FFFF666600006666FFFF333300006666FFFF000000006666CCCCFFFF00006666CCCCCCCC00006666CCCC999900006666CCCC666600006666CCCC333300006666CCCC0000000066669999FFFF000066669999CCCC0000666699999999000066669999666600006666999933330000666699990000000066666666FFFF000066666666CCCC0000666666669999000066666666666600006666666633330000666666660000000066663333FFFF000066663333CCCC0000666633339999000066663333666600006666333333330000666633330000000066660000FFFF000066660000CCCC000066660000999900006666000066660000666600003333000066660000000000003333FFFFFFFF00003333FFFFCCCC00003333FFFF999900003333FFFF666600003333FFFF333300003333FFFF000000003333CCCCFFFF00003333CCCCCCCC00003333CCCC999900003333CCCC666600003333CCCC333300003333CCCC0000000033339999FFFF000033339999CCCC0000333399999999000033339999666600003333999933330000333399990000000033336666FFFF000033336666CCCC0000333366669999000033336666666600003333666633330000333366660000000033333333FFFF000033333333CCCC0000333333339999000033333333666600003333333333330000333333330000000033330000FFFF000033330000CCCC000033330000999900003333000066660000333300003333000033330000000000000000FFFFFFFF00000000FFFFCCCC00000000FFFF999900000000FFFF666600000000FFFF333300000000FFFF000000000000CCCCFFFF00000000CCCCCCCC00000000CCCC999900000000CCCC666600000000CCCC333300000000CCCC0000000000009999FFFF000000009999CCCC0000000099999999000000009999666600000000999933330000000099990000000000006666FFFF000000006666CCCC0000000066669999000000006666666600000000666633330000000066660000000000003333FFFF000000003333CCCC0000000033339999000000003333666600000000333333330000000033330000000000000000FFFF000000000000CCCC0000000000009999000000000000666600000000000033330000EEEE000000000000DDDD000000000000BBBB000000000000AAAA0000000000008888000000000000777700000000000055550000000000004444000000000000222200000000000011110000000000000000EEEE000000000000DDDD000000000000BBBB000000000000AAAA0000000000008888000000000000777700000000000055550000000000004444000000000000222200000000000011110000000000000000EEEE000000000000DDDD000000000000BBBB000000000000AAAA0000000000008888000000000000777700000000000055550000000000004444000000000000222200000000000011110000EEEEEEEEEEEE0000DDDDDDDDDDDD0000BBBBBBBBBBBB0000AAAAAAAAAAAA0000888888888888000077777777777700005555555555550000444444444444000022222222222200001111111111110000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF724E4E24242B5DB9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9FFFF72724E4E242B5DFAFAFAFAF8B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9FFFF9672724E4E4F5DB9B9B9B9FAF8B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9FFFFBA967272724F5DFFB9B9B9FFFAFFFFFFB9FFFFFFB9B9B9B9B9B9FFFFFFB9FFFFBABABA96724F4FFF75FFB9FFFAFFB9B9B9FFB9B9FFB9B9B9B9FFB9B9B9B9FFFFBA9697734F7425FF76FF79FFFAFFFFB9B9FFFFFFB9B9FFFFB9B9FFFFB9B9FFFF5632322A9A764925FFC1FF7BF8FFB9B9B9FFB9B9FFB9B9B9B9B9B9B9FFB9FFFF5757562AC29A7672FFC2FFA6B9FFFFFFB9FFFFFFB9B9B9B9B9FFFFFFB9B9FFFF3232564EC7C3C1C0C0CACBC9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9FFFF2BF6324EC7C7C9C4C7C8CAA5B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF0000000000000000FF000000FF00FFFFFF00FFFFFF000000000000000000FFFF0000000000000000FF00FF00FF00FF000000FF0000FF0000000000000000FFFF0000000000000000FF00FF00FF00FFFF0000FFFFFF000000000000000000FFFF000000000000000000FF00FF0000FF000000FF0000FF0000000000000000FFFF000000000000000000FF00FF0000FFFFFF00FFFFFF000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF0000FFFFFF0000FFFF000000FFFF0000FF0000FF00FFFFFF00FFFFFF0000FFFF00FF00000000FF0000FF00FF0000FF00FF00FF0000FF00000000FF000000FFFF0000FFFF0000FF0000FF00FF00000000FFFF000000FFFF000000FF000000FFFF00000000FF00FF0000FF00FF0000FF00FF00FF0000FF00000000FF000000FFFF00FFFFFF000000FFFF000000FFFF0000FF0000FF00FFFFFF0000FF000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFF000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF002900000012000000020000000D01000000000100000000000A000000080000000000240024002900000012000000020000000D00B2B2B900010000000000100000001000000002002300000000000000000023002900000012000000020000000D00FCFCFD00010000000000100000001000000002002200010001000100010022002900000012000000020000000D00B2B2B900010000000000100000001000000002000000240024002400240000002900000012000000020000000D0080808A00010000000000100000001000000002000100230023002300230001 WebSockets true @@ -34,7 +34,8 @@ Sam Sharp http://www.mediamongrels.com/websockets-library - - Fix issue where the Sec-WebSocket-Key is not correctly generated (not Base64-encoded) + [Fix: 7] Handshake header is now case-insensitive match as per RFC2616 +[Fix: 9] Fix for an infinite loop on Read is no connection (no socket) @@ -213,6 +214,7 @@ false false false + false true @@ -411,7 +413,7 @@ Source\WebSockets\WebSocket - 34F4A39545D97552068FD01C813DED0B + C80197D037E44B143860465A60A97BAF 0 @@ -488,7 +490,7 @@ Source\VISA Socket Listener - 76C166D38719864D0A17B73A5372A802 + 0F1FDEFF996396CC0DBBD46B6377C45B 1 @@ -551,7 +553,7 @@ Source\Sockets\Socket\Close.vi - 29D6E2E68E1A0690328544B8EBCDEB73 + 0622334091E8BA671A59C5A0A4F123AC 1 @@ -642,7 +644,7 @@ Source\Sockets\VISA TCP Socket\New TCP Socket Connection.vi - 5A7457B22B5C49A4E4F896A0DD858F63 + E4376F2FE79904FFE9EBB1E467273ED3 0 @@ -747,7 +749,7 @@ Source\WebSockets\GetHeader.vi - 43DFDF2A78916BAC4819A76DBB53CDFC + CDAE7AB32AC660F88AE72E553BA010A9 0 @@ -866,7 +868,7 @@ Source\WebSockets\WebSocket\Write Send Headers.vi - 62DDA265A1506499311735A2033195D4 + EBF6BEDEB0BEE367A726CAD10280D444 1 @@ -929,7 +931,7 @@ Source\Sockets\Socket Listener\Close.vi - 29B18571E4F42BAC11625CE82E213E55 + 0D791DC7861F56FDEEAF1E46DB6BAED5 1 @@ -1006,7 +1008,7 @@ Source\Sockets\VISA TCP Listener\New VISA TCP Listener.vi - D0A0BD3DE130BE828EAAE7AA915DD410 + 94C8602694DC3C6EE2766380803BB7F4 \ No newline at end of file