转载:http://erlang.2086793.n4.nabble.com/Packet-type-http-and-httph-in-inet-ssl-setopts-2-td2121721.html
Hi All,
In the documentation in the inet module the last line reads: "Note that the packet type httph is not needed when reading from a socket." This isn't quite true if you want to read HTTP Trailers which can be found after an entity body using the chunked transfer coding. Setting the option {packet, http} and then reading the following data: "Trailer-1: 1/r/n/r/n" Will return {http_error, "Trailer-1: 1/r/n"} instead of {ok, {http_header, ...}}. I guess that's because the http parser is keeping a state of some sort. Using the option {packet, httph} however works well for reading trailer both for the ssl module and gen_tcp / inet. Is there any possibility to document the use of packet type httph as a valid option for {inet,ssl}:setopts/2 as well? Best regards -- Oscar Hellström, [hidden email] Office: +44 20 7655 0337 Mobile: +44 798 45 44 773 Erlang Training and Consulting Ltd http://www.erlang-consulting.com/ ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |
Jul 03, 2009; 11:06pm
117 posts
|
Oscar Hellström wrote:
> Hi All, > > In the documentation in the inet module the last line reads: > "Note that the packet type httph is not needed when reading from a socket." > > This isn't quite true if you want to read HTTP Trailers which can be > found after an entity body using the chunked transfer coding. Setting > the option {packet, http} and then reading the following data: > "Trailer-1: 1/r/n/r/n" > Will return {http_error, "Trailer-1: 1/r/n"} instead of {ok, > {http_header, ...}}. I guess that's because the http parser is keeping a > state of some sort.
« [
hide part of quote]
Yes, the socket holds a state and automatically switches from http to
httph after a request or response has been received. When the parser is called via erlang:decode_packet/3, no such state exist. > Using the option {packet, httph} however works well > for reading trailer both for the ssl module and gen_tcp / inet. Is there > any possibility to document the use of packet type httph as a valid > option for {inet,ssl}:setopts/2 as well? > > Yes, I will make that more clear. I guess "httph is not needed" was to over-simplify things. /Sverker, Erlang/OTP ________________________________________________________________ erlang-bugs mailing list. See http://www.erlang.org/faq.html erlang-bugs (at) erlang.org |