1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
Commit graph

29 commits

Author SHA1 Message Date
Evan Phoenix
c8f0339f72 Pickup any remaining chunk data as the next request 2016-07-25 09:25:24 -07:00
Evan Phoenix
5ec232d1d4 Implement chunked request handling. Fixes #620 2016-07-24 22:02:23 -07:00
Evan Phoenix
7a337e70ac Fix require when using Delegation in Client 2016-02-25 13:32:42 -08:00
Evan Phoenix
42f50c257e Expose closed? for use by the reactor. Fixes #835 2016-02-25 13:17:47 -08:00
Evan Phoenix
246e71840e Split on spaces or commas properly 2016-01-11 09:14:56 -08:00
Evan Phoenix
3c8763669b Split on comma and space 2016-01-06 10:39:31 -08:00
Evan Phoenix
5ce24bf7c2 When using a header for the remote address, use the first word only 2016-01-06 10:33:50 -08:00
Evan Phoenix
d5914573c9 Add 'set_remote_address' config option 2016-01-06 10:12:09 -08:00
Evan Phoenix
310b8eba20 Be sure to unlink tempfiles after a request. Fixes #690 2015-04-21 09:48:13 -06:00
Emanuel Rietveld
b784cb7f18 Add a configuration option that prevents puma from queueing requests.
With queue_requests set to true (the default), workers accept all
requests and queue them before passing them to the handlers.
With it set to false, each worker process accepts exactly as
many requests as it is configured to simultaneously handle.

In combination with threads 1, 1 this ensures that requests
are balanced across workers in a single threaded application.
This can avoid deadlocks when a single threaded app sends a
request to itself. (For example, to generate a PDF.)
2015-01-20 13:20:42 +01:00
Philip Wiebe
32300e81b4 only send 408 if in the data phase. 2014-01-30 17:37:38 -05:00
Philip Wiebe
ace195c9d4 added 408 status on timeout. 2014-01-30 13:23:01 -05:00
Evan Phoenix
4ea35190ec Add experimental tcp mode (aka lopez express mode) 2013-08-07 16:39:08 -07:00
Evan Phoenix
dcf96b79a6 Handle all read exceptions properly. Fixes #252 2013-06-01 14:20:45 -07:00
Evan Phoenix
daa76a1e90 Add support for the rack hijack protocol 2013-02-05 22:39:16 -08:00
Evan Phoenix
faf7f9916c Merge branch 'minissl' into just-dash-w
Conflicts:
	ext/puma_http11/puma_http11.c
	lib/puma/cli.rb
	lib/puma/server.rb
2012-09-10 08:41:43 -07:00
Evan Phoenix
e9a0b5e615 If trying to stop running, don't do the fast check 2012-09-09 19:51:36 -07:00
Evan Phoenix
111cc1da74 Merge branch 'master' into just-dash-w
Conflicts:
	lib/puma/cli.rb
2012-09-08 23:05:36 -07:00
Evan Phoenix
bd5d824ce5 Write 400 on HTTP parse error. Fixes #142 2012-09-05 22:09:42 -07:00
Evan Phoenix
f38678f2d7 Handle SSL eof and nonblocking 2012-08-22 22:34:10 -07:00
Evan Phoenix
e8d7979c36 Merge branch 'master' into just-dash-w
Conflicts:
	lib/puma/cli.rb
	lib/puma/server.rb
2012-08-10 22:47:17 -07:00
Evan Phoenix
652cf29391 Cleanup the JRuby specific fix 2012-08-10 19:36:01 -07:00
Evan Phoenix
b9388a6074 Optimize for another immediate request on a KA connection 2012-08-10 17:02:30 -07:00
Evan Phoenix
70bbef66cf Work around JRuby buffering the request inside #accept 2012-08-09 16:54:55 -07:00
Evan Phoenix
bfcd20054e Ignore sockets that are already closed 2012-07-24 17:24:44 -07:00
Evan Phoenix
a3aefc1c51 Don't accidentally replay requests over and over
Client#reset uses the presence of @buffer to detect if there is a
partial next request available. Thusly we have to be sure to nil it out
after we use @buffer otherwise we'll accidentally replay the request
over and over again.
2012-07-24 10:59:09 -07:00
Evan Phoenix
44c8c1ab50 Some minor cleanup 2012-07-23 17:00:53 -07:00
Evan Phoenix
5f2b673ec9 Speed up good, eager clients 2012-07-23 14:29:33 -07:00
Evan Phoenix
6777c771d8 Add separate IO reactor to defeat slow clients
Previously, the app thread would be in charge of reading the request
directly from the client. This resulted in a set of slow clients being
able to completely starve the app thread pool and prevent any further
connections from being handled.

This new organization uses a seperate reactor thread that is in charge
of responding when a client has more data, buffering the data and
attempting to parse the data. When the data represents a fully realized
request, only then is it handed to the app thread pool. This means we
trust apps to not starve the pool, but don't trust clients.
2012-07-23 10:26:52 -07:00