-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChanges
181 lines (149 loc) · 6.66 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Revision history for Perl module Net::WebSocket
0.24
- BUG FIX: We no longer warn if the peer closes without a close code.
0.23 Mon Jun 21 2021
- BUG FIX: We no longer send an extra ping after excess unanswered pings.
0.22 Wed Jun 24 2020
- Respond to invalid close frames with PROTOCOL_ERROR close.
- Tighten validation for close codes (reject 5000-9999).
- Fix test reliability problem.
0.21 Fri May 24 2019
- Supply missing “MockReader” module for demos.
- Suppress warning when empty “code” and “reason” are both given to
Net::WebSocket::Frame::close constructor.
- Fix typo in BadHTTPStatus exception.
- Require a current IO::Framed version.
- Allow a “headers” argument to handshake header stringifier.
This replaces the previously-suggested (hacky) substr().
- Add a test for close frames.
- POD fixes (thank you, MANWAR!)
- Improve wscat.pl demo script.
- Change tests to use Test::FailWarnings rather than Test::NoWarnings
0.20 Wed Apr 24 2019
- Fix test that fails now that X::Tiny no longer uses Module::Load.
- Switch from Module::Load to Module::Runtime.
- Replace README.pod with README.md.
0.19 Fri Aug 24 2018
- Fix LICENSE file (again)
0.18 Fri Aug 24 2018
- Refactor of Endpoint’s defragmenting logic to potentially be useful
without the HTTP-derived handshake.
- Fix LICENSE file.
0.17 Sat Mar 31 2018
- Remove Text::Control dependency (and large files) from new fragmentation test
0.16 Fri Mar 30 2018
- Fix fragmentation bug: frames of a fragmented message all had the same
meta-parts.
0.15 Fri Mar 16 2018
- Copyright update (no functional changes)
0.14 Fri Jan 26 2018
- Documentation tweaks/cleanup
0.13 Fri Jan 5 2018
- Test fix - no production changes
0.12 Wed Jan 3 2018
- Added create_message() convenience method in Endpoint.pm
- Reduce use of Module::Load, with an eye to potential removal
0.11 Sun Dec 17 2017
- (Really) fix “large” frame size encoding on 32-bit perls, add test.
- Check for warnings in tests.
- Fix warning in 5.10 on length(undef)
0.1 Fri Dec 15 2017
- MINOR BREAKING: All messages are now Net::WebSocket::Message instances;
the ::text and ::binary subclasses are removed. They weren’t useful, and
they complicated support for custom frame/message types.
- Fix frame RSV methods, and add tests.
- Fix Endpoint auto-response to close frames to use the correct masking.
- Use exception objects for remaining server handshake problems.
- Make Sec-WebSocket-Key validation more accurate.
- New, separate exception type for when a data frame arrives after an
unfinished message.
- is_control_frame() method is renamed to is_control().
(The old name is also preserved for legacy compatibility.)
Message objects have the same method, so now frames and messages are
more nearly interchangeable.
- Lots of inert code is now removed.
- Lots of tests added, especially against Endpoint and Handshake.
- Ping messages now count from 1 rather than 0.
- This file is now in chronological-descending order.
0.063 Wed Dec 13 2017
- Fix frame ->to_bytes() logic for large frames on 32-bit perls.
0.062 Wed Dec 13 2017
- Fix Parser.pm bug that corrupted parsed frames’ to_bytes() representation.
- Fix compatibility with reader objects that don’t die() on empty read.
- Fix spurious warnings when creating close frames via code/reason.
- Add SERVICE_RESTART, TRY_AGAIN_LATER, and BAD_GATEWAY statuses.
- Remove more old/inaccurate documentation in Endpoint.pm.
- Clarify (intended) divergence from RFC vis-à-vis 1005 status codes.
- Document do_not_die_on_close().
0.061 Thu Nov 30 2017
- Copyright update
- A few other documentation tweaks
0.06 Thu Nov 30 2017
- Normalize naming conventions for frame classes.
- Have frames receive “payload” instead of “payload_sr”.
0.054 Wed Nov 29 2017
- Use Digest::SHA1 instead of Digest::SHA (SHA1 is lighter)
- Tweak Makefile.PL dependencies
0.053 Thu Nov 9 2017
- Update tests and docs for up-to-date IO::Framed syntax
- Add README.pod
0.052 Sat Nov 4 2017
- Perl 5.12 and 5.10 are now supported.
- Fix exception creation boo-boos, added tests.
0.051 Tue Oct 24 2017
- No code changed; documentation updated.
0.05 Tue Oct 24 2017
- PMCE support, including permessage-deflate
- Major revamp of handshake logic: Net::WebSocket can now handle
the entire handshake.
0.04 Tue Sep 26 2017
- Support extensions in handshake.
- Allow get_next_message() not to throw an exception on a close frame.
- Add received_close_frame() and sent_close_frame() methods.
- Further documentation updates to accommodate 0.03 API changes
- Replace more plain exceptions with objects
0.031 Tue May 9 2017
- Sync documentation with 0.03 API changes
- Document SERVER_ERROR anomaly re RFC erratum
- Straighten out a bit of POD in the main distro docs
0.03 Wed May 3 2017
- BREAKING: Endpoint’s “out” parameter must now be an instance of
IO::Framed::Write (or implement the same behavior).
- BREAKING: Parse’s parameter must now implement IO::Framed::Read.
- BREAKING: Because we now farm the I/O out to IO::Framed
(or whatever replacement class you may prefer), some of the thrown
exceptions are changed:
- Net::WebSocket::X::ReadFilehandle is gone. If you use IO::Framed,
you’ll now receive IO::Framed::X::ReadError
- Net::WebSocket::X::EmptyRead is gone. If you use IO::Framed,
you’ll now receive IO::Framed::X::EmptyRead.
- BREAKING: I’ve removed the before_send_control_frame() handler.
- Net::WebSocket::Parser now instantiates the “target” frame class object,
not the base Net::WebSocket::Frame class. So there’s no more of the
AUTOLOAD shenanigans of before.
- Removed the Bytes::Random::Secure::Tiny dependency. It doesn’t seem we
really need cryptographically strong random numbers for masking or
handshakes.
- Frame I/O logic is now distributed separately as IO::Framed. It’s not
a strict dependency of this library, but you’re probably going to want
it nonetheless, unless you want to reimplement that logic yourself.
- EINTR-trapping logic is now distributed separatedly as IO::SigGuard.
(… which is used in IO::Framed)
- Added documentation for Net::WebSocket::Streamer
- Refactor ping handling behavior into its own module. It could be
reusable potentially?
- Demos now favor IO::Events.
- Shell server demo now included. Hook it up to a nice JavaScript terminal
emulator like xterm.js, and impress all your friends. :)
0.023 Sat Apr 22 2017
- Fix another test dependency.
0.022 Sat Apr 22 2017
- Remove stray Try::Tiny dependency
0.021 Thu Mar 23 2017
- Remove stray Call::Always usage in tests
0.02 Thu Mar 23 2017
- Add this Changes file. :)
- BREAKING: Rename Endpoint “timeout” method to “check_heartbeat”.
- Fix missing Call::Context dependency.
0.01 Wed Mar 22 2017
- Initial release