i.e allow to change the status code and the header as long as no content is really sent back to the client
This requires an addition WGI_RESPONSE, new post_commit_action: PROCEDURE [...]
According to the specification, the value of the response header
Access-Control-Allow-Headers must contain at least all the values of the
request header Access-Control-Request-Headers to be considered a valid request.
Before this commit, only the Authorization value was present, which is enough
for Firefox but not for Chrome.
This should now work as expected.
Cleaned the WGI_CHUNKED_INPUT_STREAM and provides access to last extension, last trailer, ...
Improved WSF_TRACE_RESPONSE to support tracing chunked input back to the client.
Merged REQUEST.input and REQUEST.chunked_input
Now REQUEST.input handles directly the chunked transfer encoding, or the non chunked.
Kept REQUEST.is_chunked_input since it matters that Content-Length is 0 even if there are input (chunked) data.
This is a minor breaking change (but prior to the first release, so acceptable)
And then it is now possible to precise a custom reason phrase (useful for 4xx and 5xx response)
At the WSF_RESPONSE level, the status code is now sent only when the header are sent.
thus, it is possible to change the status code as long as no header is sent.
(in the future, we should also try to delay the sending of headers)
Removed WGI_RESPONSE.put_header_lines (..) which was not used, and WGI is not meant to provide such user friendly features
Now this is available directly on WSF_RESPONSE
and forget about the eventual parameters (charset, name) ...
note: it is possible to query meta_string_variable ("CONTENT_TYPE")
to get the complete Content-Type header
Added WSF_RESPONSE.put_character
Renamed WGI_OUTPUT_STREAM.put_character_8 as put_character to follow style of put_string (and not put_string_8)
Refactored the WSF_DEFAULT_SERVICE_LAUNCHER
Added WSF_DEFAULT_SERVICE to be more user friendly
Splitted the wsf/default/ libraries to have wsf/connector/... and being able to handle more than one connector in the same application
Replaced any internal call to WGI_RESPONSE.write () by the associated implementation (i.e output.put_string (...) )
Added WGI_OUTPUT_STREAM.put_crlf
Renamed WSF_RESPONSE.put_response (a_message) as `send (a_message)'
WSF_RESPONSE_MESSAGE.send_to (res) is now exported only to WSF_RESPONSE
- fixed issue related to `ready_for_reading' now use the `try_...' variant
- for now Nino does not support persistent connection, then we have to respond with "Connection: close"
REQUEST_FILE_SYSTEM_HANDLER:
- added not_found_handler and access_denied_handler, so that the user can customize related response
WSF_REQUEST and WSF_VALUE:
- modified how uploaded file are handled, fixed various issues, and added WSF_UPLOADED_FILE (it is a WSF_VALUE)
WSF_VALUE:
- added change_name (a_name: like name)
- added url_encoded_name to other WSF_values
WSF_REQUEST:
- added `destroy' to perform end of request cleaning (such as deleting temp uploaded files)
- renamed `raw_post_data_recorded' as `raw_input_data_recorded', and related feature
- do not store the RAW_POST_DATA in meta variable anymore, but in WSF_REQUEST.raw_input_data is asked
Added WSF_HTML_PAGE_RESPONSE to help user
WSF_REPONSE.redirect_... now use "temp_redirect" as default
instead of "moved_permanently" which is specific usage
Removed many obsolete features.
This should be the choice of the application to "retry" on exception, otherwise let the framework handle this in the lower part.
Better handling of response termination (alias commit)
Added the notion of "status_committed"