X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=contrib%2Fpackage%2Fuhttpd%2Fsrc%2Fuhttpd-cgi.c;h=6bab9a40963eb2ed2ca54dce4708e09d4d057102;hp=7836167ff83910213466c18dc031e0b77d15c0d7;hb=c153eeaef2216f6e3a0b06f50661f4abda0699c6;hpb=0f18174879e121e5c5a64de0e3cb88a9c78e2b37 diff --git a/contrib/package/uhttpd/src/uhttpd-cgi.c b/contrib/package/uhttpd/src/uhttpd-cgi.c index 7836167ff..6bab9a409 100644 --- a/contrib/package/uhttpd/src/uhttpd-cgi.c +++ b/contrib/package/uhttpd/src/uhttpd-cgi.c @@ -469,8 +469,24 @@ void uh_cgi_request(struct client *cl, struct http_request *req, struct uh_path_ /* cgi script did not output useful stuff at all */ if( ! header_sent ) { - uh_cgi_error_500(cl, req, - "The CGI program generated an invalid response:\n\n"); + /* I would do this ... + * + * uh_cgi_error_500(cl, req, + * "The CGI program generated an " + * "invalid response:\n\n"); + * + * ... but in order to stay as compatible as possible, + * treat whatever we got as text/plain response and + * build the required headers here. + */ + + uh_http_sendf(cl, NULL, + "HTTP/%.1f 200 OK\r\n" + "Content-Type: text/plain\r\n" + "%s\r\n", + req->version, (req->version > 1.0) + ? "Transfer-Encoding: chunked\r\n" : "" + ); uh_http_send(cl, req, hdr, hdrlen); }