An email address has two parts:
- the local part (before the "@") = max 64 characters
- the domain part (after the "@") = max 255 characters
So maximum length is 64 + @ + 255 = 320 characters
https://www.rfc-editor.org/rfc/rfc5321.html#section-4.5.3.1
Use a char32_t instead of a wchar_t type. This is needed on systems
where sizeof(wchar_t) is equal to 2.
This affects classes based on the pt::Stream such as Log and HtmlTextStream.
Add PluginInfo::has_res (bool, default true). If set to false by a plugin function
then the PluginInfo::res value is not taken into account when calculating how many plugins
have returned true or false.
If a date is given in a relative form with first/last parameters,
we must remember them in order to select the appropriate day
of the week from the appropriate year.
the format of a 'start' or 'end' field in a dst is:
MM-[first|last]:[monday|tuesday|wednesday|thursday|friday|saturday|sunday] HH:MM:SS
or just as beforehand: MM-DD HH:MM:SS
a sample timezone:
{
name = "tz_+01:00d"
id = "40"
offset_str = "+01:00"
dst = (
{
year = "2001"
has_dst = true
offset_str = "+01:00"
start = "03-last-sunday 01:00"
end = "10-last-sunday 01:00"
}
) # end of dst
}
This buffer is used when a Function::NeedToCopyRawPost() method returned true.
while here:
- remove WINIX_POST_PARAMS and WINIX_RAW_POST_STRING plugin messages
Now check whether the origin is in allowed_origins table,
and if not check allow_all_origins config parameter.
While here:
- add are_cors_preflight_requests_available - if true then preflight
requests are available (default false)
while here:
- send cors headers even if the status is 404
- add: access_control_expose_headers config option - list of additional headers sent in Access-Control-Expose-Headers
- add: access_control_allow_credentials config option - if true return Access-Control-Allow-Credentials header equal "true"
- allow_all_cors_origins - whether or not to allow all origins
- allowed_cors_origins - a list of allowed origins (used if allow_all_cors_origins is false)
The session cookie was not created because request->session pointed at
a temporary session.
While here:
- do some cleaning in App
- set request->mount too
- add fcgi_cannot_create_request_delay to the config
- fix: in mailregister plugin get model_connector from env (and not from the request)
Now we allow a request to be passed into a job queue,
and after the job finishes the request is passed into
a controller again. In order to achieve this we have
a requests queue in System, when we put a request
to the job this Request structure is preserved in the
queue and for a new request a new Request is added to
the queue.
while here:
- remove App::Lock()/Unlock(), use scoped locking
- fix: Plugin now has a Call method which takes ModelConnector
and a logger (used in multithreaded environment)
- BaseThread has a main_model_connector pointer
to the main (from the main thread) model connector
- the FastCGI structure fcgi_request moved from App to Request
- some methods for handling requests moved from App to Request
- small refactoring in main.cpp
- add Http class (a http client)