I've a CGI module written in C & for some condition I want to return HTTP error 400 from this module. The problem is - I don't know how to return HTTP error from the module.
Looks like the 'return(-1)' in my module, returns the 500 internal server error. I've tried returning 400 etc. but in vein. I've even tried "printf("Status:400");" before returning -1 (as suggested here: How to return a 500 HTTP status from a C++ CGI program ) but that didn't work.
Any advice on this would be appreciated.
Edit: [solved] I was able to return HTTP error code from the python module (which is called later by this C CGI module). So didn't get to try the suggestion mentioned in comments below. Thanks for offering help, though.
To return HTTP error code from your CGI script, you have to write it into
stdout
, such as:Just the
status: status-code\n\n
is necessary.To return HTTP error 400 to the HTTP client, you have to write the HTTP status line to stdout, like this:
Ref: https://tools.ietf.org/html/rfc3875
The Status header field contains a 3-digit integer result code that indicates the level of success of the script's attempt to handle the request.