Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Based on a patch by Pablo Polvorin. Thanks!
|
|
|
|
|
|
|
|
This functionality can be used to implement custom protocols
on top of Websocket, but may also be used to decode frame
contents on the fly if necessary.
The default_protocol option defines what module should be
used when no protocol was selected.
The protocols option is a list of key/value pairs used to
select the handler depending on the protocol that the server
accepted.
The feature is currently experimental.
|
|
Content handlers are a chain of modules implementing callbacks
that receive the body of responses and may modify it (for example
for decompressing the content) or act upon it (like sending a
message to the owner process.
The gun_sse content handler module can be used to translate
text/event-stream events on the fly and deliver them to the
owner process as a {gun_sse...} message.
This feature is currently not documented and is only tested
against a public server. It requires an up to date Cowlib.
|
|
|
|
|
|
|
|
|
|
|
|
No response body is expected from now on.
|
|
Clear connections send "http" and TLS connections "https".
|
|
|
|
|
|
|
|
|
|
A number of things are not implemented, but this is enough
to connect to Twitter and get a response sent back.
It also currently doesn't have tests.
|
|
Oops!
|
|
|
|
Thanks @petrohi for the initial patch.
|
|
Oops! Thanks everyone who reported/submitted patches.
|
|
|
|
When we stream content we need to set this header manually
from Gun.
|
|
|
|
Also improves the code and documentation about this message.
It was incorrectly specified that a gun_ws_upgrade message
could be sent on error; instead a gun_response is sent.
|
|
Allow passing Websocket options through either open or ws_upgrade.
Document ws_upgrade/4.
|
|
|
|
|
|
The flush(Pid) function was enhanced to also discard Websocket
messages and the new up/down messages.
|
|
map:to_list -> maps:to_list
Only call maps:to_list once.
|
|
Fixes an issue introduced in the previous commit that broke
automatic reconnection.
Thanks to Adrian Roe/Steve Strong for the report.
|
|
The type option has been removed. The transport and protocols
options can be used in its place.
The transport_opts option can be used to specify transport
options.
The http_opts and spdy_opts options can be used to specify
protocol specific options.
The keepalive option is now a protocol specific option.
Defaults depending on the port number have changed. Now only
port 443 uses ssl by default, other ports use tcp.
|
|
|
|
The content-type and content-length alone indicate whether a
body is present for request/4.
The host header can now be overriden.
A number of headers like transfer-encoding are automatically
deleted from the list of headers we receive. SPDY also deletes
connection, keep-alive and proxy-connection.
SPDY now sends the port in the :host header.
|
|
Websocket options are a map.
|
|
|
|
Should be simpler if the original stream reference is at the same
position in all messages.
|
|
|
|
All autobahntestsuite tests pass including the permessage-deflate
compression tests.
Some of the tests pass in a non-strict fashion. They are testing
for protocol errors and expect events to happen in a particular
order, which is not respected by Gun. Gun fails earlier than is
expected due to concurrent processing of frames.
The implementation when error occurs during handshake is probably
a bit rough at this point. The documentation is also incomplete
and/or wrong at this time, though this is the general state of
the Gun documentation and will be resolved in a separate commit.
|
|
Per extend/gun#22 we need to return body until server closes
connection when server doesn't specify content-length and
transfer-encoding
|
|
A linebreak was sometimes introduced in the middle of the request
body.
|
|
This happens because handle/2 is actually a loop.
|
|
|
|
|