From c153eeaef2216f6e3a0b06f50661f4abda0699c6 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 20 Mar 2010 13:55:54 +0000 Subject: uhttpd: treat cgi scripts without any headers as text/plain responses, required for X-Wrt --- contrib/package/uhttpd/src/uhttpd-cgi.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'contrib/package/uhttpd') 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); } -- cgit v1.2.3