Branch: Tag:

2019-06-24

2019-06-24 21:48:45 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Reuse existing buffer, reduce systemcall count, lower latencies.

2019-06-14

2019-06-14 11:44:54 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Reduce systemcall count and speed up response.

2019-05-04

2019-05-04 09:12:19 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/master' into new_utf8

2019-04-23

2019-04-23 10:47:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols: Protect lfuns.

2019-03-19

2019-03-19 12:33:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '722771973bd' into patches/lyslyskom22891031

* commit '722771973bd': (6177 commits)
Verify that callablep responses are aligned with reality.
...

2019-03-14

2019-03-14 10:39:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap

* commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits)
Removed the old typechecker.
...

2018-11-04

2018-11-04 16:11:11 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/master' into new_utf8

2018-11-03

2018-11-03 14:21:37 by Marcus Comstedt <marcus@mc.pp.se>

Merge remote-tracking branch 'origin/8.1' into gobject-introspection

2018-10-15

2018-10-15 13:43:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Potential fix for [PIKE-135].

Fixes error: Indexing the NULL value with "set_nonblocking".

2018-10-04

2018-10-04 09:40:40 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket.Connection: Use send_raw() in connect().

Avoid messing directly with the send buffer from connect().

2018-10-04 09:37:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket.Connection: Use send_raw() in connect().

Avoid messing directly with the send buffer from connect().

2018-10-02

2018-10-02 10:30:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Improved HTTP header camel-case consistency.

2018-10-02 10:29:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Improved HTTP header camel-case consistency.

2018-10-01

2018-10-01 15:56:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket.Request: Make low_websocket_accept() visible.

This function is useful for applications that don't use
Protocols.HTTP.Server.

2018-09-25

2018-09-25 14:24:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Improved compliance with RFC 6455 4.1.

Backport from Pike 8.1:

Client:

* Generate an actually random nonce for the Sec-WebSocket-Key
header.

* Validate that the Sec-WebSocket-Accept header received from
the server matches the Sec-WebSocket-Key that was sent.

Server:

* Validate that the request method is "GET".

* Validate that the Sec-WebSocket-Key header is syntactically
correct.

Both:

* Validate use of the Connection and Upgrade headers.

* Validate the Sec-WebSocket-Version header.

2018-09-25 14:22:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Added low_{connect,websocket_accept}().

Backport from Pike 8.1:

This breaks out the generation of WebSocket HTTP headers to
separate functions, which makes the modules easier to instrument
for testing.

Also adds the symbolic constant websocket_version.

2018-09-25 11:01:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Improved compliance with RFC 6455 4.1.

Client:

* Generate an actually random nonce for the Sec-WebSocket-Key
header.

* Validate that the Sec-WebSocket-Accept header received from
the server matches the Sec-WebSocket-Key that was sent.

Server:

* Validate that the request method is "GET".

* Validate that the Sec-WebSocket-Key header is syntactically
correct.

Both:

* Validate use of the Connection and Upgrade headers.

* Validate the Sec-WebSocket-Version header.

2018-09-24

2018-09-24 14:15:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Protocols.WebSocket: Added low_{connect,websocket_accept}().

This breaks out the generation of WebSocket HTTP headers to
separate functions, which makes the modules easier to instrument
for testing.

Also adds the symbolic constant websocket_version.

2018-09-10

2018-09-10 16:37:19 by Marcus Agehall <agehall@gmail.com>

Guard against null dereference and ensure proper write callback triggering.

2017-08-22

2017-08-22 18:24:32 by Marcus Agehall <agehall@gmail.com>

The id variable will be overridden by the local variable, so the id
passed to onopen() will be the Stdio.File object which seems wrong.

2017-04-05

2017-04-05 12:12:27 by Chris Angelico <rosuav@gmail.com>

Add a little docs to Protocols.WebSocket

2017-04-05 03:45:26 by Chris Angelico <rosuav@gmail.com>

Add minimal autodoc as the create() signature changed in the inherit

2016-11-08

2016-11-08 10:48:15 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: parse variables early enough

The previous commit (3fd041a5500a) parsed the variables after the
websocket request callback had been called. This commit calls the
websocket request callback after parsing the query string.

2016-11-07

2016-11-07 16:56:35 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: parse variables early enough

The previous commit (3fd041a5500a) parsed the variables after the
websocket request callback had been called. This commit calls the
websocket request callback after parsing the query string.

