aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_bif_port.c
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2015-10-27 09:46:09 +0100
committerIngela Anderton Andin <[email protected]>2015-10-27 09:46:09 +0100
commit7908256c72e4a110154c2db61220973fff511614 (patch)
tree4a907c3580e1b037cfc80f0ed87472366ddbf729 /erts/emulator/beam/erl_bif_port.c
parenta76cc1d337c0bf44ecefebeccac2d08e496ba7e8 (diff)
parent61d214cff5fe50b2806f8f977d36bccd412bcfc4 (diff)
downloadotp-7908256c72e4a110154c2db61220973fff511614.tar.gz
otp-7908256c72e4a110154c2db61220973fff511614.tar.bz2
otp-7908256c72e4a110154c2db61220973fff511614.zip
Merge branch 'preloaded/ia/pr/758/OTP-12837' into maint
* preloaded/ia/pr/758/OTP-12837: erts: Include test in group so that it is run erts: Clarify documentation erts: Add {line_delimiter, byte()} option to inet:setopts/2
Diffstat (limited to 'erts/emulator/beam/erl_bif_port.c')
-rw-r--r--erts/emulator/beam/erl_bif_port.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_bif_port.c b/erts/emulator/beam/erl_bif_port.c
index 3ff54c7a60..e47d7bcbbb 100644
--- a/erts/emulator/beam/erl_bif_port.c
+++ b/erts/emulator/beam/erl_bif_port.c
@@ -1329,7 +1329,8 @@ BIF_RETTYPE decode_packet_3(BIF_ALIST_3)
ErlSubBin* rest;
Eterm res;
Eterm options;
- int code;
+ int code;
+ char delimiter = '\n';
if (!is_binary(BIF_ARG_2) ||
(!is_list(BIF_ARG_3) && !is_nil(BIF_ARG_3))) {
@@ -1370,6 +1371,11 @@ BIF_RETTYPE decode_packet_3(BIF_ALIST_3)
case am_line_length:
trunc_len = val;
goto next_option;
+ case am_line_delimiter:
+ if (type == TCP_PB_LINE_LF && val >= 0 && val <= 255) {
+ delimiter = (char)val;
+ goto next_option;
+ }
}
}
}
@@ -1390,7 +1396,7 @@ BIF_RETTYPE decode_packet_3(BIF_ALIST_3)
pca.aligned_ptr = bin_ptr;
}
packet_sz = packet_get_length(type, (char*)pca.aligned_ptr, pca.bin_sz,
- max_plen, trunc_len, &http_state);
+ max_plen, trunc_len, delimiter, &http_state);
if (!(packet_sz > 0 && packet_sz <= pca.bin_sz)) {
if (packet_sz < 0) {
goto error;