X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/803f254122dc757db104a4c36cf98b726be004be..ef1ba39e8dae81091b6c3e73e72825ef6edea3c6:/test/fakehttp.c diff --git a/test/fakehttp.c b/test/fakehttp.c index f773a73d..82db9a1e 100644 --- a/test/fakehttp.c +++ b/test/fakehttp.c @@ -21,6 +21,19 @@ int serve(const char *, const char *); void putcrlf(int, char *); +static void +strip_cr(char *buf, ssize_t *len) +{ + ssize_t src, dst; + for (src = dst = 0; src < *len; src++) { + buf[dst] = buf[src]; + if (buf[src] != '\r') { + dst++; + } + } + *len -= src - dst; +} + static void save_req(int conn, FILE *req) { @@ -55,7 +68,7 @@ save_req(int conn, FILE *req) } if (r < 0) { e = errno; - fputs("\n", req); /* req body usually has no newline */ + putc('\n', req); /* req body usually has no newline */ fclose(req); if (e != EAGAIN && e != EWOULDBLOCK) { fprintf(stderr, "Unable to read socket: %s\n", strerror(e)); @@ -66,7 +79,7 @@ save_req(int conn, FILE *req) * all done. */ return; } - /* make tests simpler by eliding carriage-returns? */ + strip_cr(buf, &r); fwrite(buf, 1, r, req); } }