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
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.
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.
- 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.
Renamed WGI_RESPONSE_BUFFER as WGI_RESPONSE to avoid confusion
Removed EWF_HEADER and removed related caller from WGI implementation,
now this is only part of WSF library
Added wgi_version, wgi_implementation and wgi_connector to the WGI_REQUEST interface
to give more information to the user
Added back WGI_CONNECTOR to WGI specification, mainly because of `{WGI_REQUEST}.wgi_connector'
simplified WGI_CONNECTOR to contain for now only `name' and `version'
if the implementation of connector inherit from WGI_CONNECTOR (recommended)
this might gives more access to the user using a reverse assignment for specific needs
(but this usage is not recommended due to portability issue on other connector)
Removed useless connector.ecf since now EWF/WGI library provides the helper classes
Removed many usage of READABLE_STRING_GENERAL in favor to READABLE_STRING_8
to avoid potential nasty issues in user's code
URI-template is working only with STRING_8, then changed any _GENERAL or _STRING_32 to _STRING_8
Changed return type of meta_variable to be WGI_STRING_VALUE ... since the meta variable can not be anything else.
Made sure REQUEST_URI starts with one and only one slash
Internal implementation: the _table now compares object
Removed SELF variable ... at least for now
Be sure to provide a REQUEST_URI even if the underlying connector does not.
- Adopted the ITERATION_CURSOR [WGI_VALUE] design for *_parameters and similar functions
- renamed parameter as item
- provided helper function to handle "string" value parameters
Experimental for now.
renamed ENVIRONMENT_NAMES into META_NAMES
better usage of READABLE_STRING_GENERAL, and other strings
abstract RESPONSE_BUFFER in implementation of EWSGI
for the implementation, inheriting from deferred specification (more to come later)
Re-adapt the Spec-compliant solution (instead of Lib-compliant solution).
Thus no more 100% deferred interface.
Rename EWSGI_RESPONSE into EWSGI_RESPONSE_BUFFER
Added in extra/response-as-result/ an copy/paste from the implementation of Paul's proposal (not up to date with Paul's spec). But this is mainly for information and tests.
Removed part of the ewsgi/specification interfaces ... to be able to test EWSGI compliant library against the pure specification (experimental).
Renamed most of the GW_... into EWSGI_...