aboutsummaryrefslogtreecommitdiffstats
path: root/src/gun.erl
AgeCommit message (Collapse)Author
2019-01-09Add function gun:stream_info/2Loïc Hoguin
2019-01-06Lowercase header names automatically and accept more typesLoïc Hoguin
Header names can now be provided as binary, string or atom and Gun no longer requires them to be in lowercase. The list of headers can also be provided as a map as well.
2019-01-05Don't send empty data chunksLoïc Hoguin
This was a bug in the case of HTTP/1.1 and an inconvenience in the case of HTTP/2.
2019-01-05Ensure Gun retries connecting immediatelyLoïc Hoguin
2019-01-03Update copyright yearsLoïc Hoguin
2019-01-03Consolidate origin server test helpersLoïc Hoguin
Also fixes an issue with switch_transport introduced when converting the Gun process to gen_statem.
2018-12-31Disable keepalive by default for HTTP/1.1Loïc Hoguin
This is safer as servers may reject too many extra empty lines.
2018-12-31Separate request/4,5,6 into headers/4,5 and request/5,6Loïc Hoguin
This cleaner separation gets rid of the implicit body check that was causing issues for many users. Now the body is either given explicitly or it is expected via future gun:data/3 calls.
2018-12-19Convert the gun process to gen_statemLoïc Hoguin
2018-10-30Switch to cow_http2_machine for HTTP/2Loïc Hoguin
A common state machine for Gun and Cowboy will be easier to maintain. This fixes numerous issues including some test failures that were hidden because the h2specd_SUITE was flawed. We temporarily depend on Cowlib master until a new version is released.
2018-10-01Document the protocols option for WebsocketMichal Piotrowski
2018-09-26Remove gun:dbg_send_raw/2Loïc Hoguin
The same can now be achieved using gun:info to retrieve the socket. This function was not documented and was only used in the old Cowboy test suite.
2018-09-26Add the socket in the gun:info mapLoïc Hoguin
This is used by Cowboy for tests.
2018-09-26Keep track of the intermediaries the connection go throughLoïc Hoguin
Also augment the CONNECT tests to confirm that the intermediaries are accounted for.
2018-09-20Use ALPN when proxying TLS connections using CONNECTLoïc Hoguin
This fixes HTTP/2 over TLS connections. The protocol destination option has been deprecated in favor of a protocols option.
2018-09-17Add HTTP/1.1 CONNECT supportLoïc Hoguin
Gun can now be used to connect through TCP HTTP/1.1 proxies using all supported protocols. It is also possible to create a tunnel through multiple proxies. Also updates Cowlib to 2.6.0.
2018-08-06Fix some whitespaceLoïc Hoguin
2018-07-27Fix OTP 21 warningsLoïc Hoguin
2018-06-04Update copyright yearsLoïc Hoguin
2018-06-04Remove the dependency on RanchLoïc Hoguin
We instead of two new modules, gun_tcp and gun_tls. They only have 6 functions so far, much less than what Ranch provided before. Also renames ssl to tls where applicable. It's still possible to use the ssl transport option but it's now undocumented.
2018-06-03Change messages to gun_upgrade and gun_ws with stream referenceLoïc Hoguin
2018-06-03Also flush trailersLoïc Hoguin
2018-06-03Fill in the options types instead of using map()Loïc Hoguin
2018-06-03Fix the inet:ip_address() typeLoïc Hoguin
2018-05-15Allow IP tuple for host #152Seudin Kasumovic
2018-01-22Add missing gun_inform clausesAndrei Nesterov
2017-12-16Add support for unix socketsmichael-coles
2017-12-14Change the {gone, Reason} to {shutdown, Reason} plus small fixesLoïc Hoguin
The reason for this change is to avoid annoying supervisor logs when SASL logging is enabled.
2017-11-15Add preliminary support for trailersLoïc Hoguin
The code is definitely not the best, but as long as it doesn't break anything it should be OK for now.
2017-10-29Add support for informational responsesLoïc Hoguin
2017-10-06Don't error out when the owner is gone normallyLoïc Hoguin
2017-08-14Allow an infinity keepalive value1.0.0-pre.4Loïc Hoguin
This disables the keepalive mechanism entirely.
2017-08-12Fix a warning preventing compilationLoïc Hoguin
2017-08-11Add missing Websocket clause detecting owner is goneLoïc Hoguin
2017-05-19Ensure the stacktrace is passed when crashingLoïc Hoguin
2017-05-01Add gun:info/11.0.0-pre.3Loïc Hoguin
So far only for getting the socket ip and port on the local side. More values may be added later on.
2017-05-01Add support for choosing a process to reply toAndrei Nesterov
2017-04-30Monitor owner and terminate when it diesJuan Facorro
2017-04-30Allow infinity for connect_timeoutLoïc Hoguin
2017-04-30Fix retry_timeout value checkLoïc Hoguin
2017-04-30Add connect timeoutsugus-seu
2017-04-30Ignore errors from Transport:setopts/2Yuki Ito
2017-04-30Propagate the last connection failure reasonLoïc Hoguin
Based on a patch by Pablo Polvorin. Thanks!
2017-04-30Fix the retry=0 case, add general gun test suiteLoïc Hoguin
2017-04-27Add content handlers and built-in SSE supportLoïc Hoguin
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.
2017-01-02Implement HTTP/2 server pushLoïc Hoguin
2016-05-27Initial HTTP/2 supportLoïc Hoguin
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.
2015-08-17Fix ssl:negotiated_next_protocol/1 is deprecated.Maxim Krentovskiy
2015-04-10Add headers to gun_ws_upgrade messageLoïc Hoguin
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.
2015-04-10Add Websocket optionsLoïc Hoguin
Allow passing Websocket options through either open or ws_upgrade. Document ws_upgrade/4.