the "en" should be loaded by default
added: LDFLAGS option to Makefiles
added: compilation with CLANG (some const objects should have been created with default cctor)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@856 e52654a7-88a9-db11-a3e9-0013d4bc506e
added a default parameter bool try_default_too = true to some methods: Get(), IsKey()
added more methods for accessing by an internal index
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@854 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: time zones -- now we have the daylight saving time
different for each year (start, end)
added: config option: time_zone_id (size_t)
time zone identifier for not logged users
or for newly created accounts
those identifiers you can see in etc/time_zones.conf file
or by using timezone winix function with 'a' parameter (timezone/a) (!!IMPROVE ME NOT IMPLEMENTED YET)
default: 34 (Coordinated Universal Time UTC+00:00)
added: config option: locale_default_id (size_t)
locale for not logged users
or for newly created accounts
added: config option: locale_max_id (size_t)
a maximum value of a locale identifier
default: 100 (maximum: 1000)
each locale files should have its own identifier (in "winix_locale_id" field)
from zero to this value
added: config option: time_zone_max_id (size_t)
maximum value of a time zone identifier
time zones with an id greater than this will be skipped
default: 130 (maximum: 1000)
removed: config option: locale_default
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@852 e52654a7-88a9-db11-a3e9-0013d4bc506e
there'll be some generic config files for winix
added: a new file in etc directory: time_zones_file
list of time zones (not finished yet -- daylight saving time is needed)
added: option to config: etc_dir
a directory in which there are some config files
used mainly when winix starts
default: empty (means not for using)
added: option to config: time_zones_file
a file in etc_dir with time zones info
default: time_zones.conf
this is a Space structure with all time zones
added: to system: TimeZones struct
list of time zones read from etc/time_zones.conf
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@849 e52654a7-88a9-db11-a3e9-0013d4bc506e
if either use_ssl in the config if false
or if use_ssl_only_for_logged_users is true
and a user is not logged
added: base url redirect HTTP codes to the config
// if current connection is without SSL and should be made through SSL
// or if is via SSL and should be done in plain text
// then we make a redirect
// default: 303
int use_ssl_redirect_code;
// when the HOST_HTTP environment variable is not equal to 'base_url'
// (the part 'http://' and the last slash is removed)
// the server will redirect into base_url + 'REQUEST_URI'
// it's useful when you want to redirect from 'mydomain.tld' into 'www.mydomain.tld' etc.
// set this option to false if you have multiple subdomains
// default: false
bool base_url_redirect;
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@847 e52654a7-88a9-db11-a3e9-0013d4bc506e
std::wstring * PostVarp(const std::wstring & var);
added: to misc:
template<class CharType>
bool Toa(unsigned/signed long/int value, CharType * buffer);
some Toa methods which don't get the buffer len
(the buffer has to be sufficient big)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@845 e52654a7-88a9-db11-a3e9-0013d4bc506e
didn't print the subdomain
added: to rm winix function:
bool Rm::RemoveItemByPath(const std::wstring & path, bool check_access)
fixed: in Upload winix function
when uploading an image we have to get
a mount point where the image is placed (parent dir)
(it was cur->mount beforehand)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@844 e52654a7-88a9-db11-a3e9-0013d4bc506e
this class has information about a time zone (utf offset, daylight saving time)
and methods for converting between UTC and local time
structs User and Config has a TimeZone object
System::ToLocal() and System::ToUTC() uses it for converting
(depending whether a user is logged or not)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@842 e52654a7-88a9-db11-a3e9-0013d4bc506e
removed start_tm
added start_date (PT::Date)
changed: in Session:
removed: tm_time
added: start_date (PT::Date)
renamed: time -> start_time
the same is for last_time
now we have (last_time and last_date)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@838 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we first demonize (fork) and then open the log file
added: start adding support for PT::Date
we are using instead of tz system structure
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@836 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: in locale txt files:
the '(' and ')' characters should be escaped '\(' and '\)'
or the whole string should be quoted
added: when parsing locale files we print the line number where there was a syntax error
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@833 e52654a7-88a9-db11-a3e9-0013d4bc506e
// a session is going to be removed
// it is called from session manager's thread (with lock/unlock)
#define WINIX_PREPARE_SESSION_TO_REMOVE 30027
// a session has been removed
// it is called from session manager's thread (with lock/unlock)
// in l1 you have the old session id
#define WINIX_SESSION_REMOVED 30029
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@832 e52654a7-88a9-db11-a3e9-0013d4bc506e
ConfParser is now SpaceParser
added: to SessionManager
Session * SessionManager::FindSession(long id)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@831 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we can use Lock() more than one in the same thread
and next Unlock() will recognize it
sample:
Lock(); // first lock -- resources locked
Lock(); // second lock -- skipped (counter incremented)
...
Unlock(); // first unlock -- skipped (because counter greater than zero)
Unlock(); // second unlock -- actually unlocking
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@830 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: Job class (system->job object)
a general mechanism for jobs (by using PT::Space as a job structure)
WINIX_JOB plugin message will be sent with a pointer to PT::Space
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@829 e52654a7-88a9-db11-a3e9-0013d4bc506e
and was not used when checking for base url redirect
fixed: return values from plugins should be given in a special structure
they were remembered in plugin object (ret_false, ret_true)
and consequently were not thread safe
now all plugin.Call() methods return PluginRes structure
in which there are ret_false and ret_true variables
changed: small refactoring in AddUser winix function
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@827 e52654a7-88a9-db11-a3e9-0013d4bc506e
(even if it was an administrator and has selected other people)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@825 e52654a7-88a9-db11-a3e9-0013d4bc506e
(Session, SessionContainer, SessionManager)
now a Session object don't copy all fields in its copy constructor (only id)
the rest fields are set after the object is inserted in SessionContainer
added: after successfully login a session id is changed
added: plugin.Call() methods with a first argument a pointer to a Session object
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@823 e52654a7-88a9-db11-a3e9-0013d4bc506e
a user will be logged in
set PluginInfo::res to false (it is by default) to prevent logging the user
directly after this message (if you do not return false)
a WINIX_USER_LOGGED is sent
in p1 you have a pointer to User struct
(if at least one plugin returns false then the user will not be logged)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@820 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: notifications for resetting a user's password
(there is no a winix function for this yet)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@817 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: UGContainer<> now uses std::list as a storage
(previously it was using std::vector with pointers)
removed: now we don't have the operator[] for UGContainer<>
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@816 e52654a7-88a9-db11-a3e9-0013d4bc506e
other unicode white characters
25 characters -- without a new line character (10)
added: config option: account_need_email_verification
if true then when creating an account a user has to provide
his email address and a message with an activation link will be sent
back to him
added: 'pw' winix function (not finished yet)
at the moment only one parameter 'activate'
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@810 e52654a7-88a9-db11-a3e9-0013d4bc506e
a recurrence loop - incorrect function was called (typo)
updated: to the new EZC api:
templates from plugin menu
templates from 'man' winix function
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@809 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we have a cache for the plugin
(this limits the number of database requests)
added: to plugin 'menu'
menu_dir_tab can have a 'current' parameter (first argument)
(it uses the last path from the previous menu_dir_tab)
changed: updated to the new EZC api
added: new message to plugins: WINIX_DIR_ADDED
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@808 e52654a7-88a9-db11-a3e9-0013d4bc506e
UrlEncode() for char->wstring
UrlEncode() for wstring->wstring
removed: Request::redirect_url_encoded flag
the Request::redirect_to string should always be url-encoded
changed: in UrnEncode()
now characters like '#' and '/' are not allowed in an url
(will be url-encoded)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@807 e52654a7-88a9-db11-a3e9-0013d4bc506e
parameter: ezc_max_elements
maximum number for elements through the whole template (ezc)
default: 50000
parameter: ezc_max_loop_elements
maximum number of each [for] loop
default: 5000 (from ezc generator)
added: to Request class:
time_t start_time;
tm start_tm;
they are set when a request starts
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@806 e52654a7-88a9-db11-a3e9-0013d4bc506e
void MaxSize(StringType & str, size_t max_size)
if a string is larger than max_size then it is truncated to max_size characters
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@805 e52654a7-88a9-db11-a3e9-0013d4bc506e
DbBase::AssertQuery(const std::wstring & q)
there was a recurrence calling (the method called itself)
we don't need a method which get a wstring as an argument
added: DbBase::AssertQuery(const char * q, ExecStatusType t)
DbBase::AssertQuery(const DbTextStream & query, ExecStatusType t)
(AssertQuery with a second argument -- the same as to AssertResult)
we don't have to use AssertQuery and AssertResult
only one AssertQuery now
added: to plugins: two messages:
// preparing a current user to logout
// send from 'logout' winix function
// !! IMPROVE ME this message can be sent when winix is making the shutdown
// (for sessions which are not mark as 'remember me')
// and when the SessionManager deletes a session (from the special thread)
#define WINIX_PREPARE_USER_LOGGED_OUT 30610
// a user has been logged out
// send from 'logout' winix function
// in l1 you have the old user_id
// !! IMPROVE ME this message can be sent when winix is making the shutdown
// (for sessions which are not mark as 'remember me')
// and when the SessionManager deletes a session (from the special thread)
#define WINIX_USER_LOGGED_OUT 30620
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@804 e52654a7-88a9-db11-a3e9-0013d4bc506e
sometimes for directories the rm function could return 'access true' (even without 'r' parameter)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@803 e52654a7-88a9-db11-a3e9-0013d4bc506e