236 Commits
Author SHA1 Message Date
James Coglan 22d483a5ee Update the 0.4.0 release date. 0.4.0 2014-11-08 19:43:57 +00:00
James Coglan 7325241d11 Move the header setting for Sec-WebSocket-Protocol. 2014-11-08 17:46:03 +00:00
James Coglan eb2d329a16 Clean up some formatting typos. 2014-11-08 17:20:51 +00:00
James Coglan 7e34e7fd40 Correct the name of the test about proxy 'connect' events. 2014-11-08 16:43:36 +00:00
James Coglan 623a93c0b7 Duplicate headers should be allowed if ALLOWED_DUPLICATES *includes* the name. 2014-11-08 16:39:40 +00:00
James Coglan 208be33754 Refactor the way headers are generated in all the drivers. 2014-11-08 16:12:14 +00:00
James Coglan 0bb47c17b4 Remove TLS concerns from the proxy implementation.
This results in a more simple design, in the sense of fewer concerns
being mixed together. It makes the API more verbose, but it's not
difficult to use correctly.

It also means that we make the I/O implementation deal with TLS, so it
can use tls.connect({socket: io}) or the upcoming TLSSocket class,
rather than this module needing a huge amount of boilerplate and
internal indirection to use tls.createSecurePair() and make Proxy wrap
pair.encrypted.

Using tls.connect({socket: io}) would be awkward on this end, because it
expects a stream that emits *incoming* data from the TCP connection. All
the streams in this module emit *outgoing* data that should be written
to TCP, so their polarity is flipped compared to what tls.connect()
wants, and resolving that involves even more stream boilerplate.
2014-11-08 15:20:08 +00:00
James Coglan d6da566641 Only call tls.checkServerIdentity() if it is available (i.e. before Node 0.8.). 2014-11-07 19:17:12 +00:00
James Coglan cde48d625c Move http_parser.js up into the lib/websocket directory. 2014-11-07 19:16:35 +00:00
James Coglan 6eb04d5acc Remove a redundant assignment. 2014-11-06 23:20:32 +00:00
James Coglan 4348bec390 Some cleanup to remove bits I left lying around while refactoring proxy support. 2014-11-06 23:04:11 +00:00
James Coglan 550b3d906d Unify the proxy handshake, TLS handshake, and WebSocket protocol into a single stream when using driver.proxy() to simplify the API. 2014-11-05 23:30:15 +00:00
James Coglan 473fcaafdb Merge pull request #9 from meteor/close-proxy
proxy should emit 'close' when it's done
2014-10-30 00:28:44 +00:00
David Glasser b88b8d6856 proxy should emit 'close' when it's done
This will cause any stream piped into it to stop piping into it. (It's
the only way to unpipe a Node 0.8 Streams1-style pipe.)

