From 76314aab1005d689832ebf2d7ae5de14b250014d Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Sat, 22 Nov 2014 15:30:56 +0000 Subject: [PATCH] added: possibility to encode the session cookie (added files core/sessionidmanager.h and core/sessionidmanager.cpp) added: config options: // whether or not we should encode the session cookie // (we have a special algorithm) // default: false bool session_cookie_encode; // if session_cookie_encode is true then you should provide // a file where AES keys will be stored std::wstring session_keys_file; // each session has an index -- an unsigned int value // this value is sent in the cookie string (is encoded) // and is incremented when session_index_time_increment time is passed since the last incrementing // if a client sent the cookie back the difference between // current index and the index in the cookie should be less than or equal to session_allow_index_difference // default: 8 size_t session_allow_index_difference; // the time which should pass after the session index is incremented // default: 30 // (session_allow_index_difference + 1) * session_index_time_increment should be less than a time // load of a page and all elements on it such as images (of course it depends on client's download too) time_t session_index_time_increment; // time in seconds after a new AES key pair should be generated // we have 256 pairs of keys so this time multiplied by 256 should not be less than // the max time of a session (session_remember_max_idle), // by default: 256 * 2 days = 512 days = 1.4 year > 3 months (session_remember_max_idle) // default: 172800 = 2 days (max: 2678400 = 1 month, min: 10) size_t session_key_renew_time; changed: when printing the time of a request we print only two non-zero digits git-svn-id: svn://ttmath.org/publicrep/winix/trunk@994 e52654a7-88a9-db11-a3e9-0013d4bc506e --- Makefile.dep | 2 +- core/Makefile.dep | 91 ++++-- core/Makefile.o.dep | 2 +- core/app.cpp | 22 +- core/app.h | 1 + core/config.cpp | 11 + core/config.h | 30 ++ core/loadavg.cpp | 9 +- core/misc.cpp | 37 +++ core/misc.h | 14 + core/session.cpp | 24 +- core/session.h | 7 + core/sessionidmanager.cpp | 561 +++++++++++++++++++++++++++++++++++ core/sessionidmanager.h | 199 +++++++++++++ core/sessionmanager.cpp | 123 +++++++- core/sessionmanager.h | 15 +- core/sessionparser.cpp | 1 + functions/Makefile.dep | 41 ++- main/Makefile.dep | 4 +- notify/Makefile.dep | 15 +- plugins/export/Makefile.dep | 3 +- plugins/gallery/Makefile.dep | 5 +- plugins/group/Makefile.dep | 5 +- plugins/menu/Makefile.dep | 5 +- plugins/stats/Makefile.dep | 5 +- plugins/thread/Makefile.dep | 10 +- plugins/ticket/Makefile.dep | 15 +- templates/Makefile.dep | 343 ++++++++++++--------- 28 files changed, 1360 insertions(+), 240 deletions(-) create mode 100644 core/sessionidmanager.cpp create mode 100644 core/sessionidmanager.h diff --git a/Makefile.dep b/Makefile.dep index 7399ac1..20b7bd0 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -1 +1 @@ -winix.src.files = ./main/main.cpp ./db/dbconn.cpp ./db/db.cpp ./db/dbbase.h ./db/dbitemcolumns.cpp ./db/dbtextstream.cpp ./db/dbconn.h ./db/db.h ./db/dbitemcolumns.h ./db/dbitemquery.cpp ./db/dbtextstream.h ./db/dbitemquery.h ./db/dbbase.cpp ./core/synchro.h ./core/sessioncontainer.h ./core/cookieparser.h ./core/misc.cpp ./core/item.cpp ./core/error.h ./core/timezone.h ./core/compress.h ./core/crypt.cpp ./core/dirs.cpp ./core/slog.cpp ./core/config.cpp ./core/lastcontainer.cpp ./core/users.h ./core/httpsimpleparser.cpp ./core/threadmanager.h ./core/postparser.h ./core/pluginmsg.h ./core/acceptbaseparser.h ./core/loadavg.cpp ./core/job.h ./core/mountparser.cpp ./core/timezones.h ./core/sessionmanager.h ./core/groups.h ./core/system.cpp ./core/synchro.cpp ./core/rebus.h ./core/lock.cpp ./core/acceptencodingparser.h ./core/version.h ./core/compress.cpp ./core/ipbancontainer.cpp ./core/request.h ./core/plugindata.h ./core/plugin.cpp ./core/sessionparser.cpp ./core/bbcodeparser.h ./core/users.cpp ./core/mount.cpp ./core/basethread.cpp ./core/item.h ./core/slog.h ./core/acceptbaseparser.cpp ./core/lastcontainer.h ./core/httpsimpleparser.h ./core/timezones.cpp ./core/groups.cpp ./core/requesttypes.h ./core/system.h ./core/bbcodeparser.cpp ./core/lock.h ./core/ipbancontainer.h ./core/group.h ./core/plugin.h ./core/run.cpp ./core/textstream.h ./core/sessionparser.h ./core/basethread.h ./core/mount.h ./core/htmlfilter.cpp ./core/user.cpp ./core/app.cpp ./core/image.cpp ./core/ugcontainer.h ./core/postmultiparser.h ./core/logmanipulators.h ./core/sessioncontainer.cpp ./core/dircontainer.h ./core/log.h ./core/session.h ./core/timezone.cpp ./core/mounts.h ./core/ipban.h ./core/cur.h ./core/misc.h ./core/threadmanager.cpp ./core/dirs.h ./core/crypt.h ./core/run.h ./core/config.h ./core/job.cpp ./core/postmultiparser.cpp ./core/sessionmanager.cpp ./core/htmlfilter.h ./core/rebus.cpp ./core/dircontainer.cpp ./core/log.cpp ./core/user.h ./core/loadavg.h ./core/session.cpp ./core/mountparser.h ./core/mounts.cpp ./core/app.h ./core/image.h ./core/plugindata.cpp ./core/request.cpp ./core/winix_const.h ./functions/upload.cpp ./functions/priv.h ./functions/env.cpp ./functions/default.h ./functions/node.h ./functions/specialdefault.h ./functions/timezone.cpp ./functions/pw.h ./functions/adduser.h ./functions/chmod.h ./functions/imgcrop.cpp ./functions/vim.h ./functions/account.h ./functions/mount.cpp ./functions/uptime.cpp ./functions/ckeditor.cpp ./functions/mkdir.cpp ./functions/reload.cpp ./functions/functionparser.h ./functions/logout.cpp ./functions/rmuser.cpp ./functions/rm.cpp ./functions/chown.h ./functions/nicedit.h ./functions/mv.h ./functions/node.cpp ./functions/specialdefault.cpp ./functions/adduser.cpp ./functions/upload.h ./functions/vim.cpp ./functions/env.h ./functions/timezone.h ./functions/who.h ./functions/cp.cpp ./functions/run.cpp ./functions/locale.h ./functions/imgcrop.h ./functions/passwd.h ./functions/mount.h ./functions/privchanger.cpp ./functions/functions.cpp ./functions/last.h ./functions/ckeditor.h ./functions/mkdir.h ./functions/reload.h ./functions/cat.h ./functions/download.h ./functions/ln.h ./functions/nicedit.cpp ./functions/functionbase.cpp ./functions/man.h ./functions/rm.h ./functions/meta.cpp ./functions/emacs.cpp ./functions/sort.h ./functions/who.cpp ./functions/ipban.h ./functions/locale.cpp ./functions/passwd.cpp ./functions/last.cpp ./functions/subject.h ./functions/download.cpp ./functions/cp.h ./functions/cat.cpp ./functions/login.cpp ./functions/tinymce.cpp ./functions/ln.cpp ./functions/run.h ./functions/uname.h ./functions/man.cpp ./functions/functions.h ./functions/privchanger.h ./functions/ls.cpp ./functions/template.h ./functions/stat.h ./functions/priv.cpp ./functions/default.cpp ./functions/functionbase.h ./functions/pw.cpp ./functions/sort.cpp ./functions/ipban.cpp ./functions/chmod.cpp ./functions/meta.h ./functions/account.cpp ./functions/emacs.h ./functions/subject.cpp ./functions/functionparser.cpp ./functions/uname.cpp ./functions/uptime.h ./functions/template.cpp ./functions/stat.cpp ./functions/tinymce.h ./functions/login.h ./functions/chown.cpp ./functions/logout.h ./functions/mv.cpp ./functions/rmuser.h ./functions/ls.h ./notify/notifypool.h ./notify/templatesnotify.cpp ./notify/notify.cpp ./notify/templatesnotify.h ./notify/notify.h ./notify/notifythread.cpp ./notify/notifypool.cpp ./notify/notifythread.h ./templates/who.cpp ./templates/item.cpp ./templates/mount.cpp ./templates/templates.h ./templates/locale.h ./templates/slog.cpp ./templates/doc.cpp ./templates/localefilter.cpp ./templates/config.cpp ./templates/patterns.h ./templates/miscspace.cpp ./templates/filters.cpp ./templates/login.cpp ./templates/man.cpp ./templates/changepatterns.h ./templates/stat.cpp ./templates/template.cpp ./templates/dir.cpp ./templates/user.cpp ./templates/rebus.cpp ./templates/patterncacher.cpp ./templates/upload.cpp ./templates/textextstream.h ./templates/adduser.cpp ./templates/ipban.cpp ./templates/htmltextstream.h ./templates/indexpatterns.h ./templates/templates.cpp ./templates/winix.cpp ./templates/locale.cpp ./templates/misc.h ./templates/patterns.cpp ./templates/passwd.cpp ./templates/last.cpp ./templates/uptime.cpp ./templates/insert.cpp ./templates/changepatterns.cpp ./templates/localefilter.h ./templates/miscspace.h ./templates/ls.cpp ./templates/sys.cpp ./templates/priv.cpp ./templates/textextstream.cpp ./templates/htmltextstream.cpp ./templates/env.cpp ./templates/indexpatterns.cpp ./templates/patterncacher.h ./templates/misc.cpp ./templates/generic.cpp ./plugins/group/init.cpp ./plugins/group/groups.h ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/templates.cpp ./plugins/group/groups.cpp ./plugins/stats/statssession.h ./plugins/stats/bot.h ./plugins/stats/stats.cpp ./plugins/stats/templates.cpp ./plugins/stats/init.cpp ./plugins/stats/stats.h ./plugins/stats/templates.h ./plugins/stats/bot.cpp ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/templates.cpp ./plugins/gallery/gallery.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/gallery.h ./plugins/export/init.cpp ./plugins/export/export.h ./plugins/export/exportthread.cpp ./plugins/export/message.h ./plugins/export/edb.cpp ./plugins/export/funexport.cpp ./plugins/export/exportinfo.cpp ./plugins/export/exportthread.h ./plugins/export/edb.h ./plugins/export/funexport.h ./plugins/export/exportinfo.h ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/ticketinfo.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/createticket.cpp ./plugins/ticket/tdb.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/createticket.h ./plugins/ticket/showtickets.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/tdb.h ./plugins/ticket/sessiondata.h ./plugins/ticket/ticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/funticket.cpp ./plugins/ticket/templates.cpp ./plugins/ticket/editticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/menu/cache.cpp ./plugins/menu/init.cpp ./plugins/menu/cache.h ./plugins/menu/templates.cpp ./plugins/thread/funthread.cpp ./plugins/thread/threadinfo.cpp ./plugins/thread/funthread.h ./plugins/thread/threadinfo.h ./plugins/thread/createthread.cpp ./plugins/thread/reply.cpp ./plugins/thread/showthreads.cpp ./plugins/thread/templates.cpp ./plugins/thread/createthread.h ./plugins/thread/reply.h ./plugins/thread/showthreads.h ./plugins/thread/init.cpp ./plugins/thread/templates.h ./plugins/thread/tdb.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/thread.h ./plugins/thread/tdb.h ../ezc/src/funinfo.h ../ezc/src/patternparser.cpp ../ezc/src/generator.h ../ezc/src/functions.h ../ezc/src/pattern.cpp ../ezc/src/item.cpp ../ezc/src/patternparser.h ../ezc/src/pattern.h ../ezc/src/item.h ../ezc/src/ezc.h ../ezc/src/cache.cpp ../ezc/src/cache.h ../ezc/src/blocks.h ../ezc/src/blocks.cpp ../tito/src/crypto.cpp ../tito/src/misc.h ../tito/src/base64.cpp ../tito/src/crypto.h ../tito/src/aes.cpp ../tito/src/base64.h ../tito/src/misc.cpp ../tito/src/aes.h ../pikotools/mainparser/sample/sample.cpp ../pikotools/mainparser/mainparser.cpp ../pikotools/mainparser/mainparser.h ../pikotools/space/space.h ../pikotools/space/spaceparser.cpp ../pikotools/space/space.cpp ../pikotools/space/spaceparser.h ../pikotools/space/jsontospaceparser.cpp ../pikotools/space/spacetojson.cpp ../pikotools/space/jsontospaceparser.h ../pikotools/space/spacetojson.h ../pikotools/date/date.h ../pikotools/date/date.cpp ../pikotools/membuffer/membuffer.h ../pikotools/utf8/utf8.cpp ../pikotools/utf8/utf8.h ../pikotools/textstream/textstream.h ../pikotools/textstream/types.h ../pikotools/convert/convert.h ../pikotools/convert/inttostr.h \ No newline at end of file +winix.src.files = ./main/main.cpp ./db/dbconn.cpp ./db/db.cpp ./db/dbbase.h ./db/dbitemcolumns.cpp ./db/dbtextstream.cpp ./db/dbconn.h ./db/db.h ./db/dbitemcolumns.h ./db/dbitemquery.cpp ./db/dbtextstream.h ./db/dbitemquery.h ./db/dbbase.cpp ./core/synchro.h ./core/sessioncontainer.h ./core/cookieparser.h ./core/misc.cpp ./core/item.cpp ./core/error.h ./core/timezone.h ./core/compress.h ./core/crypt.cpp ./core/dirs.cpp ./core/slog.cpp ./core/config.cpp ./core/lastcontainer.cpp ./core/users.h ./core/httpsimpleparser.cpp ./core/threadmanager.h ./core/postparser.h ./core/pluginmsg.h ./core/acceptbaseparser.h ./core/loadavg.cpp ./core/job.h ./core/mountparser.cpp ./core/timezones.h ./core/sessionmanager.h ./core/groups.h ./core/system.cpp ./core/synchro.cpp ./core/rebus.h ./core/lock.cpp ./core/acceptencodingparser.h ./core/version.h ./core/compress.cpp ./core/ipbancontainer.cpp ./core/request.h ./core/plugindata.h ./core/plugin.cpp ./core/sessionparser.cpp ./core/bbcodeparser.h ./core/users.cpp ./core/mount.cpp ./core/basethread.cpp ./core/item.h ./core/slog.h ./core/acceptbaseparser.cpp ./core/lastcontainer.h ./core/httpsimpleparser.h ./core/timezones.cpp ./core/groups.cpp ./core/requesttypes.h ./core/system.h ./core/bbcodeparser.cpp ./core/lock.h ./core/ipbancontainer.h ./core/group.h ./core/plugin.h ./core/run.cpp ./core/textstream.h ./core/sessionparser.h ./core/basethread.h ./core/mount.h ./core/htmlfilter.cpp ./core/user.cpp ./core/app.cpp ./core/image.cpp ./core/ugcontainer.h ./core/postmultiparser.h ./core/logmanipulators.h ./core/sessioncontainer.cpp ./core/dircontainer.h ./core/log.h ./core/session.h ./core/timezone.cpp ./core/mounts.h ./core/ipban.h ./core/cur.h ./core/misc.h ./core/threadmanager.cpp ./core/dirs.h ./core/crypt.h ./core/run.h ./core/config.h ./core/job.cpp ./core/postmultiparser.cpp ./core/sessionmanager.cpp ./core/htmlfilter.h ./core/rebus.cpp ./core/dircontainer.cpp ./core/log.cpp ./core/user.h ./core/loadavg.h ./core/session.cpp ./core/mountparser.h ./core/mounts.cpp ./core/app.h ./core/image.h ./core/plugindata.cpp ./core/request.cpp ./core/sessionidmanager.h ./core/winix_const.h ./core/sessionidmanager.cpp ./functions/upload.cpp ./functions/priv.h ./functions/env.cpp ./functions/default.h ./functions/node.h ./functions/specialdefault.h ./functions/timezone.cpp ./functions/pw.h ./functions/adduser.h ./functions/chmod.h ./functions/imgcrop.cpp ./functions/vim.h ./functions/account.h ./functions/mount.cpp ./functions/uptime.cpp ./functions/ckeditor.cpp ./functions/mkdir.cpp ./functions/reload.cpp ./functions/functionparser.h ./functions/logout.cpp ./functions/rmuser.cpp ./functions/rm.cpp ./functions/chown.h ./functions/nicedit.h ./functions/mv.h ./functions/node.cpp ./functions/specialdefault.cpp ./functions/adduser.cpp ./functions/upload.h ./functions/vim.cpp ./functions/env.h ./functions/timezone.h ./functions/who.h ./functions/cp.cpp ./functions/run.cpp ./functions/locale.h ./functions/imgcrop.h ./functions/passwd.h ./functions/mount.h ./functions/privchanger.cpp ./functions/functions.cpp ./functions/last.h ./functions/ckeditor.h ./functions/mkdir.h ./functions/reload.h ./functions/cat.h ./functions/download.h ./functions/ln.h ./functions/nicedit.cpp ./functions/functionbase.cpp ./functions/man.h ./functions/rm.h ./functions/meta.cpp ./functions/emacs.cpp ./functions/sort.h ./functions/who.cpp ./functions/ipban.h ./functions/locale.cpp ./functions/passwd.cpp ./functions/last.cpp ./functions/subject.h ./functions/download.cpp ./functions/cp.h ./functions/cat.cpp ./functions/login.cpp ./functions/tinymce.cpp ./functions/ln.cpp ./functions/run.h ./functions/uname.h ./functions/man.cpp ./functions/functions.h ./functions/privchanger.h ./functions/ls.cpp ./functions/template.h ./functions/stat.h ./functions/priv.cpp ./functions/default.cpp ./functions/functionbase.h ./functions/pw.cpp ./functions/sort.cpp ./functions/ipban.cpp ./functions/chmod.cpp ./functions/meta.h ./functions/account.cpp ./functions/emacs.h ./functions/subject.cpp ./functions/functionparser.cpp ./functions/uname.cpp ./functions/uptime.h ./functions/template.cpp ./functions/stat.cpp ./functions/tinymce.h ./functions/login.h ./functions/chown.cpp ./functions/logout.h ./functions/mv.cpp ./functions/rmuser.h ./functions/ls.h ./notify/notifypool.h ./notify/templatesnotify.cpp ./notify/notify.cpp ./notify/templatesnotify.h ./notify/notify.h ./notify/notifythread.cpp ./notify/notifypool.cpp ./notify/notifythread.h ./templates/who.cpp ./templates/item.cpp ./templates/mount.cpp ./templates/templates.h ./templates/locale.h ./templates/slog.cpp ./templates/doc.cpp ./templates/localefilter.cpp ./templates/config.cpp ./templates/patterns.h ./templates/miscspace.cpp ./templates/filters.cpp ./templates/login.cpp ./templates/man.cpp ./templates/changepatterns.h ./templates/stat.cpp ./templates/template.cpp ./templates/dir.cpp ./templates/user.cpp ./templates/rebus.cpp ./templates/patterncacher.cpp ./templates/upload.cpp ./templates/textextstream.h ./templates/adduser.cpp ./templates/ipban.cpp ./templates/htmltextstream.h ./templates/indexpatterns.h ./templates/templates.cpp ./templates/winix.cpp ./templates/locale.cpp ./templates/misc.h ./templates/patterns.cpp ./templates/passwd.cpp ./templates/last.cpp ./templates/uptime.cpp ./templates/insert.cpp ./templates/changepatterns.cpp ./templates/localefilter.h ./templates/miscspace.h ./templates/ls.cpp ./templates/sys.cpp ./templates/priv.cpp ./templates/textextstream.cpp ./templates/htmltextstream.cpp ./templates/env.cpp ./templates/indexpatterns.cpp ./templates/patterncacher.h ./templates/misc.cpp ./templates/generic.cpp ./plugins/group/init.cpp ./plugins/group/groups.h ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/templates.cpp ./plugins/group/groups.cpp ./plugins/stats/statssession.h ./plugins/stats/bot.h ./plugins/stats/stats.cpp ./plugins/stats/templates.cpp ./plugins/stats/init.cpp ./plugins/stats/stats.h ./plugins/stats/templates.h ./plugins/stats/bot.cpp ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/templates.cpp ./plugins/gallery/gallery.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/gallery.h ./plugins/export/init.cpp ./plugins/export/export.h ./plugins/export/exportthread.cpp ./plugins/export/message.h ./plugins/export/edb.cpp ./plugins/export/funexport.cpp ./plugins/export/exportinfo.cpp ./plugins/export/exportthread.h ./plugins/export/edb.h ./plugins/export/funexport.h ./plugins/export/exportinfo.h ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/ticketinfo.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/createticket.cpp ./plugins/ticket/tdb.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/createticket.h ./plugins/ticket/showtickets.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/tdb.h ./plugins/ticket/sessiondata.h ./plugins/ticket/ticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/funticket.cpp ./plugins/ticket/templates.cpp ./plugins/ticket/editticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/menu/cache.cpp ./plugins/menu/init.cpp ./plugins/menu/cache.h ./plugins/menu/templates.cpp ./plugins/thread/funthread.cpp ./plugins/thread/threadinfo.cpp ./plugins/thread/funthread.h ./plugins/thread/threadinfo.h ./plugins/thread/createthread.cpp ./plugins/thread/reply.cpp ./plugins/thread/showthreads.cpp ./plugins/thread/templates.cpp ./plugins/thread/createthread.h ./plugins/thread/reply.h ./plugins/thread/showthreads.h ./plugins/thread/init.cpp ./plugins/thread/templates.h ./plugins/thread/tdb.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/thread.h ./plugins/thread/tdb.h ../ezc/src/funinfo.h ../ezc/src/patternparser.cpp ../ezc/src/generator.h ../ezc/src/functions.h ../ezc/src/pattern.cpp ../ezc/src/item.cpp ../ezc/src/patternparser.h ../ezc/src/pattern.h ../ezc/src/item.h ../ezc/src/ezc.h ../ezc/src/cache.cpp ../ezc/src/cache.h ../ezc/src/blocks.h ../ezc/src/blocks.cpp ../tito/src/crypto.cpp ../tito/src/misc.h ../tito/src/base64.cpp ../tito/src/crypto.h ../tito/src/aes.cpp ../tito/src/base64.h ../tito/src/misc.cpp ../tito/src/aes.h ../pikotools/mainparser/sample/sample.cpp ../pikotools/mainparser/mainparser.cpp ../pikotools/mainparser/mainparser.h ../pikotools/space/space.h ../pikotools/space/spaceparser.cpp ../pikotools/space/space.cpp ../pikotools/space/spaceparser.h ../pikotools/space/jsontospaceparser.cpp ../pikotools/space/spacetojson.cpp ../pikotools/space/jsontospaceparser.h ../pikotools/space/spacetojson.h ../pikotools/date/date.h ../pikotools/date/date.cpp ../pikotools/membuffer/membuffer.h ../pikotools/utf8/utf8.cpp ../pikotools/utf8/utf8.h ../pikotools/textstream/textstream.h ../pikotools/textstream/types.h ../pikotools/convert/convert.h ../pikotools/convert/inttostr.h \ No newline at end of file diff --git a/core/Makefile.dep b/core/Makefile.dep index 661f991..dd829c4 100644 --- a/core/Makefile.dep +++ b/core/Makefile.dep @@ -40,32 +40,33 @@ app.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h app.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h app.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h image.h app.o: threadmanager.h timezones.h timezone.h sessionmanager.h -app.o: sessioncontainer.h ipbancontainer.h ../../winix/functions/functions.h -app.o: ../../winix/functions/functionbase.h ../../winix/core/request.h -app.o: ../../winix/core/system.h ../../winix/core/synchro.h -app.o: ../../winix/functions/functionparser.h ../../winix/core/cur.h -app.o: ../../winix/functions/account.h ../../winix/functions/adduser.h -app.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h -app.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h -app.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h -app.o: ../../winix/functions/default.h ../../winix/functions/download.h -app.o: ../../winix/functions/emacs.h ../../winix/functions/env.h -app.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h -app.o: ../../winix/functions/login.h ../../winix/functions/logout.h -app.o: ../../winix/functions/ln.h ../../winix/functions/ls.h -app.o: ../../winix/functions/man.h ../../winix/functions/meta.h -app.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h -app.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h -app.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h -app.o: ../../winix/functions/pw.h ../../winix/functions/reload.h -app.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h -app.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h -app.o: ../../winix/functions/stat.h ../../winix/functions/subject.h -app.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h -app.o: ../../winix/functions/uname.h ../../winix/functions/upload.h -app.o: ../../winix/functions/uptime.h ../../winix/functions/who.h -app.o: ../../winix/functions/vim.h ../../winix/core/htmlfilter.h -app.o: ../../winix/templates/templates.h +app.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h +app.o: ../../tito/src/base64.h ../../tito/src/aes.h +app.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h +app.o: ../../winix/core/request.h ../../winix/core/system.h +app.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h +app.o: ../../winix/core/cur.h ../../winix/functions/account.h +app.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h +app.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h +app.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h +app.o: ../../winix/functions/cp.h ../../winix/functions/default.h +app.o: ../../winix/functions/download.h ../../winix/functions/emacs.h +app.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h +app.o: ../../winix/functions/last.h ../../winix/functions/login.h +app.o: ../../winix/functions/logout.h ../../winix/functions/ln.h +app.o: ../../winix/functions/ls.h ../../winix/functions/man.h +app.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h +app.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h +app.o: ../../winix/functions/node.h ../../winix/functions/passwd.h +app.o: ../../winix/functions/priv.h ../../winix/functions/pw.h +app.o: ../../winix/functions/reload.h ../../winix/functions/rm.h +app.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h +app.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h +app.o: ../../winix/functions/subject.h ../../winix/functions/template.h +app.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h +app.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h +app.o: ../../winix/functions/who.h ../../winix/functions/vim.h +app.o: ../../winix/core/htmlfilter.h ../../winix/templates/templates.h app.o: ../../winix/templates/patterncacher.h app.o: ../../winix/templates/indexpatterns.h ../../winix/templates/patterns.h app.o: ../../winix/templates/changepatterns.h @@ -121,6 +122,7 @@ config.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h config.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h config.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h config.o: timezone.h sessionmanager.h sessioncontainer.h ipbancontainer.h +config.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h config.o: ../../winix/functions/functions.h config.o: ../../winix/functions/functionbase.h ../../winix/core/request.h config.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -274,6 +276,7 @@ image.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h image.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h image.o: threadmanager.h timezones.h timezone.h plugin.h pluginmsg.h image.o: sessionmanager.h sessioncontainer.h ipbancontainer.h +image.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h image.o: ../../winix/functions/functions.h image.o: ../../winix/functions/functionbase.h ../../winix/core/request.h image.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -363,6 +366,7 @@ job.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h job.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h groups.h job.o: group.h loadavg.h image.h threadmanager.h timezones.h timezone.h job.o: sessionmanager.h sessioncontainer.h ipbancontainer.h +job.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h job.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h job.o: ../../winix/core/request.h ../../winix/core/system.h job.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h @@ -541,6 +545,7 @@ mounts.o: lastcontainer.h mountparser.h plugin.h pluginmsg.h system.h job.h mounts.o: basethread.h synchro.h crypt.h run.h users.h groups.h group.h mounts.o: loadavg.h image.h threadmanager.h timezones.h timezone.h mounts.o: sessionmanager.h sessioncontainer.h ipbancontainer.h +mounts.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h mounts.o: ../../winix/functions/functions.h mounts.o: ../../winix/functions/functionbase.h ../../winix/core/request.h mounts.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -604,7 +609,8 @@ plugin.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h plugin.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h plugin.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h plugin.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h -plugin.o: sessioncontainer.h ipbancontainer.h +plugin.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h +plugin.o: ../../tito/src/base64.h ../../tito/src/aes.h plugin.o: ../../winix/functions/functions.h plugin.o: ../../winix/functions/functionbase.h ../../winix/core/request.h plugin.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -672,7 +678,8 @@ plugindata.o: ../../winix/notify/templatesnotify.h ../../winix/core/config.h plugindata.o: ../../winix/core/users.h ugcontainer.h lastcontainer.h mounts.h plugindata.o: mountparser.h crypt.h run.h users.h groups.h group.h loadavg.h plugindata.o: image.h threadmanager.h timezones.h timezone.h sessionmanager.h -plugindata.o: sessioncontainer.h ipbancontainer.h +plugindata.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h +plugindata.o: ../../tito/src/base64.h ../../tito/src/aes.h plugindata.o: ../../winix/functions/functions.h plugindata.o: ../../winix/functions/functionbase.h ../../winix/core/request.h plugindata.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -768,6 +775,7 @@ request.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h request.o: lastcontainer.h mounts.h mountparser.h crypt.h run.h users.h request.o: groups.h group.h loadavg.h image.h threadmanager.h timezones.h request.o: timezone.h sessionmanager.h sessioncontainer.h ipbancontainer.h +request.o: sessionidmanager.h ../../tito/src/base64.h ../../tito/src/aes.h request.o: ../../winix/functions/functions.h request.o: ../../winix/functions/functionbase.h ../../winix/core/request.h request.o: ../../winix/core/system.h ../../winix/core/synchro.h @@ -839,6 +847,23 @@ sessioncontainer.o: ../../winix/core/textstream.h misc.h sessioncontainer.o: ../../pikotools/utf8/utf8.h winix_const.h sessioncontainer.o: ../../pikotools/space/spacetojson.h mount.h log.h sessioncontainer.o: logmanipulators.h slog.h ../../winix/templates/locale.h +sessionidmanager.o: sessionidmanager.h ../../tito/src/base64.h +sessionidmanager.o: ../../pikotools/space/space.h +sessionidmanager.o: ../../pikotools/textstream/types.h ../../tito/src/aes.h +sessionidmanager.o: ../../pikotools/space/spaceparser.h +sessionidmanager.o: ../../pikotools/space/space.h ../../pikotools/utf8/utf8.h +sessionidmanager.o: ../../pikotools/date/date.h log.h textstream.h +sessionidmanager.o: logmanipulators.h ../../pikotools/textstream/textstream.h +sessionidmanager.o: ../../pikotools/convert/convert.h +sessionidmanager.o: ../../pikotools/convert/inttostr.h +sessionidmanager.o: ../../pikotools/membuffer/membuffer.h +sessionidmanager.o: ../../pikotools/textstream/types.h slog.h cur.h request.h +sessionidmanager.o: requesttypes.h item.h error.h config.h htmlfilter.h +sessionidmanager.o: ../../winix/templates/htmltextstream.h +sessionidmanager.o: ../../winix/core/textstream.h misc.h winix_const.h +sessionidmanager.o: ../../pikotools/space/spacetojson.h session.h user.h +sessionidmanager.o: plugindata.h rebus.h ipban.h mount.h +sessionidmanager.o: ../../winix/templates/locale.h sessionmanager.o: sessionmanager.h sessioncontainer.h session.h item.h sessionmanager.o: ../../pikotools/space/space.h sessionmanager.o: ../../pikotools/textstream/types.h @@ -879,7 +904,9 @@ sessionmanager.o: ../../winix/notify/templatesnotify.h sessionmanager.o: ../../winix/core/config.h ../../winix/core/users.h sessionmanager.o: ugcontainer.h mounts.h mountparser.h crypt.h run.h users.h sessionmanager.o: groups.h group.h loadavg.h image.h threadmanager.h -sessionmanager.o: timezones.h timezone.h sessionparser.h plugin.h pluginmsg.h +sessionmanager.o: timezones.h timezone.h sessionidmanager.h +sessionmanager.o: ../../tito/src/base64.h ../../tito/src/aes.h +sessionmanager.o: sessionparser.h plugin.h pluginmsg.h sessionmanager.o: ../../winix/functions/functions.h sessionmanager.o: ../../winix/functions/functionbase.h sessionmanager.o: ../../winix/core/request.h ../../winix/core/system.h @@ -1013,7 +1040,8 @@ system.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h system.o: ../../winix/functions/uname.h ../../winix/functions/upload.h system.o: ../../winix/functions/uptime.h ../../winix/functions/who.h system.o: ../../winix/functions/vim.h plugin.h pluginmsg.h sessionmanager.h -system.o: sessioncontainer.h ipbancontainer.h +system.o: sessioncontainer.h ipbancontainer.h sessionidmanager.h +system.o: ../../tito/src/base64.h ../../tito/src/aes.h threadmanager.o: threadmanager.h basethread.h synchro.h log.h textstream.h threadmanager.o: logmanipulators.h ../../pikotools/textstream/textstream.h threadmanager.o: ../../pikotools/space/space.h @@ -1088,7 +1116,8 @@ users.o: ../../ezc/src/patternparser.h ../../winix/notify/notifythread.h users.o: ../../winix/core/basethread.h ../../winix/notify/templatesnotify.h users.o: ../../winix/core/config.h ../../winix/core/users.h ugcontainer.h users.o: mounts.h mountparser.h crypt.h run.h groups.h group.h loadavg.h -users.o: image.h threadmanager.h timezones.h timezone.h plugin.h pluginmsg.h +users.o: image.h threadmanager.h timezones.h timezone.h sessionidmanager.h +users.o: ../../tito/src/base64.h ../../tito/src/aes.h plugin.h pluginmsg.h users.o: ../../winix/functions/functions.h users.o: ../../winix/functions/functionbase.h ../../winix/core/request.h users.o: ../../winix/core/system.h ../../winix/core/synchro.h diff --git a/core/Makefile.o.dep b/core/Makefile.o.dep index 37046d1..89b027e 100644 --- a/core/Makefile.o.dep +++ b/core/Makefile.o.dep @@ -1 +1 @@ -o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o crypt.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o image.o ipbancontainer.o item.o job.o lastcontainer.o loadavg.o lock.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o run.o session.o sessioncontainer.o sessionmanager.o sessionparser.o slog.o synchro.o system.o threadmanager.o timezone.o timezones.o user.o users.o +o = acceptbaseparser.o app.o basethread.o bbcodeparser.o compress.o config.o crypt.o dircontainer.o dirs.o groups.o htmlfilter.o httpsimpleparser.o image.o ipbancontainer.o item.o job.o lastcontainer.o loadavg.o lock.o log.o misc.o mount.o mountparser.o mounts.o plugin.o plugindata.o postmultiparser.o rebus.o request.o run.o session.o sessioncontainer.o sessionidmanager.o sessionmanager.o sessionparser.o slog.o synchro.o system.o threadmanager.o timezone.o timezones.o user.o users.o diff --git a/core/app.cpp b/core/app.cpp index 25ed590..33822c3 100644 --- a/core/app.cpp +++ b/core/app.cpp @@ -221,8 +221,10 @@ bool App::Init() // init notify after templates (it uses locales from templates) system.notify.ReadTemplates(); - session_manager.InitBanList(); + session_manager.InitTmpSession(); + session_manager.InitBanList(); + session_manager.InitCookieEncoding(); session_manager.LoadSessions(); CreateStaticTree(); @@ -860,25 +862,35 @@ void App::CheckKonqueror() - - void App::PrepareSessionCookie() { if( !cur.session || cur.session->id==0 ) return; + if( config.session_cookie_encode ) + { + if( !session_manager.EncodeSessionId(cur.session->id, cur.session->id_index, cookie_id_string) ) + Toa(cur.session->id, cookie_id_string); + } + else + { + Toa(cur.session->id, cookie_id_string); + } + + if( !cur.session->puser || !cur.session->remember_me ) { - cur.request->AddCookie(config.http_session_id_name, cur.session->id); + cur.request->AddCookie(config.http_session_id_name, cookie_id_string); } else { PT::Date expires = cur.request->start_time + config.session_remember_max_idle; - cur.request->AddCookie(config.http_session_id_name, cur.session->id, expires); + cur.request->AddCookie(config.http_session_id_name, cookie_id_string, expires); } } + bool App::AddHeader(const wchar_t * name, const wchar_t * value) { if( !cur.request->out_headers.GetValue(name) ) diff --git a/core/app.h b/core/app.h index 968207e..a7ecfc3 100644 --- a/core/app.h +++ b/core/app.h @@ -155,6 +155,7 @@ private: std::wstring html_filtered; std::string output_8bit; BinaryPage compressed_output; + std::wstring cookie_id_string; bool InitFCGI(char * sock, char * sock_user, char * sock_group); bool InitFCGIChmodChownSocket(char * sock, char * sock_user, char * sock_group); diff --git a/core/config.cpp b/core/config.cpp index ecb7298..1b855b3 100644 --- a/core/config.cpp +++ b/core/config.cpp @@ -216,6 +216,11 @@ void Config::AssignValues(bool stdout_is_closed) session_remember_max_idle = Int(L"session_remember_max_idle", 16070400); // 3 months session_file = Text(L"session_file"); session_max = Size(L"session_max", 1000000); + session_cookie_encode = Bool(L"session_cookie_encode", false); + session_keys_file = Text(L"session_keys_file"); + session_allow_index_difference = Size(L"session_allow_index_difference", 8); + session_index_time_increment = Long(L"session_index_time_increment", 30); + session_key_renew_time = Size(L"session_key_renew_time", 172800); // 2 days compression = Bool(L"compression", true); compression_page_min_size = Size(L"compression_page_min_size", 512); @@ -323,6 +328,12 @@ void Config::SetAdditionalVariables() locale_files.push_back(L"en"); upload_group_int = GetGroupId(upload_group); + + if( session_cookie_encode && session_keys_file.empty() ) + session_cookie_encode = false; + + if( session_index_time_increment < 0 ) + session_index_time_increment = 0; } diff --git a/core/config.h b/core/config.h index e24bf5a..3fded31 100644 --- a/core/config.h +++ b/core/config.h @@ -203,6 +203,36 @@ public: // default: 1000000 (one milion) size_t session_max; + // whether or not we should encode the session cookie + // (we have a special algorithm) + // default: false + bool session_cookie_encode; + + // if session_cookie_encode is true then you should provide + // a file where AES keys will be stored + std::wstring session_keys_file; + + // each session has an index -- an unsigned int value + // this value is sent in the cookie string (is encoded) + // and is incremented when session_index_time_increment time is passed since the last incrementing + // if a client sent the cookie back the difference between + // current index and the index in the cookie should be less than or equal to session_allow_index_difference + // default: 8 + size_t session_allow_index_difference; + + // the time which should pass after the session index is incremented + // default: 30 + // (session_allow_index_difference + 1) * session_index_time_increment should be less than a time + // load of a page and all elements on it such as images (of course it depends on client's download too) + time_t session_index_time_increment; + + // time in seconds after a new AES key pair should be generated + // we have 256 pairs of keys so this time multiplied by 256 should not be less than + // the max time of a session (session_remember_max_idle), + // by default: 256 * 2 days = 512 days = 1.4 year > 3 months (session_remember_max_idle) + // default: 172800 = 2 days (max: 2678400 = 1 month, min: 10) + size_t session_key_renew_time; + // allow the winix output to be compressed // default: true bool compression; diff --git a/core/loadavg.cpp b/core/loadavg.cpp index e1b58b9..19d4911 100644 --- a/core/loadavg.cpp +++ b/core/loadavg.cpp @@ -201,8 +201,12 @@ void LoadAvg::StartRequest() + + void LoadAvg::StopRequest() { +char buf[50]; + clock_gettime(CLOCK_REALTIME, &stop_req); double dr = (stop_req.tv_sec - start_req.tv_sec); @@ -216,7 +220,10 @@ void LoadAvg::StopRequest() current5.req += 1; current15.req += 1; - log << log2 << "LA: request took: " << dr << "s" << logend; + sprintf(buf, "%f", dr); + SetNonZeroDigitsAfterComma(buf, 2); + + log << log2 << "LA: request took: " << buf << "s" << logend; was_stop_request = true; } diff --git a/core/misc.cpp b/core/misc.cpp index de1eff3..763e727 100644 --- a/core/misc.cpp +++ b/core/misc.cpp @@ -236,6 +236,43 @@ size_t len = sizeof(buffer) / sizeof(wchar_t); +void SetNonZeroDigitsAfterComma(char * str, size_t digits) +{ +bool was_comma = false; +bool was_not_zero = false; +size_t zeroes = 0; +size_t not_zeroes = 0; + + for(size_t i=0 ; str[i] != 0 ; ++i) + { + if( str[i] == '.' || str[i] == ',' ) + { + was_comma = true; + } + else + if( was_comma ) + { + if( str[i] == '0' && !was_not_zero ) + { + zeroes += 1; + } + else + { + was_not_zero = true; + not_zeroes += 1; + + if( not_zeroes >= digits ) + { + str[i+1] = 0; + break; + } + } + } + } +} + + + bool CorrectUrlChar(wchar_t c) { diff --git a/core/misc.h b/core/misc.h index b4a69b3..c111474 100644 --- a/core/misc.h +++ b/core/misc.h @@ -214,6 +214,20 @@ void Toa(int value, std::wstring & res, int base = 10, bool clear = true); void Toa(long value, std::wstring & res, int base = 10, bool clear = true); +/* + * this method make sure that there is no more than 'digits' non zero digits + * in the given string + * + * + * samples (if parameter 'digits' is equal to two): + * "0.0001234" -> "0.00012" + * "10" -> "10" + * "123.345" -> "123.34" + * "55.1003" -> "55.10" + * + */ +void SetNonZeroDigitsAfterComma(char * str, size_t digits); + bool CorrectUrlChar(wchar_t c); void CorrectUrlDots(std::wstring & url); diff --git a/core/session.cpp b/core/session.cpp index c37a1fd..570be81 100644 --- a/core/session.cpp +++ b/core/session.cpp @@ -89,18 +89,20 @@ void Session::SetTimesTo(time_t time) // clear_plugin_data is used when clearing the temporary session void Session::Clear(bool clear_plugin_data) { - id = 0; - puser = 0; - rebus_item = 0; - rebus_checked = false; - remember_me = false; - new_session = true; - spam_score = 0; - remove_me = false; + id = 0; + id_index = 0; + id_index_changed = 0; + puser = 0; + rebus_item = 0; + rebus_checked = false; + remember_me = false; + new_session = true; + spam_score = 0; + remove_me = false; - start_time = 0; - last_time = 0; - last_time_get = 0; + start_time = 0; + last_time = 0; + last_time_get = 0; start_date.Clear(); last_date.Clear(); diff --git a/core/session.h b/core/session.h index d207b37..fd8429f 100644 --- a/core/session.h +++ b/core/session.h @@ -67,6 +67,13 @@ struct Session // 0 - means that there is a temporary session long id; + // a session index + // incremented each time a request to this session is made + unsigned int id_index; + + // the last time when id_index was incremented + time_t id_index_changed; + // true if the session was created now bool new_session; diff --git a/core/sessionidmanager.cpp b/core/sessionidmanager.cpp new file mode 100644 index 0000000..8840ef6 --- /dev/null +++ b/core/sessionidmanager.cpp @@ -0,0 +1,561 @@ +/* + * This file is a part of Winix + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2014, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include +#include +#include "sessionidmanager.h" +#include "space/spaceparser.h" +#include "utf8/utf8.h" +#include "date/date.h" +#include "log.h" +#include "misc.h" + + +namespace Winix +{ + + +SessionIdManager::SessionIdManager() +{ + algorithm_type = 'a'; + key_tab_size = 256; + key_index = 0; + last_key_generated = 0; + key_renew_time = 60; + was_inited = false; +} + + +void SessionIdManager::Init(const std::wstring & keys_file) +{ + was_inited = true; + + key_tab1.resize(key_tab_size); + key_tab2.resize(key_tab_size); + + aes1.resize(key_tab_size); + aes2.resize(key_tab_size); + + key_file_name = keys_file; + ReadKeysFromFile(key_file_name); +} + + +void SessionIdManager::SetKeyRenewTime(time_t renew_time) +{ + key_renew_time = renew_time; + + if( key_renew_time < 10 ) + key_renew_time = 10; + + time_t one_month = 60 * 60 * 24 * 31; + + if( key_renew_time > one_month ) + key_renew_time = one_month; +} + + +void SessionIdManager::ReadKey(const wchar_t * name, PT::Space & space, std::vector & dest_key) +{ +std::vector keys; +std::string key_ascii, key_base64_decoded; + + space.ListText(name, keys); + + for(size_t i=0 ; i= 256 ) + key_index = 0; + + if( date.Parse(space.Text(L"last_key_generated", L"0")) ) + last_key_generated = date.ToTime(); + + ReadKey(L"key_tab1", space, key_tab1); + ReadKey(L"key_tab2", space, key_tab2); + InitializeAesKeys(); + } + else + { + log << log1 << "SIM: I cannot read the session keys from: " << file << logend; + } + +return status == PT::SpaceParser::ok; +} + + + +bool SessionIdManager::ReadKeysFromFile(const std::wstring & file) +{ + return ReadKeysFromFile(file.c_str()); +} + + + +void SessionIdManager::SaveKeysToFile(std::vector & keys) +{ + out_file << "(\n"; + + for(size_t i=0 ; i= key_tab_size ) + key_index = 0; + + log << log2 << "SIM: generating new AES keys with index: " << key_index << logend; + + GenerateKeys(key_index, cur_utc_time); + } +} + + + +void SessionIdManager::RandPadding(size_t & pad_top_size, char & pad_top_value, + size_t & pad_bottom_size, char & pad_bottom_value) +{ + pad_top_size = (std::rand() * 5) / RAND_MAX; // multiply by 5 (not by 4) + + if( pad_top_size > 4 ) + pad_top_size = 4; + + pad_top_size += 5; // now pad_top_size is from <5;9> + pad_top_value = (char)std::rand(); + + pad_bottom_size = 14 - pad_top_size; // pad_bottom_size is from <5;9> too + pad_bottom_value = (char)std::rand(); +} + + + +void SessionIdManager::AppendSum(std::string & str) +{ +int s = 0; + + for(size_t i=0 ; i 9 ) + return false; + + for(size_t i=0 ; i + */ + +/* + * Copyright (c) 2014, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef headerfile_winix_core_sessionidmanager +#define headerfile_winix_core_sessionidmanager + +#include +#include +#include +#include +#include "base64.h" +#include "space/space.h" +#include "aes.h" + + +namespace Winix +{ + + +/* + * this class is used to encode/decode the session cookie + * in which there is a session id and a session's index + * + * session index is incremented each time a request comes to this session + * + * format of the encoded token: + * 1 byte - algorithm type, currently only one algorithm: 'a' + * 1 byte - an AES keys pair index + * ---- below everything is encoded by AES (two 128 bits blocks, first block + * is encoded by the first key and the second block is encoded by the second key) ------ + * 1 byte - top padding value + * 1 byte - bottom padding value + * 1 byte - top padding size + * 1 byte - bottom padding size + * 5-9 bytes - top padding + * 8 bytes - the session id + * 4 bytes - the session index + * 5-9 bytes - bottom padding (bottom_padding_size = 14 - top_padding_size) + * 1 byte - the sum of all previous bytes + * 1 byte - the xor of all previous bytes (with the previous sum too) + * + * and at the end everyting is base64 encoded + * + * + */ +class SessionIdManager +{ +public: + + SessionIdManager(); + + /* + * initialization + * this method takes about 1MB memory more (for AES key expansions) + * if you do not need the session cookie to be enrypted then don't call this method + * + */ + void Init(const std::wstring & keys_file); + + /* + * how often a new AES key pairs should be generated + */ + void SetKeyRenewTime(time_t renew_time); + + /* + * encode/decode the session cookie + * make sure the Init() method is called first + */ + bool EncodeToken(size_t id, unsigned int index, time_t cur_utc_time, std::wstring & token); + bool DecodeToken(const std::wstring & token, size_t & id, unsigned int & index); + + +private: + + bool was_inited; + char algorithm_type; + std::string string_token, string_token_base64; + std::vector key_tab1, key_tab2; + size_t key_index; + time_t last_key_generated; + time_t key_renew_time; + Tito::Base64 base64; + size_t key_tab_size; + std::ofstream out_file; + std::string tmp_key_base64_encoded; + std::wstring key_file_name; + std::string file_name_ascii; + std::vector aes1, aes2; + + bool ReadKeysFromFile(const wchar_t * file); + bool ReadKeysFromFile(const std::wstring & file); + bool SaveKeysToFile(const wchar_t * file); + bool SaveKeysToFile(const std::wstring & file); + void ReadKey(const wchar_t * name, PT::Space & space, std::vector & dest_key); + bool AreKeysCorrect(size_t index); + void GenerateKeys(size_t index, time_t cur_utc_time); + void CheckKeys(time_t cur_utc_time); + void GenerateKey(std::string & key, time_t cur_utc_time); + void SaveKeysToFile(std::vector & keys); + void InitializeAesKeys(); + void RandPadding(size_t & pad_top_size, char & pad_top_value, size_t & pad_bottom_size, char & pad_bottom_value); + void AppendSum(std::string & str); + void AppendXor(std::string & str); + void CopyString(const std::string & in, std::wstring & out); + void CopyString(const std::wstring & in, std::string & out); + bool Encode(std::string & str); + bool DecodeTokenA(size_t & id, unsigned int & index); + bool IsPaddingCorrect(const char * str, size_t len, char val); + bool CheckControlSums(const char * str); + void InitializeAesKeys(size_t index); + bool DecodeAES(const char * str, size_t key); + + template + void Append(std::string & str, Value val); + + template + void Read(const char * str, Value & val); + +}; + + + +template +void SessionIdManager::Append(std::string & str, Value val) +{ + int move = sizeof(Value) * 8 - 8; + int v; + + do + { + if( move > 0 ) + v = ((val >> move) & 0xff); + else + v = val & 0xff; + + str += (unsigned char)v; + move -= 8; + } + while( move >= 0 ); +} + + + +template +void SessionIdManager::Read(const char * str, Value & val) +{ + val = 0; + + for(size_t i=0 ; i +#include #include "sessionmanager.h" #include "request.h" #include "log.h" @@ -85,12 +86,26 @@ void SessionManager::SetLastContainer(LastContainer * plast_container) } + void SessionManager::InitBanList() { ban_tab.SetMaxSize(config->ban_list_soft_max_size, config->ban_list_max_size); } +void SessionManager::InitCookieEncoding() +{ + if( config->session_cookie_encode && !config->session_keys_file.empty() ) + session_id_manager.Init(config->session_keys_file); + + session_id_manager.SetKeyRenewTime(config->session_key_renew_time); +} + + + + + + size_t SessionManager::Size() { return session_tab.Size(); @@ -106,6 +121,11 @@ return true; } +bool SessionManager::EncodeSessionId(long id, unsigned int index, std::wstring & str) +{ + return session_id_manager.EncodeToken((size_t)id, index, cur->request->start_time, str); +} + long SessionManager::CreateSessionId() { @@ -162,13 +182,14 @@ SessionContainer::Iterator i = session_tab.End(); session = &(*i); session->new_session = true; session->SetTimesTo(cur->request->start_time); + session->id_index = (unsigned int)session->id; + session->id_index += std::rand(); log << log2 << "SM: created a new session: " << session->id << logend; } else { // there is a problem with generating a new session id - // we do not set a session cookie log << log1 << "SM: cannot create a session id (temporary used: with id 0)" << logend; SetTemporarySession(); } @@ -184,36 +205,111 @@ void SessionManager::SetTemporarySession() } - -bool SessionManager::SetSessionFromCookie(const std::wstring & cookie) +unsigned int SessionManager::SetSessionCalcDifference(Session & ses, unsigned int index) { - long id = Tol(cookie.c_str()); +unsigned int difference; + + if( index > ses.id_index ) + difference = std::numeric_limits::max() - index + ses.id_index + 1; + else + difference = ses.id_index - index; + +return difference; +} + + +void SessionManager::SetSessionPutLogInfo(Session & ses, bool has_index, unsigned int difference) +{ + log << log2 << "SM: session: " << ses.id; + + if( has_index ) + log << ", index difference: " << (size_t)difference; + + if( ses.puser ) + log << log2 << ", user: " << ses.puser->name << ", id: " << ses.puser->id; + + log << log2 << logend; +} + + + +bool SessionManager::SetSessionFromCookie(long id, bool has_index, unsigned int index) +{ +unsigned int difference = 0; + SessionContainer::Iterator s = session_tab.FindById(id); - if( s == session_tab.End() || s->remove_me ) + if( s == session_tab.End() ) + { + log << log3 << "SM: there is no a session with id: " << id << logend; return false; + } + + if( s->remove_me ) + { + log << log3 << "SM: session: " << id << " is marked for removing" << logend; + return false; + } + if( has_index ) + { + difference = SetSessionCalcDifference(*s, index); + + if( (size_t)difference > config->session_allow_index_difference ) + { + log << log2 << "SM: an incorrect session index for session: " << id + << ", index difference: " << (size_t)difference << logend; + return false; + } + } + // that session is in the table session = &(*s); session->new_session = false; session->last_time = cur->request->start_time; - session->last_date = cur->request->start_time; + session->last_date = cur->request->start_date; + + if( session->id_index_changed + config->session_index_time_increment < cur->request->start_time ) + { + session->id_index += 1; + session->id_index_changed = cur->request->start_time; + } if( cur->request->method == Request::get ) session->last_time_get = cur->request->start_time; - log << log2 << "SM: session: " << session->id; - - if( session->puser ) - log << log2 << ", user: " << session->puser->name << ", id: " << session->puser->id; - - log << log2 << logend; + SetSessionPutLogInfo(*session, has_index, difference); return true; } + +bool SessionManager::SetSessionFromCookie(const std::wstring & cookie) +{ + if( config->session_cookie_encode ) + { + size_t id; + unsigned int index; + + if( !session_id_manager.DecodeToken(cookie, id, index) ) + { + log << log2 << "SM: an incorrect cookie string was sent" << logend; + return false; + } + + return SetSessionFromCookie((long)id, true, index); + } + else + { + long id = Tol(cookie.c_str()); + return SetSessionFromCookie(id, false, 0); + } +} + + + void SessionManager::SetSession() { current_ip_ban = ban_tab.FindIP(cur->request->ip); @@ -426,7 +522,8 @@ char file_path[WINIX_OS_PATH_SIZE]; if( i->id != 0 && i->puser && !i->remove_me ) { file << i->id << ' ' << i->puser->id << ' ' << i->remember_me << ' '; - file << (long)i->start_time << ' ' << (long)i->last_time << std::endl; + file << (long)i->start_time << ' ' << (long)i->last_time << ' '; + file << i->id_index << std::endl; ++len; } diff --git a/core/sessionmanager.h b/core/sessionmanager.h index c38d58e..3c55df8 100644 --- a/core/sessionmanager.h +++ b/core/sessionmanager.h @@ -46,6 +46,7 @@ #include "system.h" #include "synchro.h" #include "basethread.h" +#include "sessionidmanager.h" @@ -73,8 +74,10 @@ public: void DeleteSessions(); // deleting all sessions bool ChangeSessionId(long old_id); - void InitBanList(); void InitTmpSession(); + void InitBanList(); + void InitCookieEncoding(); + void UninitTmpSession(); Session * GetTmpSession(); @@ -95,6 +98,10 @@ public: void RemoveIPBan(int ip); void ClearIPBanList(); + + bool EncodeSessionId(long id, unsigned int index, std::wstring & str); + + private: Config * config; @@ -114,12 +121,18 @@ private: // session with id 0 Session temporary_session; + SessionIdManager session_id_manager; + bool IsSession(long s); + long CreateSessionId(); void CreateSession(); + bool SetSessionFromCookie(long id, bool has_index, unsigned int index); bool SetSessionFromCookie(const std::wstring & cookie); void SetTemporarySession(); + unsigned int SetSessionCalcDifference(Session & ses, unsigned int index); + void SetSessionPutLogInfo(Session & ses, bool has_index, unsigned int difference); // second thread int deleted; diff --git a/core/sessionparser.cpp b/core/sessionparser.cpp index 23ea5ab..29cf121 100644 --- a/core/sessionparser.cpp +++ b/core/sessionparser.cpp @@ -129,6 +129,7 @@ void SessionParser::MakeSession(long id, long user_id, SessionContainer & contai i->remember_me = ReadLong(); i->start_time = ReadLong(); i->last_time = ReadLong(); + i->id_index = ReadLong(); i->start_date = i->start_time; i->last_date = i->last_time; // !! IMPROVE ME we do not save last_time_get diff --git a/functions/Makefile.dep b/functions/Makefile.dep index a50b893..6e3f7c8 100644 --- a/functions/Makefile.dep +++ b/functions/Makefile.dep @@ -109,7 +109,8 @@ adduser.o: ../../winix/core/pluginmsg.h ../../winix/core/system.h adduser.o: ../../winix/core/sessionmanager.h adduser.o: ../../winix/core/sessioncontainer.h adduser.o: ../../winix/core/ipbancontainer.h -adduser.o: ../../winix/functions/functions.h +adduser.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +adduser.o: ../../tito/src/aes.h ../../winix/functions/functions.h adduser.o: ../../winix/templates/templates.h adduser.o: ../../winix/templates/patterncacher.h adduser.o: ../../winix/templates/indexpatterns.h @@ -365,8 +366,10 @@ cp.o: ../../winix/core/timezones.h ../../winix/core/synchro.h cp.o: ../../winix/core/misc.h ../../winix/core/plugin.h cp.o: ../../winix/core/pluginmsg.h ../../winix/core/system.h cp.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h -cp.o: ../../winix/core/ipbancontainer.h ../../winix/functions/functions.h -cp.o: ../../winix/templates/templates.h ../../winix/templates/patterncacher.h +cp.o: ../../winix/core/ipbancontainer.h ../../winix/core/sessionidmanager.h +cp.o: ../../tito/src/base64.h ../../tito/src/aes.h +cp.o: ../../winix/functions/functions.h ../../winix/templates/templates.h +cp.o: ../../winix/templates/patterncacher.h cp.o: ../../winix/templates/indexpatterns.h ../../winix/templates/patterns.h cp.o: ../../winix/templates/changepatterns.h cp.o: ../../winix/templates/htmltextstream.h @@ -752,7 +755,8 @@ functions.o: ../../winix/core/pluginmsg.h ../../winix/core/system.h functions.o: ../../winix/core/sessionmanager.h functions.o: ../../winix/core/sessioncontainer.h functions.o: ../../winix/core/ipbancontainer.h -functions.o: ../../winix/functions/functions.h +functions.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +functions.o: ../../tito/src/aes.h ../../winix/functions/functions.h functions.o: ../../winix/templates/templates.h functions.o: ../../winix/templates/patterncacher.h functions.o: ../../winix/templates/indexpatterns.h @@ -1313,7 +1317,9 @@ mkdir.o: ../../winix/core/timezones.h ../../winix/core/synchro.h mkdir.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h mkdir.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h mkdir.o: ../../winix/core/sessioncontainer.h -mkdir.o: ../../winix/core/ipbancontainer.h ../../winix/functions/functions.h +mkdir.o: ../../winix/core/ipbancontainer.h +mkdir.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +mkdir.o: ../../tito/src/aes.h ../../winix/functions/functions.h mkdir.o: ../../winix/templates/templates.h mkdir.o: ../../winix/templates/patterncacher.h mkdir.o: ../../winix/templates/indexpatterns.h @@ -1420,8 +1426,9 @@ mv.o: ../../winix/core/timezones.h ../../winix/core/synchro.h mv.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h mv.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h mv.o: ../../winix/core/sessioncontainer.h ../../winix/core/ipbancontainer.h -mv.o: ../../winix/functions/functions.h ../../winix/templates/templates.h -mv.o: ../../winix/templates/patterncacher.h +mv.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +mv.o: ../../tito/src/aes.h ../../winix/functions/functions.h +mv.o: ../../winix/templates/templates.h ../../winix/templates/patterncacher.h mv.o: ../../winix/templates/indexpatterns.h ../../winix/templates/patterns.h mv.o: ../../winix/templates/changepatterns.h mv.o: ../../winix/templates/htmltextstream.h @@ -1838,8 +1845,9 @@ rm.o: ../../winix/core/timezones.h ../../winix/core/synchro.h rm.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h rm.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h rm.o: ../../winix/core/sessioncontainer.h ../../winix/core/ipbancontainer.h -rm.o: ../../winix/functions/functions.h ../../winix/templates/templates.h -rm.o: ../../winix/templates/patterncacher.h +rm.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +rm.o: ../../tito/src/aes.h ../../winix/functions/functions.h +rm.o: ../../winix/templates/templates.h ../../winix/templates/patterncacher.h rm.o: ../../winix/templates/indexpatterns.h ../../winix/templates/patterns.h rm.o: ../../winix/templates/changepatterns.h rm.o: ../../winix/templates/htmltextstream.h @@ -1899,7 +1907,9 @@ rmuser.o: ../../winix/core/log.h ../../winix/core/misc.h rmuser.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h rmuser.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h rmuser.o: ../../winix/core/sessioncontainer.h -rmuser.o: ../../winix/core/ipbancontainer.h ../../winix/functions/functions.h +rmuser.o: ../../winix/core/ipbancontainer.h +rmuser.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +rmuser.o: ../../tito/src/aes.h ../../winix/functions/functions.h rmuser.o: ../../winix/templates/templates.h rmuser.o: ../../winix/templates/patterncacher.h rmuser.o: ../../winix/templates/indexpatterns.h @@ -2007,7 +2017,9 @@ sort.o: ../../winix/core/timezones.h ../../winix/core/synchro.h sort.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h sort.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h sort.o: ../../winix/core/sessioncontainer.h ../../winix/core/ipbancontainer.h -sort.o: ../../winix/functions/functions.h ../../winix/templates/templates.h +sort.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +sort.o: ../../tito/src/aes.h ../../winix/functions/functions.h +sort.o: ../../winix/templates/templates.h sort.o: ../../winix/templates/patterncacher.h sort.o: ../../winix/templates/indexpatterns.h sort.o: ../../winix/templates/patterns.h @@ -2175,7 +2187,8 @@ subject.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h subject.o: ../../winix/core/system.h ../../winix/core/sessionmanager.h subject.o: ../../winix/core/sessioncontainer.h subject.o: ../../winix/core/ipbancontainer.h -subject.o: ../../winix/functions/functions.h +subject.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +subject.o: ../../tito/src/aes.h ../../winix/functions/functions.h subject.o: ../../winix/templates/templates.h subject.o: ../../winix/templates/patterncacher.h subject.o: ../../winix/templates/indexpatterns.h @@ -2442,7 +2455,9 @@ upload.o: ../../winix/core/misc.h ../../winix/core/plugin.h upload.o: ../../winix/core/pluginmsg.h ../../winix/core/system.h upload.o: ../../winix/core/sessionmanager.h upload.o: ../../winix/core/sessioncontainer.h -upload.o: ../../winix/core/ipbancontainer.h ../../winix/functions/functions.h +upload.o: ../../winix/core/ipbancontainer.h +upload.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +upload.o: ../../tito/src/aes.h ../../winix/functions/functions.h upload.o: ../../winix/templates/templates.h upload.o: ../../winix/templates/patterncacher.h upload.o: ../../winix/templates/indexpatterns.h diff --git a/main/Makefile.dep b/main/Makefile.dep index 316d21c..04929e7 100644 --- a/main/Makefile.dep +++ b/main/Makefile.dep @@ -45,7 +45,9 @@ main.o: ../../winix/core/group.h ../../winix/core/loadavg.h main.o: ../../winix/core/image.h ../../winix/core/threadmanager.h main.o: ../../winix/core/timezones.h ../../winix/core/timezone.h main.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h -main.o: ../../winix/core/ipbancontainer.h ../../winix/functions/functions.h +main.o: ../../winix/core/ipbancontainer.h ../../winix/core/sessionidmanager.h +main.o: ../../tito/src/base64.h ../../tito/src/aes.h +main.o: ../../winix/functions/functions.h main.o: ../../winix/functions/functionbase.h ../../winix/core/request.h main.o: ../../winix/core/system.h ../../winix/core/synchro.h main.o: ../../winix/functions/functionparser.h ../../winix/core/cur.h diff --git a/notify/Makefile.dep b/notify/Makefile.dep index 7f6f7d6..337d170 100644 --- a/notify/Makefile.dep +++ b/notify/Makefile.dep @@ -52,10 +52,11 @@ notify.o: ../../winix/core/timezones.h ../../winix/core/timezone.h notify.o: ../../winix/core/sessionmanager.h notify.o: ../../winix/core/sessioncontainer.h notify.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -notify.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -notify.o: ../../winix/core/dirs.h ../../winix/core/plugin.h -notify.o: ../../winix/core/pluginmsg.h ../../winix/core/sessionmanager.h -notify.o: ../../winix/functions/functions.h +notify.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +notify.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +notify.o: ../../winix/core/request.h ../../winix/core/dirs.h +notify.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h +notify.o: ../../winix/core/sessionmanager.h ../../winix/functions/functions.h notify.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h notify.o: ../../winix/functions/functionparser.h notify.o: ../../winix/functions/account.h ../../winix/functions/adduser.h @@ -224,5 +225,7 @@ templatesnotify.o: ../../winix/templates/changepatterns.h templatesnotify.o: ../../winix/core/sessionmanager.h templatesnotify.o: ../../winix/core/sessioncontainer.h templatesnotify.o: ../../winix/core/ipbancontainer.h -templatesnotify.o: ../../winix/core/lastcontainer.h ../../winix/core/misc.h -templatesnotify.o: ../../winix/core/winix_const.h +templatesnotify.o: ../../winix/core/lastcontainer.h +templatesnotify.o: ../../winix/core/sessionidmanager.h +templatesnotify.o: ../../tito/src/base64.h ../../tito/src/aes.h +templatesnotify.o: ../../winix/core/misc.h ../../winix/core/winix_const.h diff --git a/plugins/export/Makefile.dep b/plugins/export/Makefile.dep index a9e1a3f..4d52cb6 100644 --- a/plugins/export/Makefile.dep +++ b/plugins/export/Makefile.dep @@ -222,7 +222,8 @@ init.o: ../../../winix/core/threadmanager.h ../../../winix/core/timezones.h init.o: ../../../winix/core/timezone.h ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h ../../../winix/core/request.h init.o: ../../../winix/core/system.h ../../../winix/core/synchro.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h diff --git a/plugins/gallery/Makefile.dep b/plugins/gallery/Makefile.dep index ad8a58c..d06efd6 100644 --- a/plugins/gallery/Makefile.dep +++ b/plugins/gallery/Makefile.dep @@ -111,7 +111,8 @@ init.o: ../../../winix/core/plugin.h ../../../winix/core/pluginmsg.h init.o: ../../../winix/core/system.h ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h init.o: ../../../winix/functions/account.h ../../../winix/functions/adduser.h @@ -204,6 +205,8 @@ templates.o: ../../../winix/core/pluginmsg.h ../../../winix/core/system.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/functions/functions.h templates.o: ../../../winix/functions/functionbase.h templates.o: ../../../winix/functions/functionparser.h diff --git a/plugins/group/Makefile.dep b/plugins/group/Makefile.dep index 4fe6dc7..355342f 100644 --- a/plugins/group/Makefile.dep +++ b/plugins/group/Makefile.dep @@ -107,7 +107,8 @@ init.o: ../../../winix/core/threadmanager.h ../../../winix/core/timezones.h init.o: ../../../winix/core/timezone.h ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h ../../../winix/core/request.h init.o: ../../../winix/core/system.h ../../../winix/core/synchro.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h @@ -205,6 +206,8 @@ templates.o: ../../../winix/core/pluginmsg.h ../../../winix/core/system.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/functions/functions.h templates.o: ../../../winix/functions/functionbase.h templates.o: ../../../winix/core/request.h ../../../winix/core/synchro.h diff --git a/plugins/menu/Makefile.dep b/plugins/menu/Makefile.dep index d7065f8..30fb679 100644 --- a/plugins/menu/Makefile.dep +++ b/plugins/menu/Makefile.dep @@ -91,7 +91,8 @@ init.o: ../../../winix/core/threadmanager.h ../../../winix/core/timezones.h init.o: ../../../winix/core/timezone.h ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h ../../../winix/core/request.h init.o: ../../../winix/core/system.h ../../../winix/core/synchro.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h @@ -190,6 +191,8 @@ templates.o: ../../../winix/core/timezones.h ../../../winix/core/timezone.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/functions/functions.h templates.o: ../../../winix/functions/functionbase.h templates.o: ../../../winix/core/request.h ../../../winix/core/synchro.h diff --git a/plugins/stats/Makefile.dep b/plugins/stats/Makefile.dep index 7165892..96c9e4b 100644 --- a/plugins/stats/Makefile.dep +++ b/plugins/stats/Makefile.dep @@ -54,7 +54,8 @@ init.o: ../../../winix/core/timezones.h ../../../winix/core/timezone.h init.o: ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h ../../../winix/core/system.h init.o: ../../../winix/core/synchro.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h @@ -167,6 +168,8 @@ templates.o: ../../../winix/core/timezones.h ../../../winix/core/timezone.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/functions/functions.h templates.o: ../../../winix/functions/functionbase.h templates.o: ../../../winix/core/request.h ../../../winix/core/system.h diff --git a/plugins/thread/Makefile.dep b/plugins/thread/Makefile.dep index c6554d3..8980a66 100644 --- a/plugins/thread/Makefile.dep +++ b/plugins/thread/Makefile.dep @@ -218,7 +218,8 @@ init.o: pluginmsg.h ../../../winix/core/system.h init.o: ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/functions/functions.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h init.o: ../../../winix/functions/functionbase.h init.o: ../../../winix/functions/functionparser.h ../../../winix/core/cur.h init.o: ../../../winix/functions/account.h ../../../winix/functions/adduser.h @@ -277,7 +278,8 @@ reply.o: ../../../winix/core/sessioncontainer.h reply.o: ../../../winix/core/ipbancontainer.h reply.o: ../../../winix/core/lastcontainer.h ../../../winix/core/synchro.h reply.o: ../../../winix/core/basethread.h -reply.o: ../../../winix/functions/functions.h +reply.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +reply.o: ../../../tito/src/aes.h ../../../winix/functions/functions.h reply.o: ../../../winix/functions/functionbase.h reply.o: ../../../winix/functions/functionparser.h ../../../winix/db/db.h reply.o: ../../../winix/db/dbbase.h ../../../winix/db/dbconn.h @@ -465,6 +467,8 @@ templates.o: pluginmsg.h ../../../winix/core/system.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/functions/functions.h templates.o: ../../../winix/functions/functionbase.h templates.o: ../../../winix/functions/functionparser.h @@ -567,6 +571,8 @@ threadinfo.o: ../../../winix/core/system.h threadinfo.o: ../../../winix/core/sessionmanager.h threadinfo.o: ../../../winix/core/sessioncontainer.h threadinfo.o: ../../../winix/core/ipbancontainer.h +threadinfo.o: ../../../winix/core/sessionidmanager.h +threadinfo.o: ../../../tito/src/base64.h ../../../tito/src/aes.h threadinfo.o: ../../../winix/functions/functions.h threadinfo.o: ../../../winix/functions/functionbase.h threadinfo.o: ../../../winix/functions/functionparser.h diff --git a/plugins/ticket/Makefile.dep b/plugins/ticket/Makefile.dep index e296dad..5d8426f 100644 --- a/plugins/ticket/Makefile.dep +++ b/plugins/ticket/Makefile.dep @@ -65,6 +65,8 @@ createticket.o: ../../../winix/core/timezone.h createticket.o: ../../../winix/core/sessionmanager.h createticket.o: ../../../winix/core/sessioncontainer.h createticket.o: ../../../winix/core/ipbancontainer.h +createticket.o: ../../../winix/core/sessionidmanager.h +createticket.o: ../../../tito/src/base64.h ../../../tito/src/aes.h createticket.o: ../../../winix/functions/functions.h createticket.o: ../../../winix/functions/functionbase.h createticket.o: ../../../winix/core/request.h ../../../winix/core/system.h @@ -222,6 +224,8 @@ editticket.o: ../../../winix/core/timezones.h editticket.o: ../../../winix/core/sessionmanager.h editticket.o: ../../../winix/core/sessioncontainer.h editticket.o: ../../../winix/core/ipbancontainer.h +editticket.o: ../../../winix/core/sessionidmanager.h +editticket.o: ../../../tito/src/base64.h ../../../tito/src/aes.h editticket.o: ../../../winix/templates/templates.h editticket.o: ../../../winix/templates/patterncacher.h editticket.o: ../../../winix/templates/indexpatterns.h @@ -324,6 +328,8 @@ funticket.o: ../../../winix/core/timezones.h funticket.o: ../../../winix/core/sessionmanager.h funticket.o: ../../../winix/core/sessioncontainer.h funticket.o: ../../../winix/core/ipbancontainer.h +funticket.o: ../../../winix/core/sessionidmanager.h +funticket.o: ../../../tito/src/base64.h ../../../tito/src/aes.h funticket.o: ../../../winix/templates/templates.h funticket.o: ../../../winix/templates/patterncacher.h funticket.o: ../../../winix/templates/indexpatterns.h @@ -412,7 +418,8 @@ init.o: ../../../winix/core/threadmanager.h ../../../winix/core/timezones.h init.o: ../../../winix/core/sessionmanager.h init.o: ../../../winix/core/sessioncontainer.h init.o: ../../../winix/core/ipbancontainer.h -init.o: ../../../winix/templates/templates.h +init.o: ../../../winix/core/sessionidmanager.h ../../../tito/src/base64.h +init.o: ../../../tito/src/aes.h ../../../winix/templates/templates.h init.o: ../../../winix/templates/patterncacher.h init.o: ../../../winix/templates/indexpatterns.h init.o: ../../../winix/templates/patterns.h @@ -532,6 +539,8 @@ showtickets.o: ../../../winix/core/timezones.h showtickets.o: ../../../winix/core/sessionmanager.h showtickets.o: ../../../winix/core/sessioncontainer.h showtickets.o: ../../../winix/core/ipbancontainer.h +showtickets.o: ../../../winix/core/sessionidmanager.h +showtickets.o: ../../../tito/src/base64.h ../../../tito/src/aes.h showtickets.o: ../../../winix/templates/templates.h showtickets.o: ../../../winix/templates/patterncacher.h showtickets.o: ../../../winix/templates/indexpatterns.h @@ -637,6 +646,8 @@ templates.o: ../../../winix/core/timezones.h templates.o: ../../../winix/core/sessionmanager.h templates.o: ../../../winix/core/sessioncontainer.h templates.o: ../../../winix/core/ipbancontainer.h +templates.o: ../../../winix/core/sessionidmanager.h +templates.o: ../../../tito/src/base64.h ../../../tito/src/aes.h templates.o: ../../../winix/templates/templates.h templates.o: ../../../winix/templates/patterncacher.h templates.o: ../../../winix/templates/indexpatterns.h @@ -749,6 +760,8 @@ ticketinfo.o: ../../../winix/core/timezones.h ticketinfo.o: ../../../winix/core/sessionmanager.h ticketinfo.o: ../../../winix/core/sessioncontainer.h ticketinfo.o: ../../../winix/core/ipbancontainer.h +ticketinfo.o: ../../../winix/core/sessionidmanager.h +ticketinfo.o: ../../../tito/src/base64.h ../../../tito/src/aes.h ticketinfo.o: ../../../winix/templates/templates.h ticketinfo.o: ../../../winix/templates/patterncacher.h ticketinfo.o: ../../../winix/templates/indexpatterns.h diff --git a/templates/Makefile.dep b/templates/Makefile.dep index 843b163..cb4e241 100644 --- a/templates/Makefile.dep +++ b/templates/Makefile.dep @@ -49,7 +49,9 @@ adduser.o: ../../winix/core/timezones.h ../../winix/core/timezone.h adduser.o: ../../winix/core/sessionmanager.h adduser.o: ../../winix/core/sessioncontainer.h adduser.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -adduser.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h +adduser.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +adduser.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +adduser.o: ../../winix/core/request.h changepatterns.o: changepatterns.h patterns.h locale.h changepatterns.o: ../../pikotools/space/spaceparser.h changepatterns.o: ../../pikotools/space/space.h @@ -114,7 +116,8 @@ config.o: ../../winix/core/timezones.h ../../winix/core/timezone.h config.o: ../../winix/core/sessionmanager.h config.o: ../../winix/core/sessioncontainer.h config.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -config.o: ../../winix/core/htmlfilter.h +config.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +config.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h dir.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h dir.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h dir.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -160,31 +163,32 @@ dir.o: ../../winix/core/image.h ../../winix/core/threadmanager.h dir.o: ../../winix/core/timezones.h ../../winix/core/timezone.h dir.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h dir.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -dir.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -dir.o: ../../winix/core/winix_const.h ../../winix/functions/functions.h -dir.o: ../../winix/functions/functionbase.h ../../winix/core/request.h -dir.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h -dir.o: ../../winix/functions/account.h ../../winix/functions/adduser.h -dir.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h -dir.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h -dir.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h -dir.o: ../../winix/functions/default.h ../../winix/functions/download.h -dir.o: ../../winix/functions/emacs.h ../../winix/functions/env.h -dir.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h -dir.o: ../../winix/functions/login.h ../../winix/functions/logout.h -dir.o: ../../winix/functions/ln.h ../../winix/functions/ls.h -dir.o: ../../winix/functions/man.h ../../winix/functions/meta.h -dir.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h -dir.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h -dir.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h -dir.o: ../../winix/functions/pw.h ../../winix/functions/reload.h -dir.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h -dir.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h -dir.o: ../../winix/functions/stat.h ../../winix/functions/subject.h -dir.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h -dir.o: ../../winix/functions/uname.h ../../winix/functions/upload.h -dir.o: ../../winix/functions/uptime.h ../../winix/functions/who.h -dir.o: ../../winix/functions/vim.h miscspace.h +dir.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +dir.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +dir.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +dir.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h +dir.o: ../../winix/core/request.h ../../winix/core/synchro.h +dir.o: ../../winix/functions/functionparser.h ../../winix/functions/account.h +dir.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h +dir.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h +dir.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h +dir.o: ../../winix/functions/cp.h ../../winix/functions/default.h +dir.o: ../../winix/functions/download.h ../../winix/functions/emacs.h +dir.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h +dir.o: ../../winix/functions/last.h ../../winix/functions/login.h +dir.o: ../../winix/functions/logout.h ../../winix/functions/ln.h +dir.o: ../../winix/functions/ls.h ../../winix/functions/man.h +dir.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h +dir.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h +dir.o: ../../winix/functions/node.h ../../winix/functions/passwd.h +dir.o: ../../winix/functions/priv.h ../../winix/functions/pw.h +dir.o: ../../winix/functions/reload.h ../../winix/functions/rm.h +dir.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h +dir.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h +dir.o: ../../winix/functions/subject.h ../../winix/functions/template.h +dir.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h +dir.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h +dir.o: ../../winix/functions/who.h ../../winix/functions/vim.h miscspace.h doc.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h doc.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h doc.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -230,8 +234,10 @@ doc.o: ../../winix/core/image.h ../../winix/core/threadmanager.h doc.o: ../../winix/core/timezones.h ../../winix/core/timezone.h doc.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h doc.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -doc.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -doc.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +doc.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +doc.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +doc.o: ../../winix/core/request.h ../../winix/core/misc.h +doc.o: ../../winix/core/winix_const.h env.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h env.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h env.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -277,31 +283,32 @@ env.o: ../../winix/core/image.h ../../winix/core/threadmanager.h env.o: ../../winix/core/timezones.h ../../winix/core/timezone.h env.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h env.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -env.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -env.o: ../../winix/core/winix_const.h ../../winix/functions/functions.h -env.o: ../../winix/functions/functionbase.h ../../winix/core/request.h -env.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h -env.o: ../../winix/functions/account.h ../../winix/functions/adduser.h -env.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h -env.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h -env.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h -env.o: ../../winix/functions/default.h ../../winix/functions/download.h -env.o: ../../winix/functions/emacs.h ../../winix/functions/env.h -env.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h -env.o: ../../winix/functions/login.h ../../winix/functions/logout.h -env.o: ../../winix/functions/ln.h ../../winix/functions/ls.h -env.o: ../../winix/functions/man.h ../../winix/functions/meta.h -env.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h -env.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h -env.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h -env.o: ../../winix/functions/pw.h ../../winix/functions/reload.h -env.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h -env.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h -env.o: ../../winix/functions/stat.h ../../winix/functions/subject.h -env.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h -env.o: ../../winix/functions/uname.h ../../winix/functions/upload.h -env.o: ../../winix/functions/uptime.h ../../winix/functions/who.h -env.o: ../../winix/functions/vim.h +env.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +env.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +env.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +env.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h +env.o: ../../winix/core/request.h ../../winix/core/synchro.h +env.o: ../../winix/functions/functionparser.h ../../winix/functions/account.h +env.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h +env.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h +env.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h +env.o: ../../winix/functions/cp.h ../../winix/functions/default.h +env.o: ../../winix/functions/download.h ../../winix/functions/emacs.h +env.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h +env.o: ../../winix/functions/last.h ../../winix/functions/login.h +env.o: ../../winix/functions/logout.h ../../winix/functions/ln.h +env.o: ../../winix/functions/ls.h ../../winix/functions/man.h +env.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h +env.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h +env.o: ../../winix/functions/node.h ../../winix/functions/passwd.h +env.o: ../../winix/functions/priv.h ../../winix/functions/pw.h +env.o: ../../winix/functions/reload.h ../../winix/functions/rm.h +env.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h +env.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h +env.o: ../../winix/functions/subject.h ../../winix/functions/template.h +env.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h +env.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h +env.o: ../../winix/functions/who.h ../../winix/functions/vim.h filters.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h filters.o: ../../ezc/src/blocks.h ../../ezc/src/item.h filters.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -351,8 +358,9 @@ filters.o: ../../winix/core/timezones.h ../../winix/core/timezone.h filters.o: ../../winix/core/sessionmanager.h filters.o: ../../winix/core/sessioncontainer.h filters.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -filters.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -filters.o: ../../winix/core/winix_const.h +filters.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +filters.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +filters.o: ../../winix/core/misc.h ../../winix/core/winix_const.h generic.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h generic.o: ../../ezc/src/blocks.h ../../ezc/src/item.h generic.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -402,8 +410,10 @@ generic.o: ../../winix/core/timezones.h ../../winix/core/timezone.h generic.o: ../../winix/core/sessionmanager.h generic.o: ../../winix/core/sessioncontainer.h generic.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -generic.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -generic.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +generic.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +generic.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +generic.o: ../../winix/core/request.h ../../winix/core/misc.h +generic.o: ../../winix/core/winix_const.h htmltextstream.o: htmltextstream.h ../../winix/core/textstream.h misc.h htmltextstream.o: localefilter.h locale.h ../../pikotools/space/spaceparser.h htmltextstream.o: ../../pikotools/space/space.h @@ -486,8 +496,10 @@ insert.o: ../../winix/core/timezones.h ../../winix/core/timezone.h insert.o: ../../winix/core/sessionmanager.h insert.o: ../../winix/core/sessioncontainer.h insert.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -insert.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -insert.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +insert.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +insert.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +insert.o: ../../winix/core/request.h ../../winix/core/misc.h +insert.o: ../../winix/core/winix_const.h ipban.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h ipban.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h ipban.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -535,9 +547,10 @@ ipban.o: ../../winix/core/timezones.h ../../winix/core/timezone.h ipban.o: ../../winix/core/sessionmanager.h ipban.o: ../../winix/core/sessioncontainer.h ipban.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -ipban.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -ipban.o: ../../winix/core/misc.h ../../winix/core/winix_const.h -ipban.o: ../../winix/functions/functions.h +ipban.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +ipban.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +ipban.o: ../../winix/core/request.h ../../winix/core/misc.h +ipban.o: ../../winix/core/winix_const.h ../../winix/functions/functions.h ipban.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h ipban.o: ../../winix/functions/functionparser.h ipban.o: ../../winix/functions/account.h ../../winix/functions/adduser.h @@ -606,9 +619,11 @@ item.o: ../../winix/core/image.h ../../winix/core/threadmanager.h item.o: ../../winix/core/timezones.h ../../winix/core/timezone.h item.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h item.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -item.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -item.o: ../../winix/core/misc.h ../../winix/core/winix_const.h -item.o: ../../winix/core/bbcodeparser.h miscspace.h +item.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +item.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +item.o: ../../winix/core/request.h ../../winix/core/misc.h +item.o: ../../winix/core/winix_const.h ../../winix/core/bbcodeparser.h +item.o: miscspace.h last.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h last.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h last.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -654,8 +669,10 @@ last.o: ../../winix/core/image.h ../../winix/core/threadmanager.h last.o: ../../winix/core/timezones.h ../../winix/core/timezone.h last.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h last.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -last.o: ../../winix/core/htmlfilter.h ../core/lastcontainer.h -last.o: ../core/request.h ../core/misc.h ../../winix/core/winix_const.h +last.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +last.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +last.o: ../core/lastcontainer.h ../core/request.h ../core/misc.h +last.o: ../../winix/core/winix_const.h locale.o: locale.h ../../pikotools/space/spaceparser.h locale.o: ../../pikotools/space/space.h ../../pikotools/textstream/types.h locale.o: ../../pikotools/textstream/textstream.h @@ -733,7 +750,9 @@ login.o: ../../winix/core/timezones.h ../../winix/core/timezone.h login.o: ../../winix/core/sessionmanager.h login.o: ../../winix/core/sessioncontainer.h login.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -login.o: ../../winix/core/htmlfilter.h ../../winix/functions/functions.h +login.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +login.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +login.o: ../../winix/functions/functions.h login.o: ../../winix/functions/functionbase.h ../../winix/core/request.h login.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h login.o: ../../winix/functions/account.h ../../winix/functions/adduser.h @@ -802,7 +821,9 @@ ls.o: ../../winix/core/image.h ../../winix/core/threadmanager.h ls.o: ../../winix/core/timezones.h ../../winix/core/timezone.h ls.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h ls.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -ls.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h +ls.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +ls.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +ls.o: ../../winix/core/request.h man.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h man.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h man.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -848,31 +869,32 @@ man.o: ../../winix/core/image.h ../../winix/core/threadmanager.h man.o: ../../winix/core/timezones.h ../../winix/core/timezone.h man.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h man.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -man.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -man.o: ../../winix/core/misc.h ../../winix/core/winix_const.h -man.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h -man.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h -man.o: ../../winix/functions/account.h ../../winix/functions/adduser.h -man.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h -man.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h -man.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h -man.o: ../../winix/functions/default.h ../../winix/functions/download.h -man.o: ../../winix/functions/emacs.h ../../winix/functions/env.h -man.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h -man.o: ../../winix/functions/login.h ../../winix/functions/logout.h -man.o: ../../winix/functions/ln.h ../../winix/functions/ls.h -man.o: ../../winix/functions/man.h ../../winix/functions/meta.h -man.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h -man.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h -man.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h -man.o: ../../winix/functions/pw.h ../../winix/functions/reload.h -man.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h -man.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h -man.o: ../../winix/functions/stat.h ../../winix/functions/subject.h -man.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h -man.o: ../../winix/functions/uname.h ../../winix/functions/upload.h -man.o: ../../winix/functions/uptime.h ../../winix/functions/who.h -man.o: ../../winix/functions/vim.h +man.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +man.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +man.o: ../../winix/core/request.h ../../winix/core/misc.h +man.o: ../../winix/core/winix_const.h ../../winix/functions/functions.h +man.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h +man.o: ../../winix/functions/functionparser.h ../../winix/functions/account.h +man.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h +man.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h +man.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h +man.o: ../../winix/functions/cp.h ../../winix/functions/default.h +man.o: ../../winix/functions/download.h ../../winix/functions/emacs.h +man.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h +man.o: ../../winix/functions/last.h ../../winix/functions/login.h +man.o: ../../winix/functions/logout.h ../../winix/functions/ln.h +man.o: ../../winix/functions/ls.h ../../winix/functions/man.h +man.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h +man.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h +man.o: ../../winix/functions/node.h ../../winix/functions/passwd.h +man.o: ../../winix/functions/priv.h ../../winix/functions/pw.h +man.o: ../../winix/functions/reload.h ../../winix/functions/rm.h +man.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h +man.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h +man.o: ../../winix/functions/subject.h ../../winix/functions/template.h +man.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h +man.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h +man.o: ../../winix/functions/who.h ../../winix/functions/vim.h misc.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h misc.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h misc.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -918,8 +940,10 @@ misc.o: ../../winix/core/image.h ../../winix/core/threadmanager.h misc.o: ../../winix/core/timezones.h ../../winix/core/timezone.h misc.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h misc.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -misc.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -misc.o: ../../winix/core/winix_const.h ../../winix/core/request.h +misc.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +misc.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +misc.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +misc.o: ../../winix/core/request.h miscspace.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h miscspace.o: ../../ezc/src/blocks.h ../../ezc/src/item.h miscspace.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -969,7 +993,8 @@ miscspace.o: ../../winix/core/timezones.h ../../winix/core/timezone.h miscspace.o: ../../winix/core/sessionmanager.h miscspace.o: ../../winix/core/sessioncontainer.h miscspace.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -miscspace.o: ../../winix/core/htmlfilter.h +miscspace.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +miscspace.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h mount.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h mount.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h mount.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1017,8 +1042,10 @@ mount.o: ../../winix/core/timezones.h ../../winix/core/timezone.h mount.o: ../../winix/core/sessionmanager.h mount.o: ../../winix/core/sessioncontainer.h mount.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -mount.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -mount.o: ../../winix/core/winix_const.h ../../winix/core/mounts.h +mount.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +mount.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +mount.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +mount.o: ../../winix/core/mounts.h passwd.o: ../../winix/core/request.h templates.h ../../ezc/src/ezc.h passwd.o: ../../ezc/src/generator.h ../../ezc/src/blocks.h passwd.o: ../../ezc/src/item.h ../../ezc/src/funinfo.h @@ -1068,7 +1095,8 @@ passwd.o: ../../winix/core/timezones.h ../../winix/core/timezone.h passwd.o: ../../winix/core/sessionmanager.h passwd.o: ../../winix/core/sessioncontainer.h passwd.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -passwd.o: ../../winix/core/htmlfilter.h +passwd.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +passwd.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h patterncacher.o: patterncacher.h ../../winix/core/item.h patterncacher.o: ../../pikotools/space/space.h ../../pikotools/date/date.h patterncacher.o: misc.h localefilter.h locale.h @@ -1151,9 +1179,10 @@ priv.o: ../../winix/core/image.h ../../winix/core/threadmanager.h priv.o: ../../winix/core/timezones.h ../../winix/core/timezone.h priv.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h priv.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -priv.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -priv.o: ../../winix/core/misc.h ../../winix/core/winix_const.h -priv.o: ../../winix/functions/functions.h +priv.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +priv.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +priv.o: ../../winix/core/request.h ../../winix/core/misc.h +priv.o: ../../winix/core/winix_const.h ../../winix/functions/functions.h priv.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h priv.o: ../../winix/functions/functionparser.h priv.o: ../../winix/functions/account.h ../../winix/functions/adduser.h @@ -1225,7 +1254,8 @@ rebus.o: ../../winix/core/timezones.h ../../winix/core/timezone.h rebus.o: ../../winix/core/sessionmanager.h rebus.o: ../../winix/core/sessioncontainer.h rebus.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -rebus.o: ../../winix/core/htmlfilter.h +rebus.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +rebus.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h slog.o: ../../winix/core/slog.h ../../winix/core/cur.h slog.o: ../../winix/core/logmanipulators.h ../../winix/templates/locale.h slog.o: ../../pikotools/textstream/textstream.h ../../pikotools/space/space.h @@ -1271,7 +1301,9 @@ slog.o: ../../winix/core/loadavg.h ../../winix/core/image.h slog.o: ../../winix/core/threadmanager.h ../../winix/core/timezones.h slog.o: ../../winix/core/timezone.h ../../winix/core/sessionmanager.h slog.o: ../../winix/core/sessioncontainer.h ../../winix/core/ipbancontainer.h -slog.o: ../../winix/core/system.h ../../winix/core/htmlfilter.h +slog.o: ../../winix/core/system.h ../../winix/core/sessionidmanager.h +slog.o: ../../tito/src/base64.h ../../tito/src/aes.h +slog.o: ../../winix/core/htmlfilter.h stat.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h stat.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h stat.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1317,8 +1349,10 @@ stat.o: ../../winix/core/image.h ../../winix/core/threadmanager.h stat.o: ../../winix/core/timezones.h ../../winix/core/timezone.h stat.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h stat.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -stat.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -stat.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +stat.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +stat.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +stat.o: ../../winix/core/request.h ../../winix/core/misc.h +stat.o: ../../winix/core/winix_const.h sys.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h sys.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h sys.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1364,32 +1398,34 @@ sys.o: ../../winix/core/image.h ../../winix/core/threadmanager.h sys.o: ../../winix/core/timezones.h ../../winix/core/timezone.h sys.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h sys.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -sys.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -sys.o: ../../winix/core/version.h ../../winix/core/plugin.h -sys.o: ../../winix/core/pluginmsg.h ../../winix/core/sessionmanager.h -sys.o: ../../winix/functions/functions.h ../../winix/functions/functionbase.h -sys.o: ../../winix/core/synchro.h ../../winix/functions/functionparser.h -sys.o: ../../winix/functions/account.h ../../winix/functions/adduser.h -sys.o: ../../winix/functions/cat.h ../../winix/functions/chmod.h -sys.o: ../../winix/functions/privchanger.h ../../winix/functions/chown.h -sys.o: ../../winix/functions/ckeditor.h ../../winix/functions/cp.h -sys.o: ../../winix/functions/default.h ../../winix/functions/download.h -sys.o: ../../winix/functions/emacs.h ../../winix/functions/env.h -sys.o: ../../winix/functions/imgcrop.h ../../winix/functions/last.h -sys.o: ../../winix/functions/login.h ../../winix/functions/logout.h -sys.o: ../../winix/functions/ln.h ../../winix/functions/ls.h -sys.o: ../../winix/functions/man.h ../../winix/functions/meta.h -sys.o: ../../winix/functions/mkdir.h ../../winix/functions/mv.h -sys.o: ../../winix/functions/nicedit.h ../../winix/functions/node.h -sys.o: ../../winix/functions/passwd.h ../../winix/functions/priv.h -sys.o: ../../winix/functions/pw.h ../../winix/functions/reload.h -sys.o: ../../winix/functions/rm.h ../../winix/functions/rmuser.h -sys.o: ../../winix/functions/sort.h ../../winix/functions/specialdefault.h -sys.o: ../../winix/functions/stat.h ../../winix/functions/subject.h -sys.o: ../../winix/functions/template.h ../../winix/functions/tinymce.h -sys.o: ../../winix/functions/uname.h ../../winix/functions/upload.h -sys.o: ../../winix/functions/uptime.h ../../winix/functions/who.h -sys.o: ../../winix/functions/vim.h ../../winix/templates/templates.h +sys.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +sys.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +sys.o: ../../winix/core/request.h ../../winix/core/version.h +sys.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h +sys.o: ../../winix/core/sessionmanager.h ../../winix/functions/functions.h +sys.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h +sys.o: ../../winix/functions/functionparser.h ../../winix/functions/account.h +sys.o: ../../winix/functions/adduser.h ../../winix/functions/cat.h +sys.o: ../../winix/functions/chmod.h ../../winix/functions/privchanger.h +sys.o: ../../winix/functions/chown.h ../../winix/functions/ckeditor.h +sys.o: ../../winix/functions/cp.h ../../winix/functions/default.h +sys.o: ../../winix/functions/download.h ../../winix/functions/emacs.h +sys.o: ../../winix/functions/env.h ../../winix/functions/imgcrop.h +sys.o: ../../winix/functions/last.h ../../winix/functions/login.h +sys.o: ../../winix/functions/logout.h ../../winix/functions/ln.h +sys.o: ../../winix/functions/ls.h ../../winix/functions/man.h +sys.o: ../../winix/functions/meta.h ../../winix/functions/mkdir.h +sys.o: ../../winix/functions/mv.h ../../winix/functions/nicedit.h +sys.o: ../../winix/functions/node.h ../../winix/functions/passwd.h +sys.o: ../../winix/functions/priv.h ../../winix/functions/pw.h +sys.o: ../../winix/functions/reload.h ../../winix/functions/rm.h +sys.o: ../../winix/functions/rmuser.h ../../winix/functions/sort.h +sys.o: ../../winix/functions/specialdefault.h ../../winix/functions/stat.h +sys.o: ../../winix/functions/subject.h ../../winix/functions/template.h +sys.o: ../../winix/functions/tinymce.h ../../winix/functions/uname.h +sys.o: ../../winix/functions/upload.h ../../winix/functions/uptime.h +sys.o: ../../winix/functions/who.h ../../winix/functions/vim.h +sys.o: ../../winix/templates/templates.h template.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h template.o: ../../ezc/src/blocks.h ../../ezc/src/item.h template.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -1439,8 +1475,9 @@ template.o: ../../winix/core/timezones.h ../../winix/core/timezone.h template.o: ../../winix/core/sessionmanager.h template.o: ../../winix/core/sessioncontainer.h template.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -template.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -template.o: ../../winix/core/winix_const.h +template.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +template.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +template.o: ../../winix/core/misc.h ../../winix/core/winix_const.h templates.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h templates.o: ../../ezc/src/blocks.h ../../ezc/src/item.h templates.o: ../../ezc/src/funinfo.h ../../ezc/src/functions.h @@ -1490,9 +1527,11 @@ templates.o: ../../winix/core/timezones.h ../../winix/core/timezone.h templates.o: ../../winix/core/sessionmanager.h templates.o: ../../winix/core/sessioncontainer.h templates.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -templates.o: ../../winix/core/htmlfilter.h ../../winix/core/misc.h -templates.o: ../../winix/core/winix_const.h ../../winix/core/plugin.h -templates.o: ../../winix/core/pluginmsg.h ../../winix/core/sessionmanager.h +templates.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +templates.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +templates.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +templates.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h +templates.o: ../../winix/core/sessionmanager.h templates.o: ../../winix/functions/functions.h templates.o: ../../winix/functions/functionbase.h ../../winix/core/request.h templates.o: ../../winix/core/synchro.h @@ -1583,7 +1622,8 @@ upload.o: ../../winix/core/timezones.h ../../winix/core/timezone.h upload.o: ../../winix/core/sessionmanager.h upload.o: ../../winix/core/sessioncontainer.h upload.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -upload.o: ../../winix/core/htmlfilter.h +upload.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +upload.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h uptime.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h uptime.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h uptime.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1632,7 +1672,8 @@ uptime.o: ../../winix/core/timezones.h ../../winix/core/timezone.h uptime.o: ../../winix/core/sessionmanager.h uptime.o: ../../winix/core/sessioncontainer.h uptime.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -uptime.o: ../../winix/core/htmlfilter.h +uptime.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +uptime.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h user.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h user.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h user.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1678,8 +1719,10 @@ user.o: ../../winix/core/image.h ../../winix/core/threadmanager.h user.o: ../../winix/core/timezones.h ../../winix/core/timezone.h user.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h user.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -user.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -user.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +user.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +user.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +user.o: ../../winix/core/request.h ../../winix/core/misc.h +user.o: ../../winix/core/winix_const.h who.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h who.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h who.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1725,8 +1768,10 @@ who.o: ../../winix/core/image.h ../../winix/core/threadmanager.h who.o: ../../winix/core/timezones.h ../../winix/core/timezone.h who.o: ../../winix/core/sessionmanager.h ../../winix/core/sessioncontainer.h who.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -who.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -who.o: ../../winix/core/misc.h ../../winix/core/winix_const.h +who.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +who.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +who.o: ../../winix/core/request.h ../../winix/core/misc.h +who.o: ../../winix/core/winix_const.h winix.o: templates.h ../../ezc/src/ezc.h ../../ezc/src/generator.h winix.o: ../../ezc/src/blocks.h ../../ezc/src/item.h ../../ezc/src/funinfo.h winix.o: ../../ezc/src/functions.h ../../pikotools/utf8/utf8.h @@ -1774,9 +1819,11 @@ winix.o: ../../winix/core/timezones.h ../../winix/core/timezone.h winix.o: ../../winix/core/sessionmanager.h winix.o: ../../winix/core/sessioncontainer.h winix.o: ../../winix/core/ipbancontainer.h ../../winix/core/system.h -winix.o: ../../winix/core/htmlfilter.h ../../winix/core/request.h -winix.o: ../../winix/core/plugin.h ../../winix/core/pluginmsg.h -winix.o: ../../winix/core/sessionmanager.h ../../winix/functions/functions.h +winix.o: ../../winix/core/sessionidmanager.h ../../tito/src/base64.h +winix.o: ../../tito/src/aes.h ../../winix/core/htmlfilter.h +winix.o: ../../winix/core/request.h ../../winix/core/plugin.h +winix.o: ../../winix/core/pluginmsg.h ../../winix/core/sessionmanager.h +winix.o: ../../winix/functions/functions.h winix.o: ../../winix/functions/functionbase.h ../../winix/core/synchro.h winix.o: ../../winix/functions/functionparser.h winix.o: ../../winix/functions/account.h ../../winix/functions/adduser.h