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

15 commits

Author SHA1 Message Date
Anthony Clark
befe00a864 http11: Remove qsort code paths [changelog skip] (#2073)
* http11: Remove unused qsort/bsearch code paths

[changelog skip]

* Explicitly include ctype.h to fix compilation warning

[changelog skip]

Had the following warning during compilation without the include:
warning: implicitly declaring library function 'isspace' with type 'int (int)'
2019-11-13 08:31:09 +08:00
Nate Berkopec
22b135a636
Strip header whitespace. Fix #1890. Code by @matthewd (#2010)
* Strip header whitespace in C

Fix #1890

Co-authored-by: Matthew Draper <matthew@trebex.net>

* Add Java extension to do the same

Co-authored-by: Charles Nutter <headius@headius.com>

* Changelog
2019-10-07 15:23:18 +02:00
Evan Phoenix
342cbd1923 Add license indicators. Fixes #1075 2016-09-06 13:23:59 -07:00
Alejandro Martinez Ruiz
fdfd7b5b0f ext/puma_http11: handle duplicate headers as per RFC for C ext
The parser stores headers in a Ruby hash table so that when a header
is found twice its value replaces the old one. As per RFC[1] this is
not correct, since duplicated headers should all be considered. In
particular, they are semantically equivalent to a single header with
comma separated values. In this case, we follow existing practice of
joining values with a comma and a single space character.

[1] See RFC2616 section 4.2:
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
2015-11-06 17:22:31 +01:00
Priyank Chodisetti
139690ecf9 Increase the max URI path length to 2048 chars from 1024 chars 2013-11-10 00:16:30 -08:00
Evan Phoenix
3726b7ef19 Change parser symbol names to avoid clash. Fixes #179 2013-07-18 11:22:18 -07: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
17a058a158 Minor cleanup and properly scope 2012-08-22 22:12:12 -07:00
Evan Phoenix
f792702dab Start MiniSSL 2012-08-22 16:53:25 -07:00
Evan Phoenix
ab8dbfeb96 Vastly improve IO perf on 1.9.3
Puma::IOBuffer is a very simple memory buffer that allows for fast
append without additional object overhead.

Additionally, turns out that IO#write on 1.9.3 is extremely
non-performant because it allows a Hash object on every invocation.
Avoid calling IO#write in a loop on 1.9.3! Use IO#syswrite if you can
(for instance when you don't care about the encoding of the output
(sockets)).
2012-08-11 15:09:09 -07:00
Evan Phoenix
a1c457f331 Cleanup warnings 2012-08-10 10:12:33 -07:00
Thibault Jouan
4efbc7071a Allow compilation with -Werror=format-security option 2012-07-10 22:47:49 +00:00
Dirkjan Bussink
0728ce5ba9 Define RSTRING_NOT_MODIFIED for Rubinius
As far as I could tell, the buffer given to the http parser isn't
modified. Because it is not modified, we can use the
RSTRING_NOT_MODIFIED header to ensure that Rubinius hasn't do the extra
work to copy the data back and forth.
2012-06-13 09:27:09 +02:00
Sokolov Yura
684b15db3d ALLOC_N uses xmalloc, so that, use xfree for free 2012-01-06 14:47:10 +04:00
Evan Phoenix
40dac162a2 Change name of parser extension to puma_http11 2011-10-04 20:35:50 -07:00
Renamed from ext/http11/http11.c (Browse further)