diff options
author | Albrecht Dreß <albrecht.dress@arcor.de> | 2020-08-29 14:33:05 +0200 |
---|---|---|
committer | Albrecht Dreß <albrecht.dress@arcor.de> | 2020-08-29 14:33:05 +0200 |
commit | ae13377fb15c21705041f6e41cf8a5b9e449edbb (patch) | |
tree | 4332c5f08bb70934f75ee08e2c8ac4355ab62f3d | |
parent | f9e56c3a51f4ba8b91cead5526ff14ec75d2a35d (diff) | |
download | gnutls-ae13377fb15c21705041f6e41cf8a5b9e449edbb.tar.gz |
improve gnutls-serv EOL processing
add option `--crlf` to gnutls-serv to disable replacing a received CRLF
by LF in echo mode (fixes #1073).
Signed-off-by: Albrecht Dreß <albrecht.dress@arcor.de>
-rw-r--r-- | src/serv-args.def | 6 | ||||
-rw-r--r-- | src/serv.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/serv-args.def b/src/serv-args.def index a584085e26..ca61801c1e 100644 --- a/src/serv-args.def +++ b/src/serv-args.def @@ -95,6 +95,12 @@ flag = { }; flag = { + name = crlf; + descrip = "Do not replace CRLF by LF in Echo server mode"; + doc = ""; +}; + +flag = { name = udp; value = u; descrip = "Use DTLS (datagram TLS) over UDP"; diff --git a/src/serv.c b/src/serv.c index 57304bc9d3..5198b58c65 100644 --- a/src/serv.c +++ b/src/serv.c @@ -55,6 +55,7 @@ /* global stuff */ static int generate = 0; static int http = 0; +static int strip_crlf = 1; static int x509ctype; static int debug = 0; @@ -1058,7 +1059,8 @@ get_response(gnutls_session_t session, char *request, *response = peer_print_data(session, response_length); } else { int ret; - strip(request); + if (strip_crlf != 0) + strip(request); fprintf(stderr, "received cmd: %s\n", request); ret = check_command(session, request, disable_client_cert); @@ -1838,9 +1840,11 @@ static void cmd_parser(int argc, char **argv) noticket = HAVE_OPT(NOTICKET); earlydata = HAVE_OPT(EARLYDATA); - if (HAVE_OPT(ECHO)) + if (HAVE_OPT(ECHO)) { http = 0; - else + if (HAVE_OPT(CRLF)) + strip_crlf = 0; + } else http = 1; record_max_size = OPT_VALUE_RECORDSIZE; |