diff options
author | Micael Karlberg <[email protected]> | 2011-03-10 11:00:32 +0100 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2011-03-10 11:00:32 +0100 |
commit | a8ac8764ae07fee3f8c45c98b11b8d1637128a58 (patch) | |
tree | 70feb8cf5f20af224891a8cf0a76ad48cb19fb13 /lib | |
parent | 8533b8bcae728783b1c066b9fecb96b1cc2eb03c (diff) | |
parent | 73f261d2f44a58fda92e3d6e035051c11c3e4521 (diff) | |
download | otp-a8ac8764ae07fee3f8c45c98b11b8d1637128a58.tar.gz otp-a8ac8764ae07fee3f8c45c98b11b8d1637128a58.tar.bz2 otp-a8ac8764ae07fee3f8c45c98b11b8d1637128a58.zip |
Merge branch 'bd/mod_esi_binary' into bmk/inets/httpd/make_mod_esi_deliver_accept_binary_data/OTP-9123
Diffstat (limited to 'lib')
-rw-r--r-- | lib/inets/doc/src/mod_esi.xml | 6 | ||||
-rw-r--r-- | lib/inets/src/http_server/mod_esi.erl | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/inets/doc/src/mod_esi.xml b/lib/inets/doc/src/mod_esi.xml index 3c473d3f94..e063088eb4 100644 --- a/lib/inets/doc/src/mod_esi.xml +++ b/lib/inets/doc/src/mod_esi.xml @@ -41,7 +41,7 @@ <fsummary>Sends Data back to client.</fsummary> <type> <v>SessionID = term()</v> - <v>Data = string() | io_list()</v> + <v>Data = string() | io_list() | binary()</v> <v>Reason = term()</v> </type> <desc> @@ -54,7 +54,9 @@ <note><p>Note that if any HTTP-header fields should be added by the script they must be in the first call to deliver/2 and the - data in the call must be a string. Do not + data in the call must be a string. Calls after the headers + are complete may contain binary data to reduce copying + overhead. Do not assume anything about the data type of SessionID, the SessionID must be the value given as input to the esi call back function that you implemented.</p></note> diff --git a/lib/inets/src/http_server/mod_esi.erl b/lib/inets/src/http_server/mod_esi.erl index 929185a67a..b85c479693 100644 --- a/lib/inets/src/http_server/mod_esi.erl +++ b/lib/inets/src/http_server/mod_esi.erl @@ -452,6 +452,10 @@ handle_body(Pid, ModData, Body, Timeout, Size, IsDisableChunkedSend) -> ?hdrt("handle_body - send chunk", [{timeout, Timeout}, {size, Size}]), httpd_response:send_chunk(ModData, Body, IsDisableChunkedSend), receive + {esi_data, Data} when is_binary(Data) -> + ?hdrt("handle_body - received binary data (esi)", []), + handle_body(Pid, ModData, Data, Timeout, Size + byte_size(Data), + IsDisableChunkedSend); {esi_data, Data} -> ?hdrt("handle_body - received data (esi)", []), handle_body(Pid, ModData, Data, Timeout, Size + length(Data), |