Commit Graph

322 Commits

Author SHA1 Message Date
James Coglan 569ec1d62e Perform more stringent checks on request headers so that it should not be possible to get a driver for requests with invalid headers. 2017-10-30 22:53:34 +00:00
James Coglan 8128bec1e0 Bump version to 0.7.0. 0.7.0 2017-09-11 21:48:56 +01:00
James Coglan 7be31c44e6 Use package.json rather than .npmignore to list files in the package. 2017-09-11 21:44:53 +01:00
James Coglan 09476b8ed8 Add an example of using the client driver with the net module. 2017-08-15 19:19:35 +01:00
James Coglan d3396ace77 Extract the license into its own file. 2017-08-15 18:45:36 +01:00
James Coglan 1967d6bbb8 Rename tcp_server.js to net_server.js. 2017-08-08 23:39:08 +01:00
James Coglan 1325828a9e Add ping/pong events to the API. 2017-08-02 21:57:47 +01:00
James Coglan b82b7fa39a Drop testing for io.js releases, which barely anybody is still using. 2017-08-01 23:48:19 +01:00
James Coglan c5c97bb30b Formatting tweaks to package.json. 2017-08-01 00:49:41 +01:00
James Coglan 9a16e7aa27 Drop Node 0.6 support; it's no longer possible to make it work on Travis because installing a working version of npm is impossible since it depends on osenv, which doesn't work on 0.6. 2017-07-30 20:02:37 +01:00
James Coglan ed1ce79915 Install a ^-compatible npm on Node 0.8. 2017-07-30 19:50:30 +01:00
James Coglan a1f70fb7f7 Test on Node 7 and 8. 2017-07-30 19:36:07 +01:00
James Coglan 751c77aa1d Replace the built-in Node HTTP parser with the http-parser-js package. 2017-07-30 19:34:41 +01:00
James Coglan b76f4e27d0 Correct the HTTP parser magic numbers. The numbers we had were correct for Node 0.12 but not for releases since then. 2017-07-30 19:26:45 +01:00
James Coglan c4494ff88a Bump version to 0.6.5. 0.6.5 2016-05-20 08:41:04 +01:00
James Coglan cfb2a86838 Test on Node 6.0. 2016-04-30 13:08:02 +01:00
James Coglan 6a92cacf62 Apply masking to messages once the payload has been placed in the frame buffer rather than mutating the original message. 2016-04-27 22:28:58 +01:00
James Coglan 2be829546b Bump version to 0.6.4. 0.6.4 2016-01-07 08:58:29 +00:00
James Coglan 7f3bb13b5c In draft-75/76, convert all non-string values to strings before sending. 2016-01-06 23:20:47 +00:00
James Coglan ffa0aa3a8f Convert numbers to strings when sending frames.
In draft-75/76, passing a number to text() or frame() results in the
sender allocating a buffer of that size and sending it to the other
peer, leaking random blocks of memory.

In hybi, a call to text(), binary() or ping() with a number will fail,
because the input is expected to be a buffer and so an internal method
call fails.

Both kinds of driver now convert numbers to strings, which is what
browsers do with calls to send().
2016-01-06 23:12:44 +00:00
James Coglan 7c64c35c74 Create CODE_OF_CONDUCT.md. 2015-11-08 12:16:08 +00:00
James Coglan 10481b81db Bump version to 0.6.3. 0.6.3 2015-11-06 22:16:36 +00:00
James Coglan 5b3c8131c4 Test on Node 5. 2015-11-05 21:22:37 +00:00
James Coglan b0b0d69ce4 Throw a more helpful error if a client driver is created with an invalid URL. 2015-10-17 21:44:36 +01:00
James Coglan 3461e0187b Run tests on major versions of iojs and node 4. 2015-10-17 12:58:10 +01:00
James Coglan 5b59d0fcd8 Use the modulo operator rather than Math.floor() to check whether the draft-76 keys are legit. 2015-10-02 21:35:22 +01:00
James Coglan 68990a260b Close the connection if a draft-76 client sends a Sec-WebSocket-Key header where the numeric value is a non-integer multiple of the number of spaces. 2015-10-01 23:47:15 +01:00
James Coglan fa8b82d424 Bump version to 0.6.2. 0.6.2 2015-07-18 17:40:03 +01:00
James Coglan 89e2a7da82 Emit a protocol error when a closing frame has a 1-byte payload. 2015-07-17 22:05:26 +01:00
James Coglan 70ef5440c4 Emit close code 1000 if the closing frame does not contain one. 2015-07-15 18:04:02 +01:00
James Coglan c84cce9a1f Bump version to 0.6.1. 0.6.1 2015-07-13 20:13:20 +01:00
James Coglan c8e5f1eb78 A few stylistic tweaks. 2015-07-11 23:26:49 +01:00
James Coglan eb5e39e7e3 Standardise the words used to refer to chunks of parser input. 2015-07-10 22:37:54 +01:00
James Coglan a95f68080e Use the buffer.{read,write}UInt{16,32}BE functions to parse and write numbers rather than implementing such things ourselves. 2015-07-10 20:01:44 +01:00
James Coglan 7a1cb15b8c Bump version to 0.6.0. 0.6.0 2015-07-08 20:17:01 +01:00
James Coglan 14937dd365 Emit an error event *after* setting the ready state to 3. 2015-07-08 20:14:14 +01:00
James Coglan 780dd331fe The 'connect' event should emit a ConnectEvent object. 2015-07-07 21:33:15 +01:00
James Coglan 4a3d51cc5b Incorporate StreamReader into Draft75 so that it retains input and recovers safely from exceptions in event listeners. 2015-07-07 21:30:06 +01:00
James Coglan ed17186354 In the Hybi driver, perform parser state changes before validating and emitting events. This protects the parser against errors thrown by event listeners. 2015-07-07 20:36:30 +01:00
James Coglan 1df1293456 Change stage in the Base.shutdown() method to that all parsers stop processing input. 2015-07-04 21:07:34 +01:00
James Coglan d901d3e48d If an event listener emits an error, close the connection with code 1011. 2015-07-04 20:54:22 +01:00
James Coglan a49cd60cb7 Document that on() *adds* a callback, rather than *setting* one, i.e. it does not remove any prior callbacks. 2015-07-04 19:31:36 +01:00
James Coglan 4dd872f0ef Add the pong() command to the documentation. 2015-07-04 18:50:55 +01:00
Victor Gama 90b8c9d23a Add tests to others socket states 2015-07-04 18:34:00 +01:00
Victor Gama c3ac50931e Implement unit tests for pong method 2015-07-04 18:33:59 +01:00
Victor Gama 5f6873ebc0 Ensure message is always defined 2015-07-04 18:33:59 +01:00
Victor Gama 309b5651a7 Implement 'pong' command to hybi.js 2015-07-04 18:33:59 +01:00
James Coglan 1cc0f33e1c Update the changelog for 0.5.4. 0.5.4 2015-03-29 23:13:10 +01:00
James Coglan b273147f0c Replace 'iff' with 'if and only if'. 2015-03-28 19:44:10 +00:00
James Coglan d1796bef12 Use require('..') to import this module in examples. 2015-03-28 09:47:59 +00:00