aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-10-02Document cow_ws:frame in Cowboy for nowLoïc Hoguin
2017-10-02Fix cowboy:set_env when the env value is missingLoïc Hoguin
2017-10-02Fix infinite loop on incomplete multipart bodyJeffrey Griffin
I have amended a lot of changes from the original commit to make it behave as expected, including returning a 400 error. LH
2017-10-02Fix the documentation for the command flowLoïc Hoguin
2017-09-27Clarify a multipart exampleLoïc Hoguin
2017-09-27Cowboy 2.0.0-rc.42.0.0-rc.4Loïc Hoguin
2017-09-27Fix error response when constraint validation failsLoïc Hoguin
2017-09-27Add OTP-20.1 to CILoïc Hoguin
2017-09-27Ensure the behavior on stream handler crash is consistentLoïc Hoguin
Also corrects the lack of error response when HTTP/1.1 is used.
2017-09-25Cleanup various commentsLoïc Hoguin
2017-09-25Avoid some crashes when HTTP/2 streams flush their responseLoïc Hoguin
2017-09-25Move body length count to cowboy_stream_h instead of protocolsLoïc Hoguin
The documentation was correct, the code was not. This should make it easier to implement new protocols. Note that for HTTP/2 we will need to add some form of counting later on to check for malformed requests, but we can do simpler and just reduce from the expected length and then check if that's 0 when IsFin=fin.
2017-09-21Centralize stream handler error reporting in cowboy_streamLoïc Hoguin
2017-09-15Cowboy 2.0.0-rc.32.0.0-rc.3Loïc Hoguin
2017-09-15Add OTP 20.0.5 to CILoïc Hoguin
2017-09-15Add two new RFCs, remove one obsoleteLoïc Hoguin
2017-09-14Fix propagating the stacktrace on errors for OTP 19Loïc Hoguin
2017-09-14Rework the proc_lib_hackLoïc Hoguin
It is completely removed for connection processes, because assuming Cowboy is written properly this should bring us nothing anymore in 2.0. It is reworked for request processes, there we want to always propagate the stacktrace (including for exits) because we will print a report to help with debugging and proc_lib doesn't propagate it for exits. At the same time the initial callback for connection and request processes has been changed to connection_process and request_process, which should help with identifying processes when inspecting.
2017-09-14Improve how we detect request errorsLoïc Hoguin
When the request process exits with a {request_error, Reason, Human} exit reason, Cowboy will return a 400 status code instead of 500. Cowboy may also return a more specific status code depending on the error. Currently it may also return 408 or 413. This should prove to be more solid that looking inside the stack trace.
2017-09-05Update naming in REST flowchartsLoïc Hoguin
2017-09-05Add tests for direct Req accessLoïc Hoguin
2017-09-05Remove transfer-encoding parsing from cowboy_reqLoïc Hoguin
The header never reaches this point.
2017-09-05Remove an unused variableLoïc Hoguin
2017-09-04Accept sendfile tuple with 0 length in cowboy_reqLoïc Hoguin
This will result in no data being sent. It's simply easier to do this than to have to handle 0 size cases in user code.
2017-09-04Add a static handler test with an empty fileLoïc Hoguin
2017-09-04Alphabetical order some testsLoïc Hoguin
2017-09-04Fix more documentation todosLoïc Hoguin
I have decided not to include a manual page for cowboy_stream_h at this point because it clashes with the cowboy_stream manual page. This decision will be revisited in the future.
2017-08-29Add OTP 20.0.4 to CILoïc Hoguin
2017-08-23Cowboy 2.0.0-rc.22.0.0-rc.2Loïc Hoguin
2017-08-21Tentative fix for out of order queued dataLoïc Hoguin
2017-08-21Properly clean up timers when terminatingLoïc Hoguin
2017-08-14Add tests for the streams shutdown mechanismLoïc Hoguin
2017-08-09Remove broken links from examples READMELoïc Hoguin
2017-08-08Add missing cowboy_children moduleLoïc Hoguin
My bad! Still new at this.
2017-08-08Add OTP-20.0.2 to CILoïc Hoguin
2017-08-08Implement the shutdown timeout for request processesLoïc Hoguin
This should work very similar to normal supervisors, in particular during the shutdown sequence when the connection process goes down or switches to Websocket. Processes that need to enforce the shutdown timeout will be required to trap exits, just like in a supervisor. In a vanilla Cowboy, this only matters at connection shutdown, as Cowboy will otherwise wait for the request process to be down before stopping the stream. Tests are currently missing.
2017-07-26Fix HTTP/2 server pushLoïc Hoguin
Cowboy was encoding the headers then decoding them when initializing the request. The problem is that the encoding and decoding contexts are not the same. Now, Cowboy will directly use the headers it received in the push command for the new request. This is also more efficient. I am surprised it worked at all considering the issue.
2017-07-24Update version to 2.0.0-rc.12.0.0-rc.1Loïc Hoguin
2017-07-24Small tweak to the guideLoïc Hoguin
2017-07-23Write an initial draft of the streams chapterLoïc Hoguin
2017-07-23Remove yet another outdated todoLoïc Hoguin
2017-07-23Update the constraints chapterLoïc Hoguin
2017-07-23Update the flowchart chapterLoïc Hoguin
2017-07-20Add a related RFC for WebsocketLoïc Hoguin
This is important because it clarifies that sec-websocket-protocol is case sensitive when matching. Only the registry is case insensitive.
2017-07-20Remove cowboy_sub_protocol from the documentationLoïc Hoguin
This will be reintroduced in a future release once the interface stabilizes. For the time being it will be an internal module only.
2017-07-19Remove the old architecture chapterLoïc Hoguin
2017-07-19Remove the guide chapter about broken clientsLoïc Hoguin
None of these workarounds currently exist in Cowboy 2.0. We can resurrect the chapter later if it's still necessary, once we've added the workarounds back in some other form.
2017-07-19Fix the name of an option in the migration guideLoïc Hoguin
2017-07-19Remove hooks from the user guideLoïc Hoguin
They're gone!
2017-07-19Remove the broken examplesLoïc Hoguin
Hooks are gone, and we won't be able to stream body in REST in Cowboy 2.0-rc.1, and might not in 2.0 either. That is, other than via halting the processing.