2016-11-05

2016-11-05 17:23:36 by Tobias S. Josefowitz <tobij@tobij.de>

More dynamic dot warning fixes.

2016-11-05 17:11:40 by Martin Nilsson <nilsson@fastmail.com>

Dynamic dot warning fixes.

2016-11-05 13:24:15 by Arne Goedeke <el@laramies.com>

Revert "WebSocket: Call either http_cb or ws_cb, not both, at the proper moment."

This reverts commit 0f28b347285bc0d2a21d9c93cf312e670b220481.

2016-11-05 11:07:17 by Arne Goedeke <el@laramies.com>

Revert "WebSocket: Call either http_cb or ws_cb, not both, at the proper moment."

This reverts commit 7ce9c4aeb1723031b438d029aea55f8be336f9d6.

2016-11-05 11:04:38 by Arne Goedeke <el@laramies.com>

WebSocket: finish the extension support revert

Some changes had not been reverted

2016-10-21

2016-10-21 13:15:13 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Revert out deflate code, leave options, upward compatible with 8.1.

2016-10-19

2016-10-19 16:47:32 by Arne Goedeke <el@laramies.com>

Added _Roxen.websocket_mask

The masking and unmasking of websocket frames is quite expensive when
done with `^. This commit adds a C implementation.

2016-10-19 12:10:20 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: added extension support to client connections

This commit adds the new extension support to client connections.
The permessage-deflate extension does not yet offer any of its
parameters.

2016-10-19 12:10:20 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: check validity of close frame

2016-10-19 12:10:20 by Arne Goedeke <el@laramies.com>

Protocol.WebSocket: mask empty frames

This is mandated by the standard and some endpoints do not like to
receive unmasked frames, even if they contain no data.

2016-10-18

2016-10-18 09:25:51 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: refactored WebSocket extension support

Added a new API which allows implementing Extensions as
Protocols.WebSocket.Extension subclasses. This is used both
for real WebSocket extensions, as well as defragmentation and
conformance checks. Updated the documentation accordingly.

2016-09-29

2016-09-29 01:23:24 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket/EngineIO/SocketIO: Simplify specifying options per packet.

2016-09-29 01:11:04 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket/EngineIO/SocketIO: Simplify specifying options per packet.

2016-09-27

2016-09-27 23:31:09 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Fix missing options checks.

2016-09-27 23:30:28 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Fix missing options checks.

2016-09-26

2016-09-26 14:47:47 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Clear the RSV1 bit after decompression.

2016-09-26 14:44:51 by Stephen R. van den Berg <srb@cuci.nl>

Protocols: Tune default compressionparameters for speed.

2016-09-26 14:43:58 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Clear the RSV1 bit after decompression.

2016-09-26 14:43:27 by Stephen R. van den Berg <srb@cuci.nl>

Protocols: Tune default compressionparameters for speed.

2016-09-26 12:03:24 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Support for permessage-deflate compression.

2016-09-26 10:50:34 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Support for permessage-deflate compression.

2016-09-20

2016-09-20 08:55:08 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: some client fixes

* do not send host header twice
* mask all frames
* connect to the correct port
* pass full query string in HTTP request

2016-09-20 08:55:08 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: close connection manually

Calling destruct is more reliable than waiting for the file to go out
of references.

2016-09-20 08:55:07 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: added defragment()

defragment() can be used to automatically recombine fragmented frames.

2016-09-20 08:54:22 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: handle more protocol errors

The following protocol errors are now handled:

* invalid close status codes
* invalid utf8 in TEXT frames
* long control frames
* fragmented control frames
* check that the reserved bits are zero

Some of these checks are only active if WEBSOCKET_DEBUG is turned on,
especially those which might break future use of WebSocket extensions.

2016-09-20 08:34:43 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: added API for continuation frames

2016-09-20 07:57:51 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Call either http_cb or ws_cb, not both, at the proper moment.

2016-09-20 07:50:12 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Call either http_cb or ws_cb, not both, at the proper moment.

2016-09-15

2016-09-15 21:07:45 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Parse query variables.

2016-09-15 21:06:17 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket: Parse query variables.

2016-09-02

2016-09-02 10:18:42 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: fixed handling of truncated frames

When small frames were not fully in the receive buffer, the frame
parsing could get confused.

2016-05-29

2016-05-29 14:10:32 by Pontus Östlund <ponost@roxen.com>

Just some Pike doc fixes.

2016-05-21

2016-05-21 10:37:55 by Marcus Agehall <agehall@gmail.com>

Let's use variants for the callbacks to avoid having different names for them.

2016-05-21 10:28:31 by Marcus Agehall <agehall@gmail.com>

More verbose %O formatting.

2016-05-21 10:28:03 by Marcus Agehall <agehall@gmail.com>

Run SSLPort connections without buffer mode.

2016-05-21 09:49:57 by Marcus Agehall <agehall@gmail.com>

Better typing in functionn signatures.

Patch from frigolit@frigolit.net

2016-05-21 08:37:38 by Marcus Agehall <agehall@gmail.com>

Added client mode to Websockets.

2016-05-21 08:37:38 by Marcus Agehall <agehall@gmail.com>

Don't use arrays in funny ways - just output the headers.

2016-05-21 08:37:37 by Marcus Agehall <agehall@gmail.com>

Removed unused class.

2016-05-21 08:37:37 by Marcus Agehall <agehall@gmail.com>

Make full use of buffers when parsing incoming frames.

2016-05-19

2016-05-19 15:37:32 by Marcus Agehall <agehall@gmail.com>

Added client mode for WebSocket module.

2016-03-14

2016-03-14 16:15:06 by Martin Nilsson <nilsson@fastmail.com>

Use random_string instead of Crypto.Random.random_string

2016-01-07

2016-01-07 19:38:05 by Arne Goedeke <el@laramies.com>

Protocols.Websocket.Request: call ::parse_request

Call ::parse_request() for WebSocket requests, too. parse_request parses
not_query and other information, which is useful to have in WebSocket
requests, aswell.

2016-01-07 18:13:38 by Arne Goedeke <el@laramies.com>

Protocols.Websocket.Request: call ::parse_request

Call ::parse_request() for WebSocket requests, too. parse_request parses
not_query and other information, which is useful to have in WebSocket
requests, aswell.

2015-08-21

2015-08-21 23:56:32 by Martin Nilsson <nilsson@fastmail.com>

Use @rfc{@} autodoc syntax.

2015-03-22

2015-03-22 10:38:41 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: Use Stdio.File buffer mode

2014-10-01

2014-10-01 14:34:26 by Martin Nilsson <nilsson@opera.com>

Stdio.IOBuffer -> Stdio.Buffer (part 1)

2014-09-30

2014-09-30 16:20:55 by Martin Nilsson <nilsson@opera.com>

this_program:: -> this::

2014-09-23

2014-09-23 16:13:03 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: use Stdio.IOBuffer

2014-09-04

2014-09-04 15:57:43 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

Conflicts:
src/stralloc.c

2014-08-26

2014-08-26 09:01:13 by Stephen R. van den Berg <srb@cuci.nl>

WebSocket forgot to pass on the id to Stdio.

2014-08-16

2014-08-16 21:26:00 by Martin Nilsson <nilsson@opera.com>

Make illegal casts throw exception.

2014-08-15

2014-08-15 13:38:45 by Martin Nilsson <nilsson@opera.com>

How did that get away?

2014-08-15 12:10:04 by Martin Nilsson <nilsson@opera.com>

Better typing.

2014-08-15 10:05:54 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: make the stream and parser available

2014-03-02

2014-03-02 00:27:55 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: respond with correct http header

works with Apple now

2014-03-01

2014-03-01 20:52:48 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: make websocket handling optional

2014-01-05

2014-01-05 15:14:13 by Marcus Comstedt <marcus@mc.pp.se>

Merge branch '8.0' into gobject-introspection

2013-09-09

2013-09-09 22:01:18 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: API change

WebSocket connections are now represented by a seperate class. This
will make integration (e.g. with Roxen) much easier. Additionally, the
WebSocket protocol is essentially symmetric, so the same class could be used
for clients. Sorry about the js-like events.

2013-09-09 09:06:33 by Arne Goedeke <el@laramies.com>

Protocols.WebSocket: actually use argument

2013-09-08

2013-09-08 23:10:20 by Martin Nilsson <nilsson@opera.com>

Protected some more stuff and added #pike header.

2013-09-08 13:01:31 by Arne Goedeke <el@laramies.com>

added Protocols.WebSocket