aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-03-25Gun 2.0.0-pre.22.0.0-pre.2Loïc Hoguin
2020-03-25Update migration guideLoïc Hoguin
2020-03-25Fix host/:authority header when connecting to an IPv6 addressLoïc Hoguin
2020-03-25Fix crash in gun:info/1 when socket is closedLoïc Hoguin
The call to Transport:sockname/1 can return an error if the socket was closed as we were gathering info. In that case we simply do not fill in the address and port information.
2020-03-23Tweak connection timeouts tests for WindowsLoïc Hoguin
It seems that the retry behavior changed recently. It would be better to retrieve the exact values and calculate how much time we want to wait but that will do for now.
2020-03-23Require OTP-22+Loïc Hoguin
2020-03-23Fix flow control test since it's more strict nowLoïc Hoguin
2020-03-19Fix gun_public_suffix compile problemLoïc Hoguin
There's no need to have idna listed in ALL_DEPS_DIR we only use it for "make gen" which does not require it.
2020-03-15Document the cookie store option and related modulesLoïc Hoguin
Also contains a few small changes and Dialyzer fixes.
2020-03-12Make Gun use the cookie store when configured toLoïc Hoguin
2020-03-06Add additional cookie expiration testsLoïc Hoguin
2020-03-05Implement gun_cookies:gc/1 and :session_gc/1Loïc Hoguin
2020-03-05Add the public suffix check to set_cookieLoïc Hoguin
2020-03-04Initial implementation of the gun_cookies cookie storeLoïc Hoguin
2020-02-27Remove two unnecessary clausesLoïc Hoguin
As reported by Dialyzer.
2020-02-27Use specific error when HTTP/2 receives HTTP/1 responseLoïc Hoguin
2020-02-27Add a test getting preface errors in the 'DOWN' reasonLoïc Hoguin
2020-02-27Detect invalid HTTP/2 preface errorsLoïc Hoguin
And make sure all HTTP/2 connection_error(s) result in a gun_down message containing the error. In the preface case we do not send a gun_error message (because there's no stream open yet) and gun_down was always saying normal. Also make sure the human readable reason is included in the gun_error message, if any.
2020-02-10Handle cow_http2_machine timeoutsLoïc Hoguin
2019-11-04Fix a crash introduced in the previous commitLoïc Hoguin
2019-10-17Use maps for looking up HTTP/2 streamsLoïc Hoguin
This should be much faster than using lists:keyfind and friends. This matters for connections that have a lot of concurrent streams.
2019-10-08Fix retrying on disconnect with retry=1Loïc Hoguin
2019-10-01Cowlib no longer returns lingering_data tuplesLoïc Hoguin
2019-10-01Don't try upgrading 101 responses with no/bad Upgrade headerLoïc Hoguin
Also rework the different handle_head scenarios in separate functions.
2019-09-27Gun 2.0.0-pre.12.0.0-pre.1Loïc Hoguin
2019-09-26Add the migration guide to 2.0Loïc Hoguin
2019-09-26Document the cow_http2_machine optionsLoïc Hoguin
The details are not given for now. The best would be to document them in Cowlib and refer to that documentation instead of duplicating the information in both the Gun and Cowboy manuals.
2019-09-26More README updatesLoïc Hoguin
2019-09-26Update the READMELoïc Hoguin
2019-09-26Don't send duplicate gun_error messages to the same processLoïc Hoguin
2019-09-26Remove UnprocessedStreams from the gun_down messageLoïc Hoguin
2019-09-26Add reply_to option to ws_upgrade; remove notowner entirelyLoïc Hoguin
The reply_to option is also propagated when we switch protocols.
2019-09-26Add a function to change the connection ownerLoïc Hoguin
While at it the gun:info/1 function has been fixed to work even when we are in the not_connected state, and the owner is now also returned.
2019-09-24Add auto-ping to Websocket and a silence_pings optionLoïc Hoguin
The auto-ping will at regular interval send a ping frame. The silence_pings option defaults to true. It can be set to false when the user needs to receive ping/pong frames.
2019-09-24Reject requests/data when using WebsocketLoïc Hoguin
2019-09-24Initial support for raw send/recv operationsLoïc Hoguin
Gun can now be used to send or receive arbitrary data in the following scenarios: * Directly after connecting to a server (this is not terribly useful but it works nevertheless due to the Gun architecture) * After connecting through one or more Socks and/or HTTP proxies. This allows using Gun's proxy capabilities to access servers located beyond firewalls. * After performing an HTTP/1.1 Upgrade. This allows using Gun to implement custom protocols that require upgrading from an HTTP/1.1 connection. As there is still no support for HTTP/2 CONNECT for the time being, there are no relevant streams attached to those use cases and therefore the raw protocol currently expects users to use 'undefined' as the StreamRef value. This is not a final decision and will most likely produce a Dialyzer warning at this time.
2019-09-23Properly error out on HTTP/1.0 Websocket upgrade attemptsLoïc Hoguin
2019-09-23Set server_name_indication for TLS handshakesLoïc Hoguin
This essentially reverts to the old behavior for initial TLS handshakes, and improves TLS support for the Socks/HTTP proxy cases.
2019-09-23Use the proper options type for socks/ws statesLoïc Hoguin
2019-09-23Accept all cow_http2_machine optionsLoïc Hoguin
2019-09-23Reduce the #http_state sizeLoïc Hoguin
The version is still kept in the state even if it's an option because it's useful to have there and it's just a tiny atom.
2019-09-23Remove 'protocol' option from connect_destination()Loïc Hoguin
It was deprecated and replaced by 'protocols' in a previous version.
2019-09-23Document sending N Websocket frames in the guideLoïc Hoguin
2019-09-22Account for Windows' 3-connect pattern in shutdown_SUITELoïc Hoguin
When Windows can't connect it retries 2 more times with 500ms wait in-between by default.
2019-09-22Increase a timeout to avoid an intermittent test failureLoïc Hoguin
I'm not exactly sure why it works but it seems to be solid now. I think the issue is around timeouts in the test and handler being too close to one another.
2019-09-22Remove the old eunit HTTP/2 testLoïc Hoguin
It is better covered by the shutdown_SUITE.
2019-09-22Cancel the existing keepalive when switching protocolsLoïc Hoguin
2019-09-22Document Socks supportLoïc Hoguin
Also correct various Socks related types. This commit also adds a new gun:protocols/0 type as a simpler way of describing preferred protocols. The protocol/opts tuple is also documented. This commit also fixes an issue with the default value for the preferred protocols when using CONNECT over TLS. It was mistakenly not enabling http2 by default.
2019-09-22Add CONNECT->Socks5->HTTP testsLoïc Hoguin
Also fix the multiple TLS proxies tests from the previous commit.
2019-09-22Add more tests with two Socks5 proxiesLoïc Hoguin
We now properly support TCP across two TLS proxies, and TLS across two TCP/TLS proxies.