This change allows you to remove the empty "stream.on('data')" in
faye-websocket.
2014-10-29 16:47:56 -07:00
James Coglan b905c94f89 Make a TCP connection to the proxy in the proxy example. 2014-10-29 23:07:03 +00:00
James Coglan 7b47563cd1 Mark code up as JavaScript. 2014-10-29 22:38:29 +00:00
James Coglan 07031911e3 s/wail/will/ 2014-10-29 22:31:33 +00:00
James Coglan d2156ac10d Clarify that the 'tls' option is for use with wss: connections. 2014-10-29 22:19:40 +00:00
James Coglan d0033b8208 Change TLS values in the proxy docs. 2014-10-29 22:17:03 +00:00
James Coglan 76f4128634 Redesign the proxy API so that we can more cleanly deal with TLS, either to the proxy server or origin server or both, while still allowing control of the TLS options and custom headers, and not leaking so much of the implementation. 2014-10-29 22:07:01 +00:00
James Coglan 32e6715b6e [wip] Emit a proxy-connect event so the client can perform a TLS handshake at the right time. 2014-10-29 19:27:30 +00:00
James Coglan 042e33aebf Bump version to 0.4.0. 2014-10-27 09:35:13 +00:00
James Coglan bdc9bfe7e8 Add support for connecting via HTTP proxies. 2014-10-27 09:30:11 +00:00
James Coglan 1c33c0ce56 Bump version to 0.3.6. 0.3.6 2014-10-04 08:30:43 +01:00
James Coglan f693b02743 Merge pull request #8 from meteor/close-before-start
driver.close() before driver.start() should close
2014-09-07 21:29:25 +01:00
James Coglan 91f19cb69b Use the SVG build status icon from Travis. 2014-09-07 21:06:45 +01:00
David Glasser dcd7c278b6 driver.close() before driver.start() should close 2014-08-15 10:48:30 -07:00
James Coglan dbedb370b7 Bump version to 0.3.5. 0.3.5 2014-07-06 10:18:19 +01:00
James Coglan 28858d9fb3 Delegate the protocol and version methods correctly in the TCP driver. 2014-07-04 17:49:11 +01:00
James Coglan ae52cf995e Stop the Hybi parser hanging onto data it doesn't need after emitFrame(). 2014-06-16 20:30:44 +01:00
James Coglan dfe7b2b000 Trailing blank lines are bad. 2014-05-17 00:35:31 +01:00
James Coglan d40de878b2 Bump version to 0.3.4. 0.3.4 2014-05-08 02:19:58 +01:00
James Coglan ed3907d5fd Clean up the state management code in StreamReader. 2014-05-07 20:49:49 +01:00
James Coglan 84b6f50f1a Merge pull request #6 from meteor/forget-finished-buffers
StreamReader: Don't hang on to fully read buffers
2014-05-07 20:41:15 +01:00
David Glasser 8d19ee823e StreamReader: Don't hang on to fully read buffers 2014-05-06 11:52:59 -07:00
James Coglan 3bee0366c5 Bump version to 0.3.3. 0.3.3 2014-04-24 23:31:43 +01:00
James Coglan 9f2782da14 Correct the draft-76 status line reason phrase. 2014-04-17 02:23:58 +01:00
James Coglan c752c76712 Bump version to 0.3.2. 0.3.2 2013-12-29 12:21:49 +00:00
James Coglan ad8f08f19e Make Node 0.6 work on Travis. 2013-12-28 17:40:18 +00:00
James Coglan d343c7d21b Document the new lower frame size limit. 2013-12-28 16:56:15 +00:00
James Coglan 0b089ad921 Merge pull request #5 from Zarel/patch-1
Lower default max buffer length
2013-12-27 10:17:09 -08:00
James Coglan e65e837968 Stop parsing Hybi when we go into a failure state. 2013-12-27 18:16:41 +00:00
Guangcong Luo cda22e3bef Lower default max buffer length
Real-world testing shows that the previous max buffer length
of ~1GB was too high, and messages of the size of roughly 300MB
could still cause the process to crash from running out of
memory. 64MB seems like a reasonably conservative maximum.
2013-12-24 19:26:38 -06:00
James Coglan 1ae37d6efe Remove an unused instance variable _lengthBuffer. 2013-12-20 10:20:41 +00:00
James Coglan 82c42a6ce5 Extend max-length checking to draft-{75,76}. 2013-12-20 10:09:31 +00:00
James Coglan aad1519f3f Extend max-length checking to short (<= 125 bytes) frames and to sequences of continuation frames. 2013-12-20 09:50:18 +00:00
James Coglan 11a9b75185 Bump version to 0.3.1. 0.3.1 2013-12-03 00:46:42 +00:00
James Coglan d93c853414 Don't pre-allocate a huge Buffer before we know there's enough chunks in the read queue to complete a message. 2013-12-02 21:07:33 +00:00
James Coglan 2dff35d3e4 Map Node v0.11's magic numbers for HTTP methods. 2013-12-02 13:02:38 +00:00
James Coglan 6588928445 Make HttpParser work on v0.11.6+. 2013-11-29 00:42:49 +00:00