Delayed computation of `value' and `name' from WSF_STRING.
Fixed computation of REQUEST_URI when the server does not provide it (this is rare, but possible).
compute it as SERVER_NAME + encoded-PATH_INFO + {? + QUERY_STRING}
- PATH_INFO is percent decoded but still utf-8 encoded,
this is available via WGI.path_info and WSF_REQUEST.utf_8_path_info.
- Added WSF_REQUEST.percent_encoded_path_info
- and WSF_REQUEST.path_info remains the unicode value for PATH_INFO
Added cgi_variables: WGI_REQUEST_CGI_VARIABLES to have a simple and quick view on CGI variables
Added execution_variables to be able to iterate on execution variables.
Added PERCENT_ENCODER.percent_decoded_utf_8_string
Improved the WSF_DEBUG_HANDLER to provide more information thanks to WSF_DEBUG_INFORMATION object.
Use STRING_TABLE, and better interface of READABLE_STRING_GENERAL,
this way the signature are more flexible for unicode keys.
Note that for now, unicode environment variables are not correctly supported in WGI
especially the value of the variables.
Any layer on top of EWGSI suffers from the same issues.
Better exception handling
+ code cleaning
Changed semantic of put_header_lines and add_header_lines,
Now the arguments are iterable of string (i.e the header line)
The previous features were not used, and were not well named.
So we removed them, and reused the names for adpated implementation.
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.