diff --git a/winixd/Makefile.dep b/winixd/Makefile.dep index 439e563..ff37d62 100644 --- a/winixd/Makefile.dep +++ b/winixd/Makefile.dep @@ -1 +1 @@ -winix.src.files = ./core/app.h ./core/basethread.cpp ./core/app.cpp ./core/config.cpp ./core/config.h ./core/header.h ./core/basethread.h ./core/request.cpp ./core/compress.cpp ./core/compress.h ./core/crypt.cpp ./core/dircontainer.cpp ./core/cookieparser.h ./core/crypt.h ./core/cur.h ./core/winixmodeldeprecated.cpp ./core/dircontainer.h ./core/dirs.cpp ./core/dirs.h ./core/error.h ./core/filelog.cpp ./core/filelog.h ./core/groups.cpp ./core/groups.h ./core/httpsimpleparser.cpp ./core/httpsimpleparser.h ./core/image.cpp ./core/image.h ./core/ipban.h ./core/ipbancontainer.cpp ./core/ipbancontainer.h ./core/job.cpp ./core/job.h ./core/lastcontainer.cpp ./core/lastcontainer.h ./core/loadavg.cpp ./core/loadavg.h ./core/lock.h ./core/lock.cpp ./core/log.cpp ./core/log.h ./core/logmanipulators.h ./core/misc.cpp ./core/misc.h ./core/mount.cpp ./core/mount.h ./core/mountparser.cpp ./core/mountparser.h ./core/mounts.cpp ./core/mounts.h ./core/plugin.cpp ./core/plugin.h ./core/plugindata.cpp ./core/plugindata.h ./core/pluginmsg.h ./core/postmultiparser.cpp ./core/postmultiparser.h ./core/postparser.h ./core/rebus.cpp ./core/rebus.h ./core/request.h ./core/requesttypes.h ./core/run.cpp ./core/run.h ./core/session.cpp ./core/session.h ./core/sessioncontainer.cpp ./core/sessioncontainer.h ./core/sessionidmanager.cpp ./core/sessionidmanager.h ./core/sessionmanager.cpp ./core/sessionmanager.h ./core/sessionparser.cpp ./core/sessionparser.h ./core/slog.cpp ./core/slog.h ./core/synchro.cpp ./core/synchro.h ./core/system.cpp ./core/system.h ./core/textstream.h ./core/threadmanager.cpp ./core/timezone.h ./core/threadmanager.h ./core/timezone.cpp ./core/timezones.cpp ./core/timezones.h ./core/ugcontainer.h ./core/users.cpp ./core/users.h ./core/version.h ./core/winix_const.h ./core/winixbase.cpp ./core/winixbase.h ./core/winixrequest.cpp ./core/winixrequest.h ./core/winixsystem.cpp ./core/winixsystem.h ./core/winixmodeldeprecated.h ./db/db.cpp ./db/db.h ./db/dbbase.cpp ./db/dbbase.h ./db/dbconn.cpp ./db/dbconn.h ./db/dbtextstream.cpp ./db/dbtextstream.h ./functions/account.cpp ./functions/account.h ./functions/adduser.cpp ./functions/adduser.h ./functions/cat.cpp ./functions/cat.h ./functions/chmod.cpp ./functions/chmod.h ./functions/chown.cpp ./functions/chown.h ./functions/ckeditor.cpp ./functions/ckeditor.h ./functions/cp.cpp ./functions/cp.h ./functions/default.cpp ./functions/default.h ./functions/download.cpp ./functions/download.h ./functions/emacs.cpp ./functions/emacs.h ./functions/env.cpp ./functions/env.h ./functions/functionbase.cpp ./functions/functionbase.h ./functions/functionparser.cpp ./functions/functionparser.h ./functions/functions.cpp ./functions/functions.h ./functions/imgcrop.cpp ./functions/imgcrop.h ./functions/ipban.cpp ./functions/ipban.h ./functions/last.cpp ./functions/last.h ./functions/ln.cpp ./functions/ln.h ./functions/locale.cpp ./functions/locale.h ./functions/login.cpp ./functions/login.h ./functions/logout.cpp ./functions/logout.h ./functions/ls.cpp ./functions/ls.h ./functions/man.cpp ./functions/man.h ./functions/meta.cpp ./functions/meta.h ./functions/mkdir.cpp ./functions/mkdir.h ./functions/mount.cpp ./functions/mount.h ./functions/mv.cpp ./functions/mv.h ./functions/nicedit.cpp ./functions/nicedit.h ./functions/node.cpp ./functions/node.h ./functions/passwd.cpp ./functions/passwd.h ./functions/priv.cpp ./functions/priv.h ./functions/privchanger.cpp ./functions/privchanger.h ./functions/pw.cpp ./functions/pw.h ./functions/reload.cpp ./functions/reload.h ./functions/rm.cpp ./functions/rm.h ./functions/rmuser.cpp ./functions/rmuser.h ./functions/run.cpp ./functions/run.h ./functions/sort.cpp ./functions/sort.h ./functions/specialdefault.cpp ./functions/specialdefault.h ./functions/stat.cpp ./functions/stat.h ./functions/subject.cpp ./functions/subject.h ./functions/template.cpp ./functions/template.h ./functions/timezone.cpp ./functions/timezone.h ./functions/tinymce.cpp ./functions/tinymce.h ./functions/uname.cpp ./functions/uname.h ./functions/upload.cpp ./functions/upload.h ./functions/uptime.cpp ./functions/uptime.h ./functions/vim.cpp ./functions/vim.h ./functions/who.cpp ./functions/who.h ./main/main.cpp ./models/group.cpp ./models/group.h ./models/item.cpp ./models/item.h ./models/itemcontent.cpp ./models/itemcontent.h ./models/migration.cpp ./models/migration.h ./models/user.cpp ./models/user.h ./models/userwrapper.h ./models/winixmodel.cpp ./models/winixmodel.h ./models/winixmodelconnector.cpp ./models/winixmodelconnector.h ./notify/notify.cpp ./notify/notify.h ./notify/notifypool.cpp ./notify/notifypool.h ./notify/notifythread.cpp ./notify/notifythread.h ./notify/templatesnotify.cpp ./notify/templatesnotify.h ./plugins/export/edb.cpp ./plugins/export/edb.h ./plugins/export/export.h ./plugins/export/exportinfo.cpp ./plugins/export/exportinfo.h ./plugins/export/exportthread.cpp ./plugins/export/exportthread.h ./plugins/export/funexport.cpp ./plugins/export/funexport.h ./plugins/export/init.cpp ./plugins/export/message.h ./plugins/gallery/gallery.cpp ./plugins/gallery/gallery.h ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/templates.cpp ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/groups.cpp ./plugins/group/groups.h ./plugins/group/init.cpp ./plugins/group/templates.cpp ./plugins/mailregister/funregistermail.cpp ./plugins/mailregister/funregistermail.h ./plugins/mailregister/funregistermail_showusers.cpp ./plugins/mailregister/funregistermail_showusers.h ./plugins/mailregister/init.cpp ./plugins/mailregister/mdb.cpp ./plugins/mailregister/mdb.h ./plugins/mailregister/registermail_info.cpp ./plugins/mailregister/registermail_info.h ./plugins/mailregister/templates.cpp ./plugins/menu/cache.cpp ./plugins/menu/cache.h ./plugins/menu/init.cpp ./plugins/menu/templates.cpp ./plugins/seo/init.cpp ./plugins/seo/seo.cpp ./plugins/seo/seo.h ./plugins/stats/bot.cpp ./plugins/stats/bot.h ./plugins/stats/init.cpp ./plugins/stats/stats.cpp ./plugins/stats/stats.h ./plugins/stats/statssession.h ./plugins/stats/templates.cpp ./plugins/stats/templates.h ./plugins/thread/createthread.cpp ./plugins/thread/createthread.h ./plugins/thread/funthread.cpp ./plugins/thread/funthread.h ./plugins/thread/init.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/reply.cpp ./plugins/thread/reply.h ./plugins/thread/showthreads.cpp ./plugins/thread/showthreads.h ./plugins/thread/tdb.cpp ./plugins/thread/tdb.h ./plugins/thread/templates.cpp ./plugins/thread/templates.h ./plugins/thread/thread.cpp ./plugins/thread/thread.h ./plugins/thread/threadfiles.cpp ./plugins/thread/threadfiles.h ./plugins/thread/threadinfo.cpp ./plugins/thread/threadinfo.h ./plugins/ticket/createticket.cpp ./plugins/ticket/createticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/editticket.h ./plugins/ticket/funticket.cpp ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/sessiondata.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/showtickets.h ./plugins/ticket/tdb.cpp ./plugins/ticket/tdb.h ./plugins/ticket/templates.cpp ./plugins/ticket/ticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/ticket/ticketinfo.h ./templates/adduser.cpp ./templates/antispam.cpp ./templates/changepatterns.cpp ./templates/changepatterns.h ./templates/config.cpp ./templates/currentdate.cpp ./templates/dir.cpp ./templates/doc.cpp ./templates/filters.cpp ./templates/generic.cpp ./templates/htmltextstream.cpp ./templates/htmltextstream.h ./templates/indexpatterns.cpp ./templates/indexpatterns.h ./templates/insert.cpp ./templates/ipban.cpp ./templates/locale.cpp ./templates/last.cpp ./templates/misc.cpp ./templates/locale.h ./templates/localefilter.cpp ./templates/localefilter.h ./templates/login.cpp ./templates/ls.cpp ./templates/man.cpp ./templates/misc.h ./templates/patterns.h ./templates/mount.cpp ./templates/passwd.cpp ./templates/patterncacher.cpp ./templates/patterncacher.h ./templates/patterns.cpp ./templates/priv.cpp ./templates/templates.h ./templates/rebus.cpp ./templates/server.cpp ./templates/slog.cpp ./templates/stat.cpp ./templates/sys.cpp ./templates/template.cpp ./templates/templates.cpp ./templates/user.cpp ./templates/textextstream.cpp ./templates/textextstream.h ./templates/upload.cpp ./templates/uptime.cpp ./templates/who.cpp ./templates/winix.cpp ./utils/acceptbaseparser.cpp ./utils/acceptbaseparser.h ./utils/acceptencodingparser.h ../../ezc/src/blocks.cpp ../../ezc/src/blocks.h ../../ezc/src/cache.cpp ../../ezc/src/cache.h ../../ezc/src/expressionparser.h ../../ezc/src/ezc.h ../../ezc/src/functions.h ../../ezc/src/generator.h ../../ezc/src/models.h ../../ezc/src/item.cpp ../../ezc/src/item.h ../../ezc/src/objects.h ../../ezc/src/outstreams.h ../../ezc/src/pattern.cpp ../../ezc/src/pattern.h ../../ezc/src/patternparser.cpp ../../ezc/src/patternparser.h ../../ezc/src/models.cpp ../../ezc/src/funinfo.h ../../tito/src/aes.cpp ../../tito/src/aes.h ../../tito/src/base32.cpp ../../tito/src/base32.h ../../tito/src/base64.cpp ../../tito/src/base64.h ../../tito/src/crypto.cpp ../../tito/src/crypto.h ../../tito/src/misc.cpp ../../tito/src/misc.h ../../pikotools/src/convert/convert.h ../../pikotools/src/convert/inttostr.cpp ../../pikotools/src/convert/inttostr.h ../../pikotools/src/convert/misc.cpp ../../pikotools/src/convert/misc.h ../../pikotools/src/convert/patternreplacer.h ../../pikotools/src/convert/strtoint.h ../../pikotools/src/convert/text.cpp ../../pikotools/src/convert/text.h ../../pikotools/src/convert/text_private.h ../../pikotools/src/convert/double.cpp ../../pikotools/src/convert/double.h ../../pikotools/src/convert/baseparser.h ../../pikotools/src/convert/baseparser.cpp ../../pikotools/src/date/date.cpp ../../pikotools/src/date/date.h ../../pikotools/src/log/filelog.cpp ../../pikotools/src/log/filelog.h ../../pikotools/src/log/log.cpp ../../pikotools/src/log/log.h ../../pikotools/src/membuffer/membuffer.h ../../pikotools/src/space/space.cpp ../../pikotools/src/space/space.h ../../pikotools/src/space/spaceparser.cpp ../../pikotools/src/space/spaceparser.h ../../pikotools/src/textstream/textstream.h ../../pikotools/src/textstream/types.h ../../pikotools/src/textstream/stream.h ../../pikotools/src/utf8/utf8.cpp ../../pikotools/src/utf8/utf8.h ../../pikotools/src/utf8/utf8_private.cpp ../../pikotools/src/utf8/utf8_private.h ../../pikotools/src/utf8/utf8_templates.h ../../pikotools/src/utf8/utf8_stream.h ../../pikotools/src/csv/csvparser.cpp ../../pikotools/src/csv/csvparser.h ../../pikotools/src/mainoptions/mainoptionsparser.cpp ../../pikotools/src/mainoptions/mainoptionsparser.h ../../pikotools/src/html/htmlparser.cpp ../../pikotools/src/html/htmlparser.h ../../pikotools/src/html/bbcodeparser.h ../../pikotools/src/html/bbcodeparser.cpp ../../morm/src/baseexpression.cpp ../../morm/src/baseexpression.h ../../morm/src/clearer.cpp ../../morm/src/clearer.h ../../morm/src/cursor.h ../../morm/src/cursorhelper.h ../../morm/src/dbconnector.cpp ../../morm/src/dbconnector.h ../../morm/src/dbexpression.cpp ../../morm/src/dbexpression.h ../../morm/src/fieldvaluehelper.h ../../morm/src/finder.h ../../morm/src/finderhelper.h ../../morm/src/flatconnector.cpp ../../morm/src/flatconnector.h ../../morm/src/flatexpression.cpp ../../morm/src/flatexpression.h ../../morm/src/jsonconnector.cpp ../../morm/src/jsonconnector.h ../../morm/src/jsonexpression.cpp ../../morm/src/jsonexpression.h ../../morm/src/model.cpp ../../morm/src/model.h ../../morm/src/modelconnector.cpp ../../morm/src/modelconnector.h ../../morm/src/modeldata.h ../../morm/src/modelenv.h ../../morm/src/morm.h ../../morm/src/morm_types.h ../../morm/src/outstream.h ../../morm/src/postgresqlconnector.cpp ../../morm/src/postgresqlconnector.h ../../morm/src/postgresqlexpression.cpp ../../morm/src/postgresqlexpression.h ../../morm/src/postgresqlqueryresult.cpp ../../morm/src/postgresqlqueryresult.h ../../morm/src/queryresult.cpp ../../morm/src/queryresult.h ../../morm/src/ft.h ../../morm/src/baseobjectwrapper.h ../../morm/src/modelcontainerwrapper.h ../../morm/src/spacewrapper.h ../../morm/src/wrapper.h ../../morm/src/transaction.cpp ../../morm/src/transaction.h \ No newline at end of file +winix.src.files = ./core/app.h ./core/basethread.cpp ./core/app.cpp ./core/config.cpp ./core/config.h ./core/header.h ./core/basethread.h ./core/request.cpp ./core/compress.cpp ./core/compress.h ./core/crypt.cpp ./core/dircontainer.cpp ./core/cookieparser.h ./core/crypt.h ./core/cur.h ./core/winixmodeldeprecated.cpp ./core/dircontainer.h ./core/dirs.cpp ./core/dirs.h ./core/error.h ./core/filelog.cpp ./core/filelog.h ./core/groups.cpp ./core/groups.h ./core/httpsimpleparser.cpp ./core/httpsimpleparser.h ./core/image.cpp ./core/image.h ./core/ipban.h ./core/ipbancontainer.cpp ./core/ipbancontainer.h ./core/job.cpp ./core/job.h ./core/lastcontainer.cpp ./core/lastcontainer.h ./core/loadavg.cpp ./core/loadavg.h ./core/lock.h ./core/lock.cpp ./core/log.cpp ./core/log.h ./core/logmanipulators.h ./core/misc.cpp ./core/misc.h ./core/mount.cpp ./core/mount.h ./core/mountparser.cpp ./core/mountparser.h ./core/mounts.cpp ./core/mounts.h ./core/plugin.cpp ./core/plugin.h ./core/plugindata.cpp ./core/plugindata.h ./core/pluginmsg.h ./core/postmultiparser.cpp ./core/postmultiparser.h ./core/postparser.h ./core/rebus.cpp ./core/rebus.h ./core/request.h ./core/requesttypes.h ./core/run.cpp ./core/run.h ./core/session.cpp ./core/session.h ./core/sessioncontainer.cpp ./core/sessioncontainer.h ./core/sessionidmanager.cpp ./core/sessionidmanager.h ./core/sessionmanager.cpp ./core/sessionmanager.h ./core/sessionparser.cpp ./core/sessionparser.h ./core/slog.cpp ./core/slog.h ./core/synchro.cpp ./core/synchro.h ./core/system.cpp ./core/system.h ./core/textstream.h ./core/threadmanager.cpp ./core/timezone.h ./core/threadmanager.h ./core/timezone.cpp ./core/timezones.cpp ./core/timezones.h ./core/ugcontainer.h ./core/users.cpp ./core/users.h ./core/version.h ./core/winix_const.h ./core/winixbase.cpp ./core/winixbase.h ./core/winixrequest.cpp ./core/winixrequest.h ./core/winixsystem.cpp ./core/winixsystem.h ./core/winixmodeldeprecated.h ./core/header.cpp ./db/db.cpp ./db/db.h ./db/dbbase.cpp ./db/dbbase.h ./db/dbconn.cpp ./db/dbconn.h ./db/dbtextstream.cpp ./db/dbtextstream.h ./functions/account.cpp ./functions/account.h ./functions/adduser.cpp ./functions/adduser.h ./functions/cat.cpp ./functions/cat.h ./functions/chmod.cpp ./functions/chmod.h ./functions/chown.cpp ./functions/chown.h ./functions/ckeditor.cpp ./functions/ckeditor.h ./functions/cp.cpp ./functions/cp.h ./functions/default.cpp ./functions/default.h ./functions/download.cpp ./functions/download.h ./functions/emacs.cpp ./functions/emacs.h ./functions/env.cpp ./functions/env.h ./functions/functionbase.cpp ./functions/functionbase.h ./functions/functionparser.cpp ./functions/functionparser.h ./functions/functions.cpp ./functions/functions.h ./functions/imgcrop.cpp ./functions/imgcrop.h ./functions/ipban.cpp ./functions/ipban.h ./functions/last.cpp ./functions/last.h ./functions/ln.cpp ./functions/ln.h ./functions/locale.cpp ./functions/locale.h ./functions/login.cpp ./functions/login.h ./functions/logout.cpp ./functions/logout.h ./functions/ls.cpp ./functions/ls.h ./functions/man.cpp ./functions/man.h ./functions/meta.cpp ./functions/meta.h ./functions/mkdir.cpp ./functions/mkdir.h ./functions/mount.cpp ./functions/mount.h ./functions/mv.cpp ./functions/mv.h ./functions/nicedit.cpp ./functions/nicedit.h ./functions/node.cpp ./functions/node.h ./functions/passwd.cpp ./functions/passwd.h ./functions/priv.cpp ./functions/priv.h ./functions/privchanger.cpp ./functions/privchanger.h ./functions/pw.cpp ./functions/pw.h ./functions/reload.cpp ./functions/reload.h ./functions/rm.cpp ./functions/rm.h ./functions/rmuser.cpp ./functions/rmuser.h ./functions/run.cpp ./functions/run.h ./functions/sort.cpp ./functions/sort.h ./functions/specialdefault.cpp ./functions/specialdefault.h ./functions/stat.cpp ./functions/stat.h ./functions/subject.cpp ./functions/subject.h ./functions/template.cpp ./functions/template.h ./functions/timezone.cpp ./functions/timezone.h ./functions/tinymce.cpp ./functions/tinymce.h ./functions/uname.cpp ./functions/uname.h ./functions/upload.cpp ./functions/upload.h ./functions/uptime.cpp ./functions/uptime.h ./functions/vim.cpp ./functions/vim.h ./functions/who.cpp ./functions/who.h ./main/main.cpp ./models/group.cpp ./models/group.h ./models/item.cpp ./models/item.h ./models/itemcontent.cpp ./models/itemcontent.h ./models/migration.cpp ./models/migration.h ./models/user.cpp ./models/user.h ./models/userwrapper.h ./models/winixmodel.cpp ./models/winixmodel.h ./models/winixmodelconnector.cpp ./models/winixmodelconnector.h ./notify/notify.cpp ./notify/notify.h ./notify/notifypool.cpp ./notify/notifypool.h ./notify/notifythread.cpp ./notify/notifythread.h ./notify/templatesnotify.cpp ./notify/templatesnotify.h ./plugins/export/edb.cpp ./plugins/export/edb.h ./plugins/export/export.h ./plugins/export/exportinfo.cpp ./plugins/export/exportinfo.h ./plugins/export/exportthread.cpp ./plugins/export/exportthread.h ./plugins/export/funexport.cpp ./plugins/export/funexport.h ./plugins/export/init.cpp ./plugins/export/message.h ./plugins/gallery/gallery.cpp ./plugins/gallery/gallery.h ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/templates.cpp ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/groups.cpp ./plugins/group/groups.h ./plugins/group/init.cpp ./plugins/group/templates.cpp ./plugins/mailregister/funregistermail.cpp ./plugins/mailregister/funregistermail.h ./plugins/mailregister/funregistermail_showusers.cpp ./plugins/mailregister/funregistermail_showusers.h ./plugins/mailregister/init.cpp ./plugins/mailregister/mdb.cpp ./plugins/mailregister/mdb.h ./plugins/mailregister/registermail_info.cpp ./plugins/mailregister/registermail_info.h ./plugins/mailregister/templates.cpp ./plugins/menu/cache.cpp ./plugins/menu/cache.h ./plugins/menu/init.cpp ./plugins/menu/templates.cpp ./plugins/seo/init.cpp ./plugins/seo/seo.cpp ./plugins/seo/seo.h ./plugins/stats/bot.cpp ./plugins/stats/bot.h ./plugins/stats/init.cpp ./plugins/stats/stats.cpp ./plugins/stats/stats.h ./plugins/stats/statssession.h ./plugins/stats/templates.cpp ./plugins/stats/templates.h ./plugins/thread/createthread.cpp ./plugins/thread/createthread.h ./plugins/thread/funthread.cpp ./plugins/thread/funthread.h ./plugins/thread/init.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/reply.cpp ./plugins/thread/reply.h ./plugins/thread/showthreads.cpp ./plugins/thread/showthreads.h ./plugins/thread/tdb.cpp ./plugins/thread/tdb.h ./plugins/thread/templates.cpp ./plugins/thread/templates.h ./plugins/thread/thread.cpp ./plugins/thread/thread.h ./plugins/thread/threadfiles.cpp ./plugins/thread/threadfiles.h ./plugins/thread/threadinfo.cpp ./plugins/thread/threadinfo.h ./plugins/ticket/createticket.cpp ./plugins/ticket/createticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/editticket.h ./plugins/ticket/funticket.cpp ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/sessiondata.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/showtickets.h ./plugins/ticket/tdb.cpp ./plugins/ticket/tdb.h ./plugins/ticket/templates.cpp ./plugins/ticket/ticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/ticket/ticketinfo.h ./templates/adduser.cpp ./templates/antispam.cpp ./templates/changepatterns.cpp ./templates/changepatterns.h ./templates/config.cpp ./templates/currentdate.cpp ./templates/dir.cpp ./templates/doc.cpp ./templates/filters.cpp ./templates/generic.cpp ./templates/htmltextstream.cpp ./templates/htmltextstream.h ./templates/indexpatterns.cpp ./templates/indexpatterns.h ./templates/insert.cpp ./templates/ipban.cpp ./templates/locale.cpp ./templates/last.cpp ./templates/misc.cpp ./templates/locale.h ./templates/localefilter.cpp ./templates/localefilter.h ./templates/login.cpp ./templates/ls.cpp ./templates/man.cpp ./templates/misc.h ./templates/patterns.h ./templates/mount.cpp ./templates/passwd.cpp ./templates/patterncacher.cpp ./templates/patterncacher.h ./templates/patterns.cpp ./templates/priv.cpp ./templates/templates.h ./templates/rebus.cpp ./templates/server.cpp ./templates/slog.cpp ./templates/stat.cpp ./templates/sys.cpp ./templates/template.cpp ./templates/templates.cpp ./templates/user.cpp ./templates/textextstream.cpp ./templates/textextstream.h ./templates/upload.cpp ./templates/uptime.cpp ./templates/who.cpp ./templates/winix.cpp ./utils/acceptbaseparser.cpp ./utils/acceptbaseparser.h ./utils/acceptencodingparser.h ../../ezc/src/blocks.cpp ../../ezc/src/blocks.h ../../ezc/src/cache.cpp ../../ezc/src/cache.h ../../ezc/src/expressionparser.h ../../ezc/src/ezc.h ../../ezc/src/functions.h ../../ezc/src/generator.h ../../ezc/src/models.h ../../ezc/src/item.cpp ../../ezc/src/item.h ../../ezc/src/objects.h ../../ezc/src/outstreams.h ../../ezc/src/pattern.cpp ../../ezc/src/pattern.h ../../ezc/src/patternparser.cpp ../../ezc/src/patternparser.h ../../ezc/src/models.cpp ../../ezc/src/funinfo.h ../../tito/src/aes.cpp ../../tito/src/aes.h ../../tito/src/base32.cpp ../../tito/src/base32.h ../../tito/src/base64.cpp ../../tito/src/base64.h ../../tito/src/crypto.cpp ../../tito/src/crypto.h ../../tito/src/misc.cpp ../../tito/src/misc.h ../../pikotools/src/convert/convert.h ../../pikotools/src/convert/inttostr.cpp ../../pikotools/src/convert/inttostr.h ../../pikotools/src/convert/misc.cpp ../../pikotools/src/convert/misc.h ../../pikotools/src/convert/patternreplacer.h ../../pikotools/src/convert/strtoint.h ../../pikotools/src/convert/text.cpp ../../pikotools/src/convert/text.h ../../pikotools/src/convert/text_private.h ../../pikotools/src/convert/double.cpp ../../pikotools/src/convert/double.h ../../pikotools/src/convert/baseparser.h ../../pikotools/src/convert/baseparser.cpp ../../pikotools/src/date/date.cpp ../../pikotools/src/date/date.h ../../pikotools/src/log/filelog.cpp ../../pikotools/src/log/filelog.h ../../pikotools/src/log/log.cpp ../../pikotools/src/log/log.h ../../pikotools/src/membuffer/membuffer.h ../../pikotools/src/space/space.cpp ../../pikotools/src/space/space.h ../../pikotools/src/space/spaceparser.cpp ../../pikotools/src/space/spaceparser.h ../../pikotools/src/textstream/textstream.h ../../pikotools/src/textstream/types.h ../../pikotools/src/textstream/stream.h ../../pikotools/src/utf8/utf8.cpp ../../pikotools/src/utf8/utf8.h ../../pikotools/src/utf8/utf8_private.cpp ../../pikotools/src/utf8/utf8_private.h ../../pikotools/src/utf8/utf8_templates.h ../../pikotools/src/utf8/utf8_stream.h ../../pikotools/src/csv/csvparser.cpp ../../pikotools/src/csv/csvparser.h ../../pikotools/src/mainoptions/mainoptionsparser.cpp ../../pikotools/src/mainoptions/mainoptionsparser.h ../../pikotools/src/html/htmlparser.cpp ../../pikotools/src/html/htmlparser.h ../../pikotools/src/html/bbcodeparser.h ../../pikotools/src/html/bbcodeparser.cpp ../../morm/src/baseexpression.cpp ../../morm/src/baseexpression.h ../../morm/src/clearer.cpp ../../morm/src/clearer.h ../../morm/src/cursor.h ../../morm/src/cursorhelper.h ../../morm/src/dbconnector.cpp ../../morm/src/dbconnector.h ../../morm/src/dbexpression.cpp ../../morm/src/dbexpression.h ../../morm/src/fieldvaluehelper.h ../../morm/src/finder.h ../../morm/src/finderhelper.h ../../morm/src/flatconnector.cpp ../../morm/src/flatconnector.h ../../morm/src/flatexpression.cpp ../../morm/src/flatexpression.h ../../morm/src/jsonconnector.cpp ../../morm/src/jsonconnector.h ../../morm/src/jsonexpression.cpp ../../morm/src/jsonexpression.h ../../morm/src/model.cpp ../../morm/src/model.h ../../morm/src/modelconnector.cpp ../../morm/src/modelconnector.h ../../morm/src/modeldata.h ../../morm/src/modelenv.h ../../morm/src/morm.h ../../morm/src/morm_types.h ../../morm/src/outstream.h ../../morm/src/postgresqlconnector.cpp ../../morm/src/postgresqlconnector.h ../../morm/src/postgresqlexpression.cpp ../../morm/src/postgresqlexpression.h ../../morm/src/postgresqlqueryresult.cpp ../../morm/src/postgresqlqueryresult.h ../../morm/src/queryresult.cpp ../../morm/src/queryresult.h ../../morm/src/ft.h ../../morm/src/baseobjectwrapper.h ../../morm/src/modelcontainerwrapper.h ../../morm/src/spacewrapper.h ../../morm/src/wrapper.h ../../morm/src/transaction.cpp ../../morm/src/transaction.h \ No newline at end of file diff --git a/winixd/core/Makefile.dep b/winixd/core/Makefile.dep index 0963fb5..637647c 100644 --- a/winixd/core/Makefile.dep +++ b/winixd/core/Makefile.dep @@ -42,8 +42,9 @@ app.o: ../../../morm/src/postgresqlexpression.h app.o: ../../../morm/src/jsonconnector.h app.o: ../../../morm/src/postgresqlconnector.h app.o: ../../../morm/src/postgresqlqueryresult.h -app.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h -app.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.h +app.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +app.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h +app.o: ../../../pikotools/src/convert/patternreplacer.h app.o: ../../../pikotools/src/convert/strtoint.h app.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h app.o: winix_const.h ../../../pikotools/src/convert/convert.h @@ -191,6 +192,7 @@ basethread.o: ../../../morm/src/postgresqlexpression.h basethread.o: ../../../morm/src/jsonconnector.h basethread.o: ../../../morm/src/postgresqlconnector.h basethread.o: ../../../morm/src/postgresqlqueryresult.h +basethread.o: ../../../morm/src/transaction.h basethread.o: ../../../winix/winixd/core/log.h basethread.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h basethread.o: pluginmsg.h plugindata.h winixbase.h @@ -229,6 +231,7 @@ compress.o: ../../../morm/src/postgresqlexpression.h compress.o: ../../../morm/src/jsonconnector.h compress.o: ../../../morm/src/postgresqlconnector.h compress.o: ../../../morm/src/postgresqlqueryresult.h +compress.o: ../../../morm/src/transaction.h config.o: config.h log.h logmanipulators.h ../../../pikotools/src/log/log.h config.o: ../../../pikotools/src/textstream/textstream.h config.o: ../../../pikotools/src/textstream/stream.h @@ -261,8 +264,9 @@ config.o: ../../../morm/src/cursor.h ../../../morm/src/jsonexpression.h config.o: ../../../morm/src/postgresqlexpression.h config.o: ../../../morm/src/jsonconnector.h config.o: ../../../morm/src/postgresqlconnector.h -config.o: ../../../morm/src/postgresqlqueryresult.h misc.h requesttypes.h -config.o: winix_const.h ../../../pikotools/src/convert/convert.h +config.o: ../../../morm/src/postgresqlqueryresult.h +config.o: ../../../morm/src/transaction.h misc.h requesttypes.h winix_const.h +config.o: ../../../pikotools/src/convert/convert.h config.o: ../../../pikotools/src/convert/inttostr.h config.o: ../../../pikotools/src/convert/patternreplacer.h config.o: ../../../pikotools/src/convert/strtoint.h @@ -333,7 +337,7 @@ crypt.o: ../../../morm/src/postgresqlexpression.h crypt.o: ../../../morm/src/jsonconnector.h crypt.o: ../../../morm/src/postgresqlconnector.h crypt.o: ../../../morm/src/postgresqlqueryresult.h -crypt.o: ../../../winix/winixd/core/log.h +crypt.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h crypt.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h crypt.o: ../../../pikotools/src/convert/patternreplacer.h crypt.o: ../../../pikotools/src/convert/strtoint.h @@ -405,6 +409,7 @@ dircontainer.o: ../../../morm/src/postgresqlexpression.h dircontainer.o: ../../../morm/src/jsonconnector.h dircontainer.o: ../../../morm/src/postgresqlconnector.h dircontainer.o: ../../../morm/src/postgresqlqueryresult.h +dircontainer.o: ../../../morm/src/transaction.h dircontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h dircontainer.o: ../../../pikotools/src/convert/patternreplacer.h dircontainer.o: ../../../pikotools/src/convert/strtoint.h @@ -467,8 +472,8 @@ dirs.o: ../../../morm/src/postgresqlexpression.h dirs.o: ../../../morm/src/jsonconnector.h dirs.o: ../../../morm/src/postgresqlconnector.h dirs.o: ../../../morm/src/postgresqlqueryresult.h -dirs.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h -dirs.o: ../../../pikotools/src/convert/patternreplacer.h +dirs.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/filelog.h +dirs.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.h dirs.o: ../../../pikotools/src/convert/strtoint.h dirs.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h dirs.o: winix_const.h ../../../pikotools/src/convert/convert.h @@ -565,7 +570,7 @@ groups.o: ../../../morm/src/postgresqlexpression.h groups.o: ../../../morm/src/jsonconnector.h groups.o: ../../../morm/src/postgresqlconnector.h groups.o: ../../../morm/src/postgresqlqueryresult.h -groups.o: ../../../winix/winixd/core/log.h +groups.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h groups.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h groups.o: ../../../winix/winixd/core/error.h groups.o: ../../../winix/winixd/models/user.h @@ -591,6 +596,40 @@ groups.o: ../../../winix/winixd/models/winixmodelconnector.h groups.o: ../../../winix/winixd/core/dircontainer.h groups.o: ../../../winix/winixd/core/ugcontainer.h winixbase.h groups.o: winixmodeldeprecated.h plugin.h pluginmsg.h plugindata.h +header.o: header.h log.h logmanipulators.h ../../../pikotools/src/log/log.h +header.o: ../../../pikotools/src/textstream/textstream.h +header.o: ../../../pikotools/src/textstream/stream.h +header.o: ../../../pikotools/src/space/space.h +header.o: ../../../pikotools/src/textstream/types.h +header.o: ../../../pikotools/src/convert/inttostr.h +header.o: ../../../pikotools/src/utf8/utf8.h +header.o: ../../../pikotools/src/textstream/stream.h +header.o: ../../../pikotools/src/utf8/utf8_templates.h +header.o: ../../../pikotools/src/utf8/utf8_private.h +header.o: ../../../pikotools/src/date/date.h +header.o: ../../../pikotools/src/membuffer/membuffer.h +header.o: ../../../pikotools/src/textstream/types.h +header.o: ../../../pikotools/src/utf8/utf8_stream.h filelog.h +header.o: ../../../winix/winixd/core/synchro.h ../../../morm/src/morm.h +header.o: ../../../morm/src/morm_types.h ../../../morm/src/model.h +header.o: ../../../morm/src/modelconnector.h ../../../morm/src/clearer.h +header.o: ../../../morm/src/ft.h ../../../morm/src/dbconnector.h +header.o: ../../../morm/src/queryresult.h ../../../morm/src/flatconnector.h +header.o: ../../../morm/src/dbexpression.h ../../../morm/src/baseexpression.h +header.o: ../../../morm/src/modelenv.h ../../../morm/src/modeldata.h +header.o: ../../../morm/src/cursorhelper.h ../../../morm/src/finderhelper.h +header.o: ../../../morm/src/fieldvaluehelper.h ../../../morm/src/wrapper.h +header.o: ../../../morm/src/spacewrapper.h +header.o: ../../../morm/src/baseobjectwrapper.h +header.o: ../../../morm/src/modelcontainerwrapper.h +header.o: ../../../pikotools/src/convert/text.h +header.o: ../../../morm/src/flatexpression.h ../../../morm/src/finder.h +header.o: ../../../morm/src/cursor.h ../../../morm/src/jsonexpression.h +header.o: ../../../morm/src/postgresqlexpression.h +header.o: ../../../morm/src/jsonconnector.h +header.o: ../../../morm/src/postgresqlconnector.h +header.o: ../../../morm/src/postgresqlqueryresult.h +header.o: ../../../morm/src/transaction.h httpsimpleparser.o: httpsimpleparser.h winixmodeldeprecated.h httpsimpleparser.o: ../../../winix/winixd/core/winixbase.h httpsimpleparser.o: ../../../winix/winixd/core/config.h @@ -638,6 +677,7 @@ httpsimpleparser.o: ../../../morm/src/postgresqlexpression.h httpsimpleparser.o: ../../../morm/src/jsonconnector.h httpsimpleparser.o: ../../../morm/src/postgresqlconnector.h httpsimpleparser.o: ../../../morm/src/postgresqlqueryresult.h +httpsimpleparser.o: ../../../morm/src/transaction.h httpsimpleparser.o: ../../../winix/winixd/core/log.h httpsimpleparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h httpsimpleparser.o: plugin.h pluginmsg.h plugindata.h winixbase.h misc.h @@ -687,7 +727,7 @@ image.o: ../../../morm/src/postgresqlexpression.h image.o: ../../../morm/src/jsonconnector.h image.o: ../../../morm/src/postgresqlconnector.h image.o: ../../../morm/src/postgresqlqueryresult.h -image.o: ../../../winix/winixd/core/log.h +image.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h image.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h pluginmsg.h image.o: plugindata.h winixbase.h textstream.h misc.h requesttypes.h image.o: winix_const.h ../../../pikotools/src/convert/convert.h @@ -782,6 +822,7 @@ ipbancontainer.o: ../../../morm/src/postgresqlexpression.h ipbancontainer.o: ../../../morm/src/jsonconnector.h ipbancontainer.o: ../../../morm/src/postgresqlconnector.h ipbancontainer.o: ../../../morm/src/postgresqlqueryresult.h +ipbancontainer.o: ../../../morm/src/transaction.h ipbancontainer.o: ../../../winix/winixd/core/log.h ipbancontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h ipbancontainer.o: plugin.h pluginmsg.h plugindata.h winixbase.h @@ -823,8 +864,9 @@ job.o: ../../../morm/src/postgresqlexpression.h job.o: ../../../morm/src/jsonconnector.h job.o: ../../../morm/src/postgresqlconnector.h job.o: ../../../morm/src/postgresqlqueryresult.h -job.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h -job.o: lock.h plugin.h pluginmsg.h plugindata.h winixbase.h +job.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +job.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h pluginmsg.h +job.o: plugindata.h winixbase.h lastcontainer.o: lastcontainer.h ../../../pikotools/src/date/date.h lastcontainer.o: ../../../pikotools/src/convert/inttostr.h winixbase.h log.h lastcontainer.o: logmanipulators.h ../../../pikotools/src/log/log.h @@ -862,9 +904,9 @@ lastcontainer.o: ../../../morm/src/jsonexpression.h lastcontainer.o: ../../../morm/src/postgresqlexpression.h lastcontainer.o: ../../../morm/src/jsonconnector.h lastcontainer.o: ../../../morm/src/postgresqlconnector.h -lastcontainer.o: ../../../morm/src/postgresqlqueryresult.h misc.h -lastcontainer.o: requesttypes.h winix_const.h -lastcontainer.o: ../../../pikotools/src/convert/convert.h +lastcontainer.o: ../../../morm/src/postgresqlqueryresult.h +lastcontainer.o: ../../../morm/src/transaction.h misc.h requesttypes.h +lastcontainer.o: winix_const.h ../../../pikotools/src/convert/convert.h lastcontainer.o: ../../../pikotools/src/convert/inttostr.h lastcontainer.o: ../../../pikotools/src/convert/patternreplacer.h lastcontainer.o: ../../../pikotools/src/convert/strtoint.h @@ -919,6 +961,7 @@ loadavg.o: ../../../morm/src/postgresqlexpression.h loadavg.o: ../../../morm/src/jsonconnector.h loadavg.o: ../../../morm/src/postgresqlconnector.h loadavg.o: ../../../morm/src/postgresqlqueryresult.h +loadavg.o: ../../../morm/src/transaction.h loadavg.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h loadavg.o: ../../../pikotools/src/convert/patternreplacer.h loadavg.o: ../../../pikotools/src/convert/strtoint.h @@ -968,6 +1011,7 @@ log.o: ../../../morm/src/postgresqlexpression.h log.o: ../../../morm/src/jsonconnector.h log.o: ../../../morm/src/postgresqlconnector.h log.o: ../../../morm/src/postgresqlqueryresult.h +log.o: ../../../morm/src/transaction.h misc.o: misc.h requesttypes.h ../../../pikotools/src/textstream/textstream.h misc.o: ../../../pikotools/src/textstream/stream.h misc.o: ../../../pikotools/src/space/space.h @@ -1019,8 +1063,9 @@ misc.o: ../../../morm/src/postgresqlexpression.h misc.o: ../../../morm/src/jsonconnector.h misc.o: ../../../morm/src/postgresqlconnector.h misc.o: ../../../morm/src/postgresqlqueryresult.h -misc.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h -misc.o: lock.h synchro.h ../../../winix/winixd/models/item.h +misc.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +misc.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h +misc.o: ../../../winix/winixd/models/item.h misc.o: ../../../winix/winixd/models/winixmodel.h misc.o: ../../../winix/winixd/models/winixmodelconnector.h misc.o: ../../../winix/winixd/models/itemcontent.h @@ -1123,6 +1168,7 @@ mountparser.o: ../../../morm/src/postgresqlexpression.h mountparser.o: ../../../morm/src/jsonconnector.h mountparser.o: ../../../morm/src/postgresqlconnector.h mountparser.o: ../../../morm/src/postgresqlqueryresult.h +mountparser.o: ../../../morm/src/transaction.h mountparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h mountparser.o: ../../../pikotools/src/convert/patternreplacer.h mountparser.o: ../../../pikotools/src/convert/strtoint.h @@ -1200,6 +1246,7 @@ mounts.o: ../../../morm/src/postgresqlexpression.h mounts.o: ../../../morm/src/jsonconnector.h mounts.o: ../../../morm/src/postgresqlconnector.h mounts.o: ../../../morm/src/postgresqlqueryresult.h +mounts.o: ../../../morm/src/transaction.h mounts.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h mounts.o: ../../../pikotools/src/convert/patternreplacer.h mounts.o: ../../../pikotools/src/convert/strtoint.h @@ -1275,7 +1322,7 @@ plugin.o: ../../../morm/src/postgresqlexpression.h plugin.o: ../../../morm/src/jsonconnector.h plugin.o: ../../../morm/src/postgresqlconnector.h plugin.o: ../../../morm/src/postgresqlqueryresult.h -plugin.o: ../../../winix/winixd/core/log.h +plugin.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h plugin.o: ../../../winix/winixd/core/filelog.h lock.h dirs.h dircontainer.h plugin.o: ../../../winix/winixd/models/item.h plugin.o: ../../../winix/winixd/models/winixmodel.h @@ -1414,7 +1461,8 @@ plugindata.o: ../../../morm/src/postgresqlexpression.h plugindata.o: ../../../morm/src/jsonconnector.h plugindata.o: ../../../morm/src/postgresqlconnector.h plugindata.o: ../../../morm/src/postgresqlqueryresult.h -postmultiparser.o: postmultiparser.h error.h requesttypes.h +plugindata.o: ../../../morm/src/transaction.h +postmultiparser.o: postmultiparser.h error.h request.h requesttypes.h postmultiparser.o: ../../../pikotools/src/textstream/textstream.h postmultiparser.o: ../../../pikotools/src/textstream/stream.h postmultiparser.o: ../../../pikotools/src/space/space.h @@ -1427,24 +1475,20 @@ postmultiparser.o: ../../../pikotools/src/utf8/utf8_private.h postmultiparser.o: ../../../pikotools/src/date/date.h postmultiparser.o: ../../../pikotools/src/membuffer/membuffer.h postmultiparser.o: ../../../pikotools/src/textstream/types.h -postmultiparser.o: ../../../pikotools/src/utf8/utf8_stream.h config.h misc.h -postmultiparser.o: winix_const.h ../../../pikotools/src/convert/convert.h -postmultiparser.o: ../../../pikotools/src/convert/inttostr.h -postmultiparser.o: ../../../pikotools/src/convert/patternreplacer.h -postmultiparser.o: ../../../pikotools/src/convert/strtoint.h -postmultiparser.o: ../../../pikotools/src/convert/text.h -postmultiparser.o: ../../../pikotools/src/convert/double.h winixbase.h log.h -postmultiparser.o: logmanipulators.h ../../../pikotools/src/log/log.h -postmultiparser.o: filelog.h ../../../winix/winixd/core/synchro.h -postmultiparser.o: ../../../morm/src/morm.h ../../../morm/src/morm_types.h +postmultiparser.o: ../../../pikotools/src/utf8/utf8_stream.h +postmultiparser.o: ../../../winix/winixd/models/item.h +postmultiparser.o: ../../../winix/winixd/models/winixmodel.h postmultiparser.o: ../../../morm/src/model.h postmultiparser.o: ../../../morm/src/modelconnector.h postmultiparser.o: ../../../morm/src/clearer.h ../../../morm/src/ft.h postmultiparser.o: ../../../morm/src/dbconnector.h +postmultiparser.o: ../../../pikotools/src/log/log.h filelog.h +postmultiparser.o: ../../../winix/winixd/core/synchro.h postmultiparser.o: ../../../morm/src/queryresult.h postmultiparser.o: ../../../morm/src/flatconnector.h postmultiparser.o: ../../../morm/src/dbexpression.h postmultiparser.o: ../../../morm/src/baseexpression.h +postmultiparser.o: ../../../morm/src/morm_types.h postmultiparser.o: ../../../morm/src/modelenv.h ../../../morm/src/modeldata.h postmultiparser.o: ../../../morm/src/cursorhelper.h postmultiparser.o: ../../../morm/src/finderhelper.h @@ -1455,12 +1499,44 @@ postmultiparser.o: ../../../morm/src/baseobjectwrapper.h postmultiparser.o: ../../../morm/src/modelcontainerwrapper.h postmultiparser.o: ../../../pikotools/src/convert/text.h postmultiparser.o: ../../../morm/src/flatexpression.h +postmultiparser.o: ../../../winix/winixd/core/log.h +postmultiparser.o: ../../../winix/winixd/models/winixmodelconnector.h +postmultiparser.o: ../../../winix/winixd/models/itemcontent.h +postmultiparser.o: ../../../winix/winixd/templates/htmltextstream.h +postmultiparser.o: ../../../winix/winixd/templates/misc.h +postmultiparser.o: ../../../winix/winixd/templates/localefilter.h +postmultiparser.o: ../../../winix/winixd/templates/locale.h +postmultiparser.o: ../../../pikotools/src/space/spaceparser.h +postmultiparser.o: ../../../pikotools/src/space/space.h +postmultiparser.o: ../../../pikotools/src/convert/baseparser.h +postmultiparser.o: ../../../winix/winixd/core/winixbase.h +postmultiparser.o: ../../../winix/winixd/core/config.h log.h +postmultiparser.o: logmanipulators.h ../../../morm/src/morm.h postmultiparser.o: ../../../morm/src/finder.h ../../../morm/src/cursor.h postmultiparser.o: ../../../morm/src/jsonexpression.h postmultiparser.o: ../../../morm/src/postgresqlexpression.h postmultiparser.o: ../../../morm/src/jsonconnector.h postmultiparser.o: ../../../morm/src/postgresqlconnector.h postmultiparser.o: ../../../morm/src/postgresqlqueryresult.h +postmultiparser.o: ../../../morm/src/transaction.h +postmultiparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h +postmultiparser.o: ../../../pikotools/src/convert/patternreplacer.h +postmultiparser.o: ../../../pikotools/src/convert/strtoint.h +postmultiparser.o: ../../../pikotools/src/convert/text.h misc.h winix_const.h +postmultiparser.o: ../../../pikotools/src/convert/convert.h +postmultiparser.o: ../../../pikotools/src/convert/inttostr.h +postmultiparser.o: ../../../pikotools/src/convert/patternreplacer.h +postmultiparser.o: ../../../pikotools/src/convert/double.h +postmultiparser.o: ../../../ezc/src/ezc.h ../../../ezc/src/generator.h +postmultiparser.o: ../../../ezc/src/blocks.h ../../../ezc/src/item.h +postmultiparser.o: ../../../ezc/src/cache.h ../../../ezc/src/functions.h +postmultiparser.o: ../../../ezc/src/funinfo.h ../../../ezc/src/objects.h +postmultiparser.o: ../../../ezc/src/pattern.h ../../../ezc/src/outstreams.h +postmultiparser.o: ../../../ezc/src/expressionparser.h +postmultiparser.o: ../../../ezc/src/models.h ../../../ezc/src/patternparser.h +postmultiparser.o: ../../../winix/winixd/templates/htmltextstream.h config.h +postmultiparser.o: textstream.h ../../../winix/winixd/models/winixmodel.h +postmultiparser.o: header.h winixbase.h rebus.o: log.h logmanipulators.h ../../../pikotools/src/log/log.h rebus.o: ../../../pikotools/src/textstream/textstream.h rebus.o: ../../../pikotools/src/textstream/stream.h @@ -1493,7 +1569,8 @@ rebus.o: ../../../morm/src/cursor.h ../../../morm/src/jsonexpression.h rebus.o: ../../../morm/src/postgresqlexpression.h rebus.o: ../../../morm/src/jsonconnector.h rebus.o: ../../../morm/src/postgresqlconnector.h -rebus.o: ../../../morm/src/postgresqlqueryresult.h rebus.h winixbase.h misc.h +rebus.o: ../../../morm/src/postgresqlqueryresult.h +rebus.o: ../../../morm/src/transaction.h rebus.h winixbase.h misc.h rebus.o: requesttypes.h winix_const.h rebus.o: ../../../pikotools/src/convert/convert.h rebus.o: ../../../pikotools/src/convert/inttostr.h @@ -1577,6 +1654,7 @@ request.o: ../../../morm/src/postgresqlexpression.h request.o: ../../../morm/src/jsonconnector.h request.o: ../../../morm/src/postgresqlconnector.h request.o: ../../../morm/src/postgresqlqueryresult.h +request.o: ../../../morm/src/transaction.h request.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h request.o: ../../../pikotools/src/convert/patternreplacer.h request.o: ../../../pikotools/src/convert/strtoint.h @@ -1620,7 +1698,12 @@ request.o: ../../../winix/winixd/core/winixsystem.h winixmodeldeprecated.h request.o: ../../../winix/winixd/core/cur.h request.o: ../../../winix/winixd/core/sessionmanager.h request.o: ../../../winix/winixd/core/slog.h cur.h session.h rebus.h ipban.h -request.o: mount.h +request.o: mount.h ../../../winix/winixd/templates/templates.h +request.o: ../../../winix/winixd/templates/patterncacher.h +request.o: ../../../winix/winixd/templates/indexpatterns.h +request.o: ../../../winix/winixd/templates/patterns.h +request.o: ../../../winix/winixd/templates/changepatterns.h +request.o: ../../../pikotools/src/html/htmlparser.h run.o: run.h winixbase.h session.o: session.h error.h ../../../winix/winixd/models/user.h session.o: ../../../morm/src/model.h @@ -1666,7 +1749,7 @@ session.o: ../../../morm/src/postgresqlexpression.h session.o: ../../../morm/src/jsonconnector.h session.o: ../../../morm/src/postgresqlconnector.h session.o: ../../../morm/src/postgresqlqueryresult.h -session.o: ../../../winix/winixd/core/log.h +session.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h session.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h session.o: ../../../pikotools/src/convert/patternreplacer.h session.o: ../../../pikotools/src/convert/strtoint.h @@ -1737,6 +1820,7 @@ sessioncontainer.o: ../../../morm/src/postgresqlexpression.h sessioncontainer.o: ../../../morm/src/jsonconnector.h sessioncontainer.o: ../../../morm/src/postgresqlconnector.h sessioncontainer.o: ../../../morm/src/postgresqlqueryresult.h +sessioncontainer.o: ../../../morm/src/transaction.h sessioncontainer.o: ../../../winix/winixd/core/log.h sessioncontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessioncontainer.o: ../../../pikotools/src/convert/patternreplacer.h @@ -1840,6 +1924,7 @@ sessionmanager.o: ../../../morm/src/postgresqlexpression.h sessionmanager.o: ../../../morm/src/jsonconnector.h sessionmanager.o: ../../../morm/src/postgresqlconnector.h sessionmanager.o: ../../../morm/src/postgresqlqueryresult.h +sessionmanager.o: ../../../morm/src/transaction.h sessionmanager.o: ../../../winix/winixd/core/log.h sessionmanager.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessionmanager.o: ../../../pikotools/src/convert/patternreplacer.h @@ -1948,6 +2033,7 @@ sessionparser.o: ../../../morm/src/postgresqlexpression.h sessionparser.o: ../../../morm/src/jsonconnector.h sessionparser.o: ../../../morm/src/postgresqlconnector.h sessionparser.o: ../../../morm/src/postgresqlqueryresult.h +sessionparser.o: ../../../morm/src/transaction.h sessionparser.o: ../../../winix/winixd/core/log.h sessionparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessionparser.o: ../../../pikotools/src/convert/patternreplacer.h @@ -2030,8 +2116,8 @@ slog.o: ../../../morm/src/postgresqlexpression.h slog.o: ../../../morm/src/jsonconnector.h slog.o: ../../../morm/src/postgresqlconnector.h slog.o: ../../../morm/src/postgresqlqueryresult.h -slog.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h -slog.o: ../../../pikotools/src/convert/patternreplacer.h +slog.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/filelog.h +slog.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.h slog.o: ../../../pikotools/src/convert/strtoint.h slog.o: ../../../pikotools/src/convert/text.h misc.h winix_const.h slog.o: ../../../pikotools/src/convert/convert.h @@ -2088,7 +2174,7 @@ system.o: ../../../morm/src/postgresqlexpression.h system.o: ../../../morm/src/jsonconnector.h system.o: ../../../morm/src/postgresqlconnector.h system.o: ../../../morm/src/postgresqlqueryresult.h -system.o: ../../../winix/winixd/core/log.h +system.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h system.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h pluginmsg.h system.o: plugindata.h winixbase.h dirs.h dircontainer.h system.o: ../../../winix/winixd/models/item.h @@ -2240,6 +2326,7 @@ threadmanager.o: ../../../morm/src/postgresqlexpression.h threadmanager.o: ../../../morm/src/jsonconnector.h threadmanager.o: ../../../morm/src/postgresqlconnector.h threadmanager.o: ../../../morm/src/postgresqlqueryresult.h +threadmanager.o: ../../../morm/src/transaction.h threadmanager.o: ../../../winix/winixd/core/log.h threadmanager.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h threadmanager.o: pluginmsg.h plugindata.h winixbase.h @@ -2308,6 +2395,7 @@ timezones.o: ../../../morm/src/postgresqlexpression.h timezones.o: ../../../morm/src/jsonconnector.h timezones.o: ../../../morm/src/postgresqlconnector.h timezones.o: ../../../morm/src/postgresqlqueryresult.h +timezones.o: ../../../morm/src/transaction.h users.o: users.h ../../../winix/winixd/models/user.h users.o: ../../../morm/src/model.h users.o: ../../../pikotools/src/textstream/textstream.h @@ -2351,7 +2439,7 @@ users.o: ../../../morm/src/postgresqlexpression.h users.o: ../../../morm/src/jsonconnector.h users.o: ../../../morm/src/postgresqlconnector.h users.o: ../../../morm/src/postgresqlqueryresult.h -users.o: ../../../winix/winixd/core/log.h +users.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h users.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h users.o: ../../../pikotools/src/convert/patternreplacer.h users.o: ../../../pikotools/src/convert/strtoint.h @@ -2447,6 +2535,7 @@ winixmodeldeprecated.o: ../../../morm/src/postgresqlexpression.h winixmodeldeprecated.o: ../../../morm/src/jsonconnector.h winixmodeldeprecated.o: ../../../morm/src/postgresqlconnector.h winixmodeldeprecated.o: ../../../morm/src/postgresqlqueryresult.h +winixmodeldeprecated.o: ../../../morm/src/transaction.h winixmodeldeprecated.o: ../../../winix/winixd/core/log.h winixmodeldeprecated.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h winixmodeldeprecated.o: plugin.h pluginmsg.h plugindata.h winixbase.h @@ -2493,6 +2582,7 @@ winixsystem.o: ../../../morm/src/postgresqlexpression.h winixsystem.o: ../../../morm/src/jsonconnector.h winixsystem.o: ../../../morm/src/postgresqlconnector.h winixsystem.o: ../../../morm/src/postgresqlqueryresult.h +winixsystem.o: ../../../morm/src/transaction.h winixsystem.o: ../../../winix/winixd/core/log.h winixsystem.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h plugin.h winixsystem.o: pluginmsg.h plugindata.h winixbase.h diff --git a/winixd/core/Makefile.o.dep b/winixd/core/Makefile.o.dep index 31bb59b..63a6f4d 100644 --- a/winixd/core/Makefile.o.dep +++ b/winixd/core/Makefile.o.dep @@ -1 +1 @@ -o = app.o basethread.o compress.o config.o crypt.o dircontainer.o dirs.o filelog.o groups.o httpsimpleparser.o image.o ipbancontainer.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 users.o winixbase.o winixmodeldeprecated.o winixrequest.o winixsystem.o \ No newline at end of file +o = app.o basethread.o compress.o config.o crypt.o dircontainer.o dirs.o filelog.o groups.o header.o httpsimpleparser.o image.o ipbancontainer.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 users.o winixbase.o winixmodeldeprecated.o winixrequest.o winixsystem.o \ No newline at end of file diff --git a/winixd/core/app.cpp b/winixd/core/app.cpp index c7af292..c28abe4 100644 --- a/winixd/core/app.cpp +++ b/winixd/core/app.cpp @@ -612,6 +612,7 @@ bool App::CheckAccessFromPlugins() if( res.res_false > 0 ) { cur.request->status = WINIX_ERR_PERMISSION_DENIED; + cur.request->http_status = Header::status_403_forbidden; log << log2 << "App: access prevented by a plugin" << logend; return false; } @@ -621,102 +622,155 @@ return true; -void App::ProcessRequestThrow() + + + +/* + * REFACTOR ME + */ +void App::MakeRenameMeToABetterName() { - ReadRequest(); - - // when BaseUrlRedirect() return true we didn't have to set everything in cur.request->Read() - // in the future cur.request->Read() can be split and at the beginning only environment variables will be read - // and then BaseUrlRedirect() will be called (for performance) - if( !BaseUrlRedirect() ) + if( cur.request->function ) { - if( cur.request->env_request_uri.size() <= WINIX_URL_MAX_SIZE ) - { - functions.Parse(); // parsing directories, files, functions and parameters - - if( cur.request->function ) - { - cur.request->function->fun.set_connector(model_connector); // IMPROVEME may would be better to add set_connector() method to functions? - cur.request->function->fun.propagate_connector(); - } - - /* - * set global connector for now - * in the future each thread will have its own model_connector - * - * don't set connector for item_tab - it will be moved out from request - */ - cur.request->item.set_connector(model_connector); - - if( !cur.request->dir_tab.empty() ) - { - cur.mount = system.mounts.CalcCurMount(); - - cur.session = session_manager.PrepareSession(); - model_connector.set_winix_session(cur.session); - - functions.CheckFunctionAndSymlink(); // here a function can be changed - - if( cur.request->function ) - { - cur.request->function->fun.set_connector(model_connector); - cur.request->function->fun.propagate_connector(); - } - - cur.session = session_manager.CheckIfFunctionRequireSession(); - model_connector.set_winix_session(cur.session); - - SetLocale(); - - if( cur.session->new_session ) - { - cur.session->plugin_data.Resize(plugin.Size()); - plugin.Call(WINIX_SESSION_CREATED); - } - - plugin.Call(WINIX_SESSION_CHANGED); - } - } - else - { - /* - * IMPROVE ME - * it will not have the root directory set - * so as a response only a blank page is shown - * (root directory is set in funcions.Parse()) - * - * IMPROVE ME - * we can add a better return code (http status): - * http://www.ietf.org/rfc/rfc2616.txt - * "A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle" - * - */ - cur.request->status = WINIX_ERR_PERMISSION_DENIED; - log << log1 << "App: the URL is too long: " << cur.request->env_request_uri.size() << logend; - } - - if( cur.request->dir_tab.empty() ) - { - log << log1 << "App: there is no a root dir (dir_tab is empty), adding a root dir" << logend; - Item * root_dir = system.dirs.GetRootDir(); - - if( root_dir ) - { - cur.request->dir_tab.push_back(root_dir); - cur.request->last_item = cur.request->dir_tab.back(); - cur.mount = system.mounts.CalcCurMount(); - } - else - { - log << log1 << "App: oops, we do not have a root dir" << logend; - } - } - - if( cur.mount->type != system.mounts.MountTypeStatic() ) - Make(); + cur.request->function->fun.set_connector(model_connector); // IMPROVEME may would be better to add set_connector() method to functions? + cur.request->function->fun.propagate_connector(); } - SendAnswer(); + /* + * set global connector for now + * in the future each thread will have its own model_connector + * + * don't set connector for item_tab - it will be moved out from request + */ + cur.request->item.set_connector(model_connector); + + cur.mount = system.mounts.CalcCurMount(); + + cur.session = session_manager.PrepareSession(); + model_connector.set_winix_session(cur.session); + + functions.CheckFunctionAndSymlink(); // here a function can be changed + + if( cur.request->function ) + { + cur.request->function->fun.set_connector(model_connector); + cur.request->function->fun.propagate_connector(); + } + + cur.session = session_manager.CheckIfFunctionRequireSession(); + model_connector.set_winix_session(cur.session); + + SetLocale(); + + if( cur.session->new_session ) + { + cur.session->plugin_data.Resize(plugin.Size()); + plugin.Call(WINIX_SESSION_CREATED); + } + + plugin.Call(WINIX_SESSION_CHANGED); + + + //////////////////////// + + + cur.request->PrepareAnswerType(); + + if( cur.session->ip_ban && cur.session->ip_ban->IsIPBanned() ) + { + pt::Date date(cur.session->ip_ban->expires); + + // IMPROVE ME there is no slog now + //slog << logerror << T("this_ip_is_banned_until") << ' ' << date << " UTC" << logend; + + cur.request->status = WINIX_ERR_PERMISSION_DENIED; + cur.request->http_status = Header::status_403_forbidden; + } + + // cur.request->status can be changed by function_parser + if( cur.request->status == WINIX_ERR_OK && cur.request->http_status == Header::status_200_ok ) + plugin.Call(WINIX_PREPARE_REQUEST); + +// if( cur.request->status == WINIX_ERR_OK ) +// functions.CheckFunctionAndSymlink(); + + CheckAccessFromPlugins(); + + // !! CHECK ME CheckFunctionAndSymlink can set redirect_to + // may it should be tested before calling CheckIfNeedSSLredirect? + CheckIfNeedSSLredirect(); + + if( !cur.request->redirect_to.empty() ) + return; + + AddDefaultModels(); + + if( cur.request->status == WINIX_ERR_OK && cur.request->http_status == Header::status_200_ok ) + functions.MakeFunction(); + + if( cur.session->spam_score > 0 ) + log << log1 << "App: spam score: " << cur.session->spam_score << logend; + + if( cur.request->IsParam(L"noredirect") ) + cur.request->redirect_to.clear(); + + if( cur.request->status == WINIX_ERR_OK && cur.request->http_status == Header::status_200_ok ) + plugin.Call(WINIX_PROCESS_REQUEST); + + CheckPostRedirect(); + + if( !cur.request->redirect_to.empty() ) + return; + + if( cur.request->dir_tab.empty() ) + { + log << log1 << "App: there is no a root dir (dir_tab is empty -- after calling a function)" << logend; + return; + } +} + + + + +bool App::AddRootDir() +{ + Item * root_dir = system.dirs.GetRootDir(); + + if( root_dir ) + { + cur.request->dir_tab.push_back(root_dir); + cur.request->last_item = cur.request->dir_tab.back(); + } + else + { + log << log3 << "App: there is no a root directory" << logend; + cur.request->http_status = Header::status_404_not_found; + } + + return root_dir != nullptr; +} + + + +void App::ProcessRequestThrow() +{ + if( AddRootDir() ) + { + ReadRequest(); + + if( !BaseUrlRedirect() ) + { + if( functions.Parse() ) + { + ReadPostVars(); + } + + if( cur.mount->type != system.mounts.MountTypeStatic() ) + { + MakeRenameMeToABetterName(); + } + } + } } @@ -732,6 +786,8 @@ void App::ProcessRequest() log << log2 << config.log_delimiter << logend; ProcessRequestThrow(); + ModifyStatusCodeIfNeeded(); + SendAnswer(); SaveSessionsIfNeeded(); cur.request->RequestEnds(); @@ -784,6 +840,7 @@ void App::ClearAfterRequest() aheader_value.clear(); cur.mount = system.mounts.GetEmptyMount(); system.mounts.pmount = cur.mount; // IMPROVE ME system.mounts.pmount will be removed + post_log_tmp_buffer.clear(); // send_data_buf doesn't have to be cleared and it is better to not clear it (optimizing) model_connector.set_winix_request(nullptr); @@ -908,70 +965,6 @@ void App::AddDefaultModels() -// !! IMPROVE ME change to a better name -// may ProcessRequest()? but probably it is already defined... -// this method needs some refactoring -void App::Make() -{ - if( cur.request->dir_tab.empty() ) - { - log << log1 << "App: there is no a root dir (dir_tab is empty)" << logend; - return; - } - - cur.request->PrepareAnswerType(); - - if( cur.session->ip_ban && cur.session->ip_ban->IsIPBanned() ) - { - pt::Date date(cur.session->ip_ban->expires); - - // IMPROVE ME there is no slog now - //slog << logerror << T("this_ip_is_banned_until") << ' ' << date << " UTC" << logend; - - cur.request->status = WINIX_ERR_PERMISSION_DENIED; - } - - // cur.request->status can be changed by function_parser - if( cur.request->status == WINIX_ERR_OK ) - plugin.Call(WINIX_PREPARE_REQUEST); - -// if( cur.request->status == WINIX_ERR_OK ) -// functions.CheckFunctionAndSymlink(); - - CheckAccessFromPlugins(); - - // !! CHECK ME CheckFunctionAndSymlink can set redirect_to - // may it should be tested before calling CheckIfNeedSSLredirect? - CheckIfNeedSSLredirect(); - - if( !cur.request->redirect_to.empty() ) - return; - - AddDefaultModels(); - - if( cur.request->status == WINIX_ERR_OK ) - functions.MakeFunction(); - - if( cur.session->spam_score > 0 ) - log << log1 << "App: spam score: " << cur.session->spam_score << logend; - - if( cur.request->IsParam(L"noredirect") ) - cur.request->redirect_to.clear(); - - if( cur.request->status == WINIX_ERR_OK ) - plugin.Call(WINIX_PROCESS_REQUEST); - - CheckPostRedirect(); - - if( !cur.request->redirect_to.empty() ) - return; - - if( cur.request->dir_tab.empty() ) - { - log << log1 << "App: there is no a root dir (dir_tab is empty -- after calling a function)" << logend; - return; - } -} void App::LogEnvironmentVariables() @@ -1052,7 +1045,7 @@ void App::ReadRequest() LogAccess(); ReadEnvHTTPVariables(); - ReadPostVars(); + //ReadPostVars(); if( config.log_env_variables ) LogEnvironmentVariables(); @@ -1071,6 +1064,7 @@ void App::ReadRequest() if( cur.request->using_ssl ) log << log3 << "App: connection secure through SSL" << logend; + } @@ -1293,8 +1287,7 @@ void App::LogAccess() } - -void App::ReadPostJson() +void App::ReadInputPostToBuffer() { char buffer[1024]; const int buffer_len = sizeof(buffer) / sizeof(char) - 1; @@ -1303,34 +1296,89 @@ void App::ReadPostJson() post_buffer.clear(); post_buffer.reserve(1024 * 1024 * 5); // IMPROVEME add to config? - cur.request->is_postin_used = true; - do { - // IMPROVE ME - // we can read to pt::TextBuffer and make a pt::JSONToSpaceParser::Parse(pt::TextBuffer &) method read_len = FCGX_GetStr(buffer, buffer_len, fcgi_request.in); if( read_len > 0 ) - post_buffer.append(buffer, read_len); + post_buffer.write(buffer, read_len); } while( read_len == buffer_len ); +} + + +void App::ParsePostJson() +{ + FunctionBase * fun = cur.request->function; + + space_parser.set_object_items_limit( (fun && fun->post_max_object_items != 0) ? fun->post_max_object_items : config.post_max_object_items); + space_parser.set_table_items_limit( (fun && fun->post_max_table_items != 0) ? fun->post_max_table_items : config.post_max_table_items); + space_parser.set_all_items_limit( (fun && fun->post_max_all_items != 0) ? fun->post_max_all_items : config.post_max_all_items); + space_parser.set_nested_level_limit( (fun && fun->post_max_nested_objects != 0) ? fun->post_max_nested_objects : config.post_max_nested_objects); + + pt::SpaceParser::Status parse_status = space_parser.parse_json(post_buffer, cur.request->post_in); + + if( parse_status == pt::SpaceParser::ok ) + { + } + else + if( parse_status == pt::SpaceParser::syntax_error ) + { + log << log1 << "App: cannot parse the input stream as an JSON object" + << ", syntax error in line: " << space_parser.get_last_parsed_line() << ":" << space_parser.get_last_parsed_column() << logend; + + cur.request->post_in.clear(); + cur.request->http_status = Header::status_400_bad_request; + } + else + if( parse_status == pt::SpaceParser::limit_object_items_exceeded ) + { + log << log1 << "App: object items limit exceeded when parsing input JSON object" << logend; + cur.request->post_in.clear(); + cur.request->http_status = Header::status_400_bad_request; + } + else + if( parse_status == pt::SpaceParser::limit_table_items_exceeded ) + { + log << log1 << "App: table items limit exceeded when parsing input JSON object" << logend; + cur.request->post_in.clear(); + cur.request->http_status = Header::status_400_bad_request; + } + else + if( parse_status == pt::SpaceParser::limit_all_items_exceeded ) + { + log << log1 << "App: all items limit exceeded when parsing input JSON object" << logend; + cur.request->post_in.clear(); + cur.request->http_status = Header::status_400_bad_request; + } + else + if( parse_status == pt::SpaceParser::limit_nested_level_exceeded ) + { + log << log1 << "App: nested objects/tables limit exceeded when parsing input JSON object" << logend; + cur.request->post_in.clear(); + cur.request->http_status = Header::status_400_bad_request; + } +} + + +void App::ReadPostJson() +{ + ReadInputPostToBuffer(); + if( !post_buffer.empty() ) { - pt::SpaceParser::Status status = space_parser.parse_json(post_buffer.c_str(), cur.request->post_in); - post_buffer.clear(); - - if( status != pt::SpaceParser::ok ) + if( config.post_json_max == 0 || post_buffer.size() <= config.post_json_max ) { - log << log1 << "App: cannot parse the input stream as an JSON object"; - - if( status == pt::SpaceParser::syntax_error ) - log << ", syntax error in line: " << space_parser.get_last_parsed_line() << logend; - - cur.request->post_in.clear(); - // return an error (http error of some kind?) + ParsePostJson(); } + else + { + log << log1 << "App: the input stream exceeded the limit of " << config.post_json_max << " bytes (skipping parsing)" << logend; + cur.request->http_status = Header::status_400_bad_request; + } + + post_buffer.clear(); } else { @@ -1342,26 +1390,29 @@ void App::ReadPostJson() void App::ReadPostVars() { - // CHECKME - // what about errors during parsing input? - if( cur.request->method == Request::post || cur.request->method == Request::delete_ ) { if( pt::is_substr_nc(L"multipart/form-data", cur.request->env_content_type.c_str()) ) { log << log3 << "App: post content type: multipart/form-data" << logend; - post_multi_parser.Parse(fcgi_request.in, cur.request->post_tab, cur.request->post_file_tab); + post_multi_parser.Parse(fcgi_request.in, *cur.request); // IMPROVEME add checking for return status } else if( pt::is_substr_nc(Winix::Header::application_json, cur.request->env_content_type.c_str()) ) { - log << log3 << "App: post content type: " << Winix::Header::application_json << logend; + log << log3 << "App: post content type: " << Winix::Header::application_json << ", using json parser" << logend; ReadPostJson(); } else { // IMPROVE ME may to check a correct content-type header? - post_parser.Parse(fcgi_request.in, cur.request->post_tab); + post_parser.Parse(fcgi_request.in, *cur.request); // IMPROVEME add checking for return status + } + + if( config.log_whole_http_post ) + { + cur.request->post_in.serialize_to_json_stream(post_log_tmp_buffer, true); + log << log3 << "App: the whole http post after parsing:" << logend << post_log_tmp_buffer << logend; } } } @@ -1464,7 +1515,7 @@ return false; } -bool App::PrepareHeadersStaticCreateResource(pt::WTextStream & out_path) +bool App::CreateStaticResourcePath(pt::WTextStream & out_path) { size_t i = 0; Item * dir = system.dirs.GetDir(system.mounts.pmount->dir_id); @@ -1476,7 +1527,7 @@ bool App::PrepareHeadersStaticCreateResource(pt::WTextStream & out_path) } size_t how_many_dirs = system.dirs.DirLevel(dir->id); - const wchar_t * path = SkipDirs(cur.request->env_request_uri.c_str(), how_many_dirs); + const wchar_t * path = SkipDirs(cur.request->env_request_uri.c_str(), how_many_dirs); // the path begins with a slash only if how_many_dirs is zero while( *path == '/' ) @@ -1492,12 +1543,12 @@ return true; } -void App::PrepareHeadersStatic() +void App::PrepareSendFileHeaderForStaticMountpoint() { if( PathHasUpDir(cur.request->env_request_uri) ) { log << log1 << "App: incorrect path for a static file" << logend; - PrepareHeadersForbidden(); + cur.request->http_status = Header::status_403_forbidden; return; } @@ -1507,27 +1558,27 @@ void App::PrepareHeadersStatic() if( index >= config.static_dirs.size() ) { log << log1 << "App: static dir with index " << index << " is not defined in the config" << logend; - PrepareHeadersForbidden(); + cur.request->http_status = Header::status_403_forbidden; return; } pt::WTextStream path; path << config.static_dirs[index] << L"/"; - if( !PrepareHeadersStaticCreateResource(path) ) + if( !CreateStaticResourcePath(path) ) { - PrepareHeadersForbidden(); + cur.request->http_status = Header::status_403_forbidden; return; } - AddHeader(L"Status", L"200 OK"); - /* - * FIX ME now we can send full path (apache, lighttpd) and relative path (nginx) - * but this feature for mounting static content probably will be removed + * FIX ME now we can send full path (apache, lighttpd) and relative path (nginx) + * but this feature for mounting static content probably will be removed */ if( AddHeader(config.send_file_header, path) ) + { log << log2 << "App: sending a file from a static mountpoint: " << path << logend; + } } @@ -1579,80 +1630,58 @@ void App::PrepareHeaderContentType() -void App::PrepareHeadersForbidden() -{ - AddHeader(L"Status", L"403 Forbidden"); - PrepareHeaderContentType(); -} - - -void App::PrepareHeadersRedirect() +void App::ModifyStatusForRedirect() { switch(cur.request->redirect_type) { case 300: - AddHeader(L"Status", L"300 Multiple Choices"); + cur.request->http_status = Header::status_300_multiple_choices; break; case 301: - AddHeader(L"Status", L"301 Moved Permanently"); + cur.request->http_status = Header::status_301_moved_permanently; break; case 302: - AddHeader(L"Status", L"302 Found"); + cur.request->http_status = Header::status_302_found; break; case 307: - AddHeader(L"Status", L"307 Temporary Redirect"); + cur.request->http_status = Header::status_307_temporary_redirect; break; case 303: default: - AddHeader(L"Status", L"303 See Other"); + cur.request->http_status = Header::status_303_see_other; break; } - - AddHeader(L"Location", cur.request->redirect_to); - log << log2 << "App: redirect to: " << cur.request->redirect_to << logend; } -void App::PrepareHeadersSendFile() +void App::PrepareSendFileHeader() { - AddHeader(L"Status", L"200 OK"); - if( AddHeader(config.send_file_header, cur.request->x_sendfile) ) + { log << log2 << "App: sending file: " << cur.request->x_sendfile << logend; + } } -void App::PrepareHeadersCompression(int compress_encoding) +void App::PrepareContentEncodingHeader(int compress_encoding) { if( compress_encoding == 0 || compress_encoding == 1 ) + { AddHeader(L"Content-Encoding", L"deflate"); + } else + { AddHeader(L"Content-Encoding", L"gzip"); + } } -void App::PrepareHeadersNormal(Header header, size_t output_size) +void App::PrepareContentLengthHeader(size_t output_size) { - switch( header ) - { - case h_404: - AddHeader(L"Status", L"404 Not Found"); - PrepareHeaderContentType(); - break; - - case h_403: - PrepareHeadersForbidden(); - break; - - default: - AddHeader(L"Status", L"200 OK"); - PrepareHeaderContentType(); - } - if( output_size != static_cast(-1) ) { pt::WTextStream buf; @@ -1734,35 +1763,53 @@ void App::SendCookies() } -void App::PrepareHeaders(bool compressing, int compress_encoding, Header header, size_t output_size) +void App::PrepareHeaderStatus(int http_status) +{ + pt::WTextStream value; + Header::prepare_status_value(http_status, value, false); + AddHeader(L"Status", value); + log << log2 << "App: http status: " << value << logend; +} + + + +void App::PrepareHeaders(bool compressing, int compress_encoding, size_t output_size) { PrepareSessionCookie(); if( cur.request->send_as_attachment ) + { AddHeader(L"Content-Disposition", L"attachment"); + } - //if( !cur.request->redirect_to.empty() && !cur.request->return_json ) if( !cur.request->redirect_to.empty() ) { - PrepareHeadersRedirect(); + ModifyStatusForRedirect(); + AddHeader(L"Location", cur.request->redirect_to); + log << log2 << "App: redirect to: " << cur.request->redirect_to << logend; } else if( system.mounts.pmount->type == system.mounts.MountTypeStatic() ) { - PrepareHeadersStatic(); + PrepareSendFileHeaderForStaticMountpoint(); } else if( !cur.request->x_sendfile.empty() ) { - PrepareHeadersSendFile(); + PrepareSendFileHeader(); } else { - PrepareHeadersNormal(header, output_size); + PrepareContentLengthHeader(output_size); } if( compressing ) - PrepareHeadersCompression(compress_encoding); + { + PrepareContentEncodingHeader(compress_encoding); + } + + PrepareHeaderStatus(cur.request->http_status); + PrepareHeaderContentType(); } @@ -1804,7 +1851,6 @@ void App::SelectCompression(size_t source_len, bool & compression_allowed, int & } } - if( config.compression_encoding == 2 || config.compression_encoding == 20 ) { if( accept_encoding_parser.AcceptGzip() ) @@ -1833,54 +1879,53 @@ bool App::CanSendContent() return false; } -// if( cur.request->return_json ) -// { -// // if there is a redirect flag then it will be put to info struct -// return true; -// } - if( !cur.request->redirect_to.empty() ) { // if there is a redirect and no json is requred then we do not send the content return false; } - /* - we don't have to check the HEAD method - the server (lighttpd) doesn't send the body of its own - */ if( cur.request->method == Request::head ) + { return false; + } -return true; + return true; } -App::Header App::GetHTTPStatusCode() +void App::ModifyStatusCodeIfNeeded() { -Error status = cur.request->status; -Header header = h_200; + Error status = cur.request->status; - if( status == WINIX_ERR_NO_ITEM || status == WINIX_ERR_NO_FUNCTION || status == WINIX_ERR_UNKNOWN_PARAM ) + // moved from Templates when a pattern was selected + switch( status ) { - header = h_404; - log << log2 << "App: http response: 404 Not Found" << logend; + case WINIX_ERR_INCORRECT_URI: // !!temporarily + case WINIX_ERR_INTERNAL_ERROR: // !! temprarily + case WINIX_ERR_PERMISSION_DENIED: + case WINIX_ERR_CANT_CHANGE_USER: + case WINIX_ERR_CANT_CHANGE_GROUP: + case WINIX_ERR_CANT_CHANGE_PRIVILEGES: + cur.request->http_status = Header::status_403_forbidden; + break; + + case WINIX_ERR_NO_ITEM: + case WINIX_ERR_NO_FUNCTION: + case WINIX_ERR_UNKNOWN_PARAM: + cur.request->http_status = Header::status_404_not_found; + break; } - if( status == WINIX_ERR_PERMISSION_DENIED || status == WINIX_ERR_CANT_CHANGE_USER || status == WINIX_ERR_CANT_CHANGE_GROUP ) - { - header = h_403; - log << log2 << "App: http response: 403 Forbidden" << logend; - } - - if( cur.request->use_200_status_for_not_found_and_permission_denied && (header == h_404 || header == h_403) ) + if( cur.request->use_200_status_for_not_found_and_permission_denied && ( + cur.request->http_status == Header::status_404_not_found || + cur.request->http_status == Header::status_403_forbidden + )) { + cur.request->http_status = Header::status_200_ok; log << log3 << "App: changing the http response to: 200 OK" << logend; - header = h_200; } - -return header; } @@ -2389,7 +2434,6 @@ void App::Send8bitOutput(BinaryPage & output) { bool compressing = false; int compress_encoding = 0; - Header header = GetHTTPStatusCode(); size_t output_size = 0; SelectCompression(output.size(), compressing, compress_encoding); @@ -2409,7 +2453,7 @@ void App::Send8bitOutput(BinaryPage & output) output_size = output.size(); } - PrepareHeaders(compressing, compress_encoding, header, output_size); + PrepareHeaders(compressing, compress_encoding, output_size); SendHeaders(); SendCookies(); FCGX_PutS("\r\n", fcgi_request.out); diff --git a/winixd/core/app.h b/winixd/core/app.h index df897eb..3d0f038 100644 --- a/winixd/core/app.h +++ b/winixd/core/app.h @@ -127,17 +127,10 @@ public: private: - enum Header - { - h_200, - h_404, - h_403 - }; - PostParser post_parser; PostMultiParser post_multi_parser; pt::SpaceParser space_parser; - std::string post_buffer; + pt::TextStream post_buffer; CookieParser cookie_parser; AcceptBaseParser accept_base_parser; @@ -154,6 +147,7 @@ private: //std::wstring html_filtered; //std::string output_8bit; pt::TextStream serialized_model; + pt::WTextStream post_log_tmp_buffer; pt::WTextStream output_tmp_filtered_stream; BinaryPage output_8bit; @@ -196,6 +190,8 @@ private: bool DropPrivileges(char * user, char * group); bool DropPrivileges(const char * user, uid_t uid, gid_t gid, bool additional_groups); bool CheckAccessFromPlugins(); + void MakeRenameMeToABetterName(); + bool AddRootDir(); void ProcessRequestThrow(); void ProcessRequest(); void BaseUrlRedirect(int code, bool add_subdomain); @@ -205,7 +201,6 @@ private: void CheckPostRedirect(); void UseEzcGenerator(); void AddDefaultModels(); - void Make(); void SaveSessionsIfNeeded(); // !! IMPROVE ME wywalic do menagera sesji?? void LogAccess(); void SendData(const BinaryPage & page, FCGX_Stream * out); @@ -251,6 +246,8 @@ private: void ReadEnvHTTPVariables(); bool SaveEnvHTTPVariable(const char * env); void ReadEnvRemoteIP(); + void ReadInputPostToBuffer(); + void ParsePostJson(); void ReadPostJson(); void ReadPostVars(); @@ -263,7 +260,7 @@ private: bool IsRequestedFrame(); - Header GetHTTPStatusCode(); + void ModifyStatusCodeIfNeeded(); void PrepareSessionCookie(); void SendHeaders(); void SendCookies(); @@ -271,15 +268,15 @@ private: bool AddHeader(const std::wstring & name, const std::wstring & value); bool AddHeader(const wchar_t * name, const pt::WTextStream & value); bool AddHeader(const std::wstring & name, const pt::WTextStream & value); - bool PrepareHeadersStaticCreateResource(pt::WTextStream & out_path); - void PrepareHeadersStatic(); + bool CreateStaticResourcePath(pt::WTextStream & out_path); + void PrepareSendFileHeaderForStaticMountpoint(); void PrepareHeaderContentType(); - void PrepareHeadersForbidden(); - void PrepareHeadersRedirect(); - void PrepareHeadersSendFile(); - void PrepareHeadersCompression(int compress_encoding); - void PrepareHeadersNormal(Header header, size_t output_size); - void PrepareHeaders(bool compressing, int compress_encoding, Header header, size_t output_size); + void ModifyStatusForRedirect(); + void PrepareSendFileHeader(); + void PrepareContentEncodingHeader(int compress_encoding); + void PrepareContentLengthHeader(size_t output_size); + void PrepareHeaderStatus(int http_status); + void PrepareHeaders(bool compressing, int compress_encoding, size_t output_size); int SelectDeflateVersion(); void SelectCompression(size_t source_len, bool & compression_allowed, int & compression_encoding); bool CanSendContent(); diff --git a/winixd/core/config.cpp b/winixd/core/config.cpp index 98643f2..1c76c77 100644 --- a/winixd/core/config.cpp +++ b/winixd/core/config.cpp @@ -72,7 +72,12 @@ void Config::ShowError(const std::wstring & config_file) break; case pt::SpaceParser::syntax_error: - log << log1 << "Config: syntax error in file: " << config_file << ", line: " << parser.get_last_parsed_line() << logend; + log << log1 << "Config: syntax error in file: " << config_file << ", line: " + << parser.get_last_parsed_line() << ":" << parser.get_last_parsed_column() << logend; + break; + + default: + // there are no limits sets when parsing the config file break; } } @@ -142,9 +147,15 @@ void Config::AssignValues() log_post_value_size = Size(L"log_post_value_size", 80); log_env_variables = Bool(L"log_env_variables", false); log_env_http_variables = Bool(L"log_env_http_variables", false); + log_whole_http_post = Bool(L"log_whole_http_post", false); log_http_answer_headers = Bool(L"log_http_answer_headers", false); post_file_max = Size(L"post_file_max", 8388608); // 8 MB + post_json_max = Size(L"post_json_max", 8388608); // 8 MB + post_max_object_items = Size(L"post_max_object_items", 1024); + post_max_table_items = Size(L"post_max_table_items", 4096); + post_max_all_items = Size(L"post_max_all_items", 8192); + post_max_nested_objects = Size(L"post_max_nested_objects", 32); upload_dir = Text(L"upload_dir"); common_dir = Text(L"common_dir"); @@ -177,6 +188,7 @@ void Config::AssignValues() templates_index = Text(L"templates_index", L"index.html"); templates_index_generic = Text(L"templates_index_generic", L"index_generic.html"); templates_index_raw = Text(L"templates_index_raw", L"index_raw.html"); + templates_request_status = Text(L"templates_request_status", L"request_status.html"); template_only_root_use_template_fun = Bool(L"template_only_root_use_template_fun", false); http_session_id_name = Text(L"http_session_id_name", L"session_id"); diff --git a/winixd/core/config.h b/winixd/core/config.h index f3a3269..b505d8a 100644 --- a/winixd/core/config.h +++ b/winixd/core/config.h @@ -84,7 +84,8 @@ public: // the log level (how much info should be inserted to logs) // 1 - minimum // 2 - (default) - // 3 - maximum - all logs + // 3 - more logs + // 4 - maximum - all logs int log_level; // logging to stdout too @@ -130,11 +131,17 @@ public: std::wstring log_delimiter; // log environment variables (fastcgi environment) + // default: false; bool log_env_variables; // log environment http variables (only HTTP_* variables from fastcgi environment) + // default: false; bool log_env_http_variables; + // log the whole http post structure (in json format) after parsing the post input + // default: false; + bool log_whole_http_post; + // log headers (+cookies) which are returned to the client // this is what winix has generated -- the web server can change or add other headers // default: false @@ -198,6 +205,10 @@ public: // default: index_raw.html std::wstring templates_index_raw; + // html template used to show a http status such as Forbidden or Not Found + // default: request_status.html + std::wstring templates_request_status; + // if true then only root can use 'template' winix function // default: false bool template_only_root_use_template_fun; @@ -404,6 +415,35 @@ public: // 0 - not used size_t post_file_max; + // maximum length of the input stream when parsing it as json + // default: 8388608 - 8MB + // set zero to disable checking + size_t post_json_max; + + // maximum key/value pairs in one object when parsing post json structure + // default: 1024 + // set zero to disable checking + // each winix function can set its own limits + size_t post_max_object_items; + + // maximum items in one table when parsing post json structure + // default: 4096 + // set zero to disable checking + // each winix function can set its own limits + size_t post_max_table_items; + + // maximum items (key/values pairs of objects or table items) througout the whole post input json structure + // default: 8192 + // set zero to disable checking + // each winix function can set its own limits + size_t post_max_all_items; + + // maximum nested objects/tables when parsing post json structure + // default: 32 + // set zero to disable checking + // each winix function can set its own limits + size_t post_max_nested_objects; + // directory for static files std::wstring upload_dir; diff --git a/winixd/core/header.cpp b/winixd/core/header.cpp new file mode 100644 index 0000000..29b29fb --- /dev/null +++ b/winixd/core/header.cpp @@ -0,0 +1,74 @@ +/* + * This file is a part of Winix + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2022, 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 "header.h" + + +namespace Winix +{ + +const wchar_t * Header::find_status_string_value(int http_status) +{ + size_t table_len = sizeof(status_int_string_map) / sizeof(StatusIntStringMapHelper); + + for(size_t i=0 ; i < table_len ; ++i) + { + if( status_int_string_map[i].status_int == http_status ) + { + return status_int_string_map[i].status_str; + } + } + + return nullptr; +} + + +void Header::prepare_status_value(int http_status, pt::WTextStream & value, bool clear_value) +{ + if( clear_value ) + value.clear(); + + value << http_status; + const wchar_t * value_str = find_status_string_value(http_status); + + if( value_str ) + { + value << ' ' << value_str; + } +} + + +} + + diff --git a/winixd/core/header.h b/winixd/core/header.h index 6dbf538..50c885e 100644 --- a/winixd/core/header.h +++ b/winixd/core/header.h @@ -36,6 +36,7 @@ #define headerfile_winix_core_header #include "log.h" +#include namespace Winix @@ -83,9 +84,63 @@ public: static constexpr const wchar_t * text_javascript_utf8 = L"text/javascript; charset=UTF-8"; + static const int status_200_ok = 200; + static const int status_300_multiple_choices = 300; + static const int status_301_moved_permanently = 301; + static const int status_302_found = 302; + static const int status_303_see_other = 303; + static const int status_307_temporary_redirect = 307; + static const int status_400_bad_request = 400; + static const int status_403_forbidden = 403; + static const int status_404_not_found = 404; + static const int status_414_uri_too_long = 414; + static const int status_500_internal_server_error = 500; + + + static constexpr const wchar_t * str_status_200 = L"OK"; + static constexpr const wchar_t * str_status_300 = L"Multiple Choices"; + static constexpr const wchar_t * str_status_301 = L"Moved Permanently"; + static constexpr const wchar_t * str_status_302 = L"Found"; + static constexpr const wchar_t * str_status_303 = L"See Other"; + static constexpr const wchar_t * str_status_307 = L"Temporary Redirect"; + static constexpr const wchar_t * str_status_400 = L"Bad Request"; + static constexpr const wchar_t * str_status_403 = L"Forbidden"; + static constexpr const wchar_t * str_status_404 = L"Not Found"; + static constexpr const wchar_t * str_status_414 = L"URI Too Long"; + static constexpr const wchar_t * str_status_500 = L"Internal Server Error"; + + + static const wchar_t * find_status_string_value(int http_status); + static void prepare_status_value(int http_status, pt::WTextStream & value, bool clear_value = true); + + +protected: + + + struct StatusIntStringMapHelper + { + int status_int; + const wchar_t * status_str; + }; + + static constexpr StatusIntStringMapHelper status_int_string_map[] = { + {status_200_ok, str_status_200}, + {status_300_multiple_choices, str_status_300}, + {status_301_moved_permanently, str_status_301}, + {status_302_found, str_status_302}, + {status_303_see_other, str_status_303}, + {status_307_temporary_redirect, str_status_307}, + {status_400_bad_request, str_status_400}, + {status_403_forbidden, str_status_403}, + {status_404_not_found, str_status_404}, + {status_414_uri_too_long, str_status_414}, + {status_500_internal_server_error, str_status_500}, + }; + }; + class HeaderValue { public: diff --git a/winixd/core/postmultiparser.cpp b/winixd/core/postmultiparser.cpp index 837f257..3bab06b 100644 --- a/winixd/core/postmultiparser.cpp +++ b/winixd/core/postmultiparser.cpp @@ -395,17 +395,10 @@ void PostMultiParser::ConvStr(const std::string & src, std::wstring & dst) void PostMultiParser::AddNormalPostVar() { - if( post_tab->size() >= WINIX_POSTTABLE_MAXSIZE ) - { - err = WINIX_ERR_INPUT_TOO_LARGE; - log << log1 << "PMP: more than " << WINIX_POSTTABLE_MAXSIZE << " post variables (skipping)" << logend; - return; - } - ConvStr(name, namew); ConvStr(content, contentw); - bool added = InsertPostVar(*post_tab, namew, contentw); + bool added = request->AddPostVar(namew, contentw); log << log2 << "PMP: POST var, name: \"" << namew << "\""; @@ -418,7 +411,7 @@ void PostMultiParser::AddNormalPostVar() void PostMultiParser::AddFilePostVar() { - if( post_file_tab->size() >= WINIX_POSTTABLE_MAXSIZE ) + if( request->post_file_tab.size() >= WINIX_POSTTABLE_MAXSIZE ) { err = WINIX_ERR_INPUT_TOO_LARGE; log << log1 << "PMP: more than " << WINIX_POSTTABLE_MAXSIZE << " post file variables (skipping)" << logend; @@ -430,7 +423,7 @@ void PostMultiParser::AddFilePostVar() post_file_temp.tmp_filename = tmp_filename; post_file_temp.file_size = content_len; - bool added = InsertPostVar(*post_file_tab, namew, post_file_temp); + bool added = InsertPostVar(request->post_file_tab, namew, post_file_temp); log << log2 << "PMP: POST FILE var, name: \"" << namew << "\""; @@ -581,7 +574,7 @@ void PostMultiParser::ReadChar() -Error PostMultiParser::Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab & post_file_tab_) +Error PostMultiParser::Parse(FCGX_Stream * in_, Request & request) { in = in_; last = 0; @@ -590,8 +583,7 @@ Error PostMultiParser::Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab line_end_dos = false; in_buffer_ind = WINIX_POSTMULTI_INPUT_BUFFER; in_buffer_len = WINIX_POSTMULTI_INPUT_BUFFER; - post_tab = &post_tab_; - post_file_tab = &post_file_tab_; + this->request = &request; tmp_filename_postfix = 1; ReadChar(); @@ -605,9 +597,8 @@ Error PostMultiParser::Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab if( err != WINIX_ERR_OK ) { - RemovePostFileTmp(*post_file_tab); - post_tab->clear(); - post_file_tab->clear(); + RemovePostFileTmp(request.post_file_tab); + request.post_in.clear(); if( err != WINIX_ERR_INPUT_TOO_LARGE && err != WINIX_ERR_CANT_CREATE_FILE ) log << log1 << "PMP: syntax error" << logend; diff --git a/winixd/core/postmultiparser.h b/winixd/core/postmultiparser.h index 383bbc0..da8d584 100644 --- a/winixd/core/postmultiparser.h +++ b/winixd/core/postmultiparser.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2018, Tomasz Sowa + * Copyright (c) 2008-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,7 +39,7 @@ #include #include #include "error.h" -#include "requesttypes.h" +#include "request.h" #include "config.h" #include "misc.h" #include "winixbase.h" @@ -66,7 +66,7 @@ public: ~PostMultiParser(); void SetConfig(Config * pconfig); - Error Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab & post_file_tab_); + Error Parse(FCGX_Stream * in_, Request & request); private: @@ -81,8 +81,7 @@ private: size_t in_buffer_ind; size_t in_buffer_len; - PostTab * post_tab; - PostFileTab * post_file_tab; + Request * request; int last; // last read character int var_index; // used as a postfix to the same name (is auto increment) @@ -148,7 +147,7 @@ std::pair res; if( !added ) { key += L"_inc"; - key += Toa(var_index); + pt::Toa(var_index, key, false, 10, 5); res = container.insert( std::make_pair(key, value) ); added = res.second; var_index += 1; diff --git a/winixd/core/postparser.h b/winixd/core/postparser.h index dde1404..6648c7d 100644 --- a/winixd/core/postparser.h +++ b/winixd/core/postparser.h @@ -38,7 +38,7 @@ #include #include #include "httpsimpleparser.h" -#include "requesttypes.h" +#include "request.h" #include "misc.h" #include "utf8/utf8.h" #include "convert/text.h" @@ -52,7 +52,7 @@ namespace Winix class PostParser : public HttpSimpleParser { FCGX_Stream * in; - PostTab * post_tab; + Request * request; size_t log_value_size; int var_index; bool has_winix_post_params_msg; @@ -99,24 +99,10 @@ protected: virtual void Parameter(std::wstring & name, std::wstring & value) { - bool added; - std::pair res; - if( has_winix_post_params_msg ) plugin->Call(0, WINIX_POST_PARAMS, &name, &value); - res = post_tab->insert( std::make_pair(name, value) ); - added = res.second; - - if( !added ) - { - name += L"_inc"; - pt::Toa(var_index, name, false, 10, 5); - res = post_tab->insert( std::make_pair(name, value) ); - added = res.second; - var_index += 1; - } - + bool added = request->AddPostVar(name, value); CreateLog(added, name, value); } @@ -134,10 +120,10 @@ public: log_value_size = s; } - void Parse(FCGX_Stream * in_, PostTab & post_tab_) + void Parse(FCGX_Stream * in, Request & request) { - in = in_; - post_tab = &post_tab_; + this->in = in; + this->request = &request; var_index = 1; raw_post.clear(); diff --git a/winixd/core/request.cpp b/winixd/core/request.cpp index e0bb1c5..5cd3d76 100644 --- a/winixd/core/request.cpp +++ b/winixd/core/request.cpp @@ -37,6 +37,7 @@ #include "plugin.h" #include "misc.h" #include "functions/functionbase.h" +#include "templates/templates.h" namespace Winix @@ -57,8 +58,12 @@ void Request::fields() { field(L"", L"dirs", dir_tab); field(L"", L"is_item", is_item); + field(L"", L"http_status", http_status); + field(L"", L"current_dir", &Request::current_dir); field(L"", L"last_item", &Request::last_item_wrapper); + field(L"", L"http_status_error_title", &Request::http_status_error_title); + field(L"", L"http_status_error_description", &Request::http_status_error_description); } @@ -101,11 +106,9 @@ void Request::Clear() if( function ) function->Clear(); - post_tab.clear(); post_file_tab.clear(); cookie_tab.clear(); post_in.clear(); - is_postin_used = false; method = unknown_method; @@ -148,6 +151,7 @@ void Request::Clear() container_type = ContainerType::container_raw; status = WINIX_ERR_OK; + http_status = Header::status_200_ok; browser_msie = false; redirect_to.clear(); @@ -360,122 +364,130 @@ void Request::PrepareFrameNames() } } +// add such a method to Space +bool Request::AddPostVar(const wchar_t * name, const wchar_t * value) +{ + bool status = false; + pt::Space * space_value = post_in.get_space(name); + Log * log = get_logger(); + + if( space_value ) + { + if( space_value->is_table() ) + { + if( space_value->table_size() < WINIX_POSTTABLE_VALUT_TABLE_MAXSIZE ) + { + status = true; + space_value->add(value); + } + else + { + if( log ) + { + (*log) << log1 << "App: more than " << WINIX_POSTTABLE_VALUT_TABLE_MAXSIZE << " post variables in a table " << name << " (skipping)" << logend; + } + } + } + else + { + status = true; + pt::Space new_table; + new_table.add(std::move(*space_value)); + new_table.add(value); + space_value->set(std::move(new_table)); + } + } + else + { + if( post_in.object_size() < WINIX_POSTTABLE_MAXSIZE ) + { + post_in.add(name, value); + status = true; + } + else + { + if( log ) + { + (*log) << log1 << "App: more than " << WINIX_POSTTABLE_MAXSIZE << " post variables (skipping)" << logend; + } + } + } + + return status; +} + + +bool Request::AddPostVar(const std::wstring & name, const std::wstring & value) +{ + return AddPostVar(name.c_str(), value.c_str()); +} + bool Request::IsPostVar(const wchar_t * var) { - PostTab::iterator p; - - p = post_tab.find(var); - - if( p == post_tab.end() ) - return false; - -return true; + return post_in.has_key(var); } bool Request::IsPostVar(const std::wstring & var) { - PostTab::iterator p; - - p = post_tab.find(var); - - if( p == post_tab.end() ) - return false; - -return true; + return post_in.has_key(var); } const std::wstring & Request::PostVar(const wchar_t * var) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) - return str_empty; - -return p->second; + std::wstring * value = post_in.get_wstr(var); + + if( value ) + return *value; + + return str_empty; } const std::wstring & Request::PostVar(const std::wstring & var) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) - return str_empty; - -return p->second; + return PostVar(var.c_str()); } bool Request::PostVar(const wchar_t * var, std::wstring & result) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) + std::wstring * value = post_in.get_wstr(var); + bool found = false; + + if( value ) + { + result = *value; + found = true; + } + else { result.clear(); - return false; } - - result = p->second; - -return true; + + return found; } bool Request::PostVar(const std::wstring & var, std::wstring & result) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) - { - result.clear(); - return false; - } - - result = p->second; - -return true; + return PostVar(var.c_str(), result); } std::wstring * Request::PostVarp(const wchar_t * var) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) - return 0; - -return &p->second; + return post_in.get_wstr(var); } std::wstring * Request::PostVarp(const std::wstring & var) { -PostTab::iterator p = post_tab.find(var); - - if( p == post_tab.end() ) - return 0; - -return &p->second; -} - - - - -bool Request::AllPostVarEmpty() -{ -PostTab::iterator i; - - for(i=post_tab.begin() ; i!=post_tab.end() ; ++i) - if( !i->second.empty() ) - return false; - -return true; + return post_in.get_wstr(var.c_str()); } @@ -541,6 +553,7 @@ const std::wstring & Request::ParamValue(const std::wstring & param_name) } + void Request::AddParam(const std::wstring & param_name, const std::wstring & param_value) { bool found = false; @@ -663,6 +676,24 @@ bool Request::has_frame(const std::wstring & frame) } +void Request::http_status_error_title(EzcEnv & env) +{ + pt::WTextStream str; + str << L"http_error_" << http_status << L"_title"; + + const std::wstring & msg = TemplatesFunctions::locale.Get(str); + env.out << msg; +} + + +void Request::http_status_error_description(EzcEnv & env) +{ + pt::WTextStream str; + str << L"http_error_" << http_status << L"_msg"; + + const std::wstring & msg = TemplatesFunctions::locale.Get(str); + env.out << msg; +} } // namespace Winix diff --git a/winixd/core/request.h b/winixd/core/request.h index 1103002..5185847 100644 --- a/winixd/core/request.h +++ b/winixd/core/request.h @@ -161,11 +161,9 @@ public: !! CHECK ME may post_tab and cookie_tab should be changed to pt::Space now? or may change the name to cookie_in? or in_cookie? */ - PostTab post_tab; PostFileTab post_file_tab; CookieTab cookie_tab; pt::Space post_in; - bool is_postin_used;// temporarily, before all post variables will be put to post_in // input headers (without cookies) // at the moment we are using FastCGI and HTTP headers are prefixed with 'HTTP_' string @@ -337,9 +335,15 @@ public: std::vector accept_languages; // request status - // !! CHANGE ME it'll be better to use ordinary http result codes + // DEPRECATED, use http_status instead Error status; + /* + * HTTP result status + * at the moment default is -1 which means it is not used (use status in such a case) + */ + int http_status; + // if not empty means an address for redirecting to // it should be url-encoded std::wstring redirect_to; @@ -443,6 +447,9 @@ public: void RemoveParam(const wchar_t * param_name); void RemoveParam(const std::wstring & param_name); + bool AddPostVar(const wchar_t * name, const wchar_t * value); + bool AddPostVar(const std::wstring & name, const std::wstring & value); + bool IsPostVar(const wchar_t * var); bool IsPostVar(const std::wstring & var); const std::wstring & PostVar(const wchar_t * var); // returns an empty string if there is no such a parameter @@ -452,8 +459,6 @@ public: std::wstring * PostVarp(const wchar_t * var); std::wstring * PostVarp(const std::wstring & var); - bool AllPostVarEmpty(); // returning true if all post vars are empty - // setting a cookie // name - cookie name (either const wchar_t, or std::wstring or pt::WTextStream) @@ -485,6 +490,9 @@ private: void current_dir(morm::Wrapper & wrapper); void last_item_wrapper(morm::Wrapper & wrapper); + void http_status_error_title(EzcEnv & env); + void http_status_error_description(EzcEnv & env); + MORM_MEMBER_FIELD(Request) diff --git a/winixd/core/requesttypes.h b/winixd/core/requesttypes.h index 26e99e1..eec1333 100644 --- a/winixd/core/requesttypes.h +++ b/winixd/core/requesttypes.h @@ -45,12 +45,9 @@ namespace Winix { - -// !! IMPROVE ME -// !! narazie uzywane tylko w post multi parserze -// dodac do zwyklego parsera post -#define WINIX_POSTTABLE_MAXSIZE 50 - +// may move to config? +#define WINIX_POSTTABLE_MAXSIZE 1024 +#define WINIX_POSTTABLE_VALUT_TABLE_MAXSIZE 1024 struct PostFile @@ -70,7 +67,6 @@ struct Param // some global types used by Request class -typedef std::map PostTab; typedef std::map PostFileTab; typedef std::vector ParamTab; diff --git a/winixd/db/Makefile.dep b/winixd/db/Makefile.dep index 9856aaf..7703547 100644 --- a/winixd/db/Makefile.dep +++ b/winixd/db/Makefile.dep @@ -50,7 +50,8 @@ db.o: ../../../morm/src/postgresqlexpression.h db.o: ../../../morm/src/jsonconnector.h db.o: ../../../morm/src/postgresqlconnector.h db.o: ../../../morm/src/postgresqlqueryresult.h -db.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +db.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +db.o: ../../../winix/winixd/core/synchro.h db.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h db.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h db.o: ../../../winix/winixd/models/user.h @@ -126,7 +127,7 @@ dbbase.o: ../../../morm/src/postgresqlexpression.h dbbase.o: ../../../morm/src/jsonconnector.h dbbase.o: ../../../morm/src/postgresqlconnector.h dbbase.o: ../../../morm/src/postgresqlqueryresult.h -dbbase.o: ../../../winix/winixd/core/log.h +dbbase.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h dbbase.o: ../../../winix/winixd/core/synchro.h dbbase.o: ../../../winix/winixd/core/filelog.h dbbase.o: ../../../winix/winixd/core/lock.h @@ -183,7 +184,7 @@ dbconn.o: ../../../morm/src/postgresqlexpression.h dbconn.o: ../../../morm/src/jsonconnector.h dbconn.o: ../../../morm/src/postgresqlconnector.h dbconn.o: ../../../morm/src/postgresqlqueryresult.h -dbconn.o: ../../../winix/winixd/core/log.h +dbconn.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h dbconn.o: ../../../winix/winixd/core/synchro.h dbconn.o: ../../../winix/winixd/core/filelog.h dbconn.o: ../../../winix/winixd/core/lock.h diff --git a/winixd/functions/Makefile.dep b/winixd/functions/Makefile.dep index 593bbd2..f8fccad 100644 --- a/winixd/functions/Makefile.dep +++ b/winixd/functions/Makefile.dep @@ -55,7 +55,7 @@ account.o: ../../../morm/src/postgresqlexpression.h account.o: ../../../morm/src/jsonconnector.h account.o: ../../../morm/src/postgresqlconnector.h account.o: ../../../morm/src/postgresqlqueryresult.h -account.o: ../../../winix/winixd/core/log.h +account.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h account.o: ../../../winix/winixd/core/synchro.h account.o: ../../../winix/winixd/core/filelog.h account.o: ../../../winix/winixd/core/lock.h @@ -196,7 +196,7 @@ adduser.o: ../../../morm/src/postgresqlexpression.h adduser.o: ../../../morm/src/jsonconnector.h adduser.o: ../../../morm/src/postgresqlconnector.h adduser.o: ../../../morm/src/postgresqlqueryresult.h -adduser.o: ../../../winix/winixd/core/log.h +adduser.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h adduser.o: ../../../winix/winixd/core/synchro.h adduser.o: ../../../winix/winixd/core/filelog.h adduser.o: ../../../winix/winixd/core/lock.h @@ -334,7 +334,8 @@ cat.o: ../../../morm/src/postgresqlexpression.h cat.o: ../../../morm/src/jsonconnector.h cat.o: ../../../morm/src/postgresqlconnector.h cat.o: ../../../morm/src/postgresqlqueryresult.h -cat.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +cat.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +cat.o: ../../../winix/winixd/core/synchro.h cat.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h cat.o: ../../../winix/winixd/core/synchro.h cat.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h @@ -463,7 +464,7 @@ chmod.o: ../../../morm/src/postgresqlexpression.h chmod.o: ../../../morm/src/jsonconnector.h chmod.o: ../../../morm/src/postgresqlconnector.h chmod.o: ../../../morm/src/postgresqlqueryresult.h -chmod.o: ../../../winix/winixd/core/log.h +chmod.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h chmod.o: ../../../winix/winixd/core/synchro.h chmod.o: ../../../winix/winixd/core/filelog.h chmod.o: ../../../winix/winixd/core/lock.h @@ -597,7 +598,7 @@ chown.o: ../../../morm/src/postgresqlexpression.h chown.o: ../../../morm/src/jsonconnector.h chown.o: ../../../morm/src/postgresqlconnector.h chown.o: ../../../morm/src/postgresqlqueryresult.h -chown.o: ../../../winix/winixd/core/log.h +chown.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h chown.o: ../../../winix/winixd/core/synchro.h chown.o: ../../../winix/winixd/core/filelog.h chown.o: ../../../winix/winixd/core/lock.h @@ -733,7 +734,7 @@ ckeditor.o: ../../../morm/src/postgresqlexpression.h ckeditor.o: ../../../morm/src/jsonconnector.h ckeditor.o: ../../../morm/src/postgresqlconnector.h ckeditor.o: ../../../morm/src/postgresqlqueryresult.h -ckeditor.o: ../../../winix/winixd/core/log.h +ckeditor.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h ckeditor.o: ../../../winix/winixd/core/synchro.h ckeditor.o: ../../../winix/winixd/core/filelog.h ckeditor.o: ../../../winix/winixd/core/lock.h @@ -870,7 +871,8 @@ cp.o: ../../../morm/src/postgresqlexpression.h cp.o: ../../../morm/src/jsonconnector.h cp.o: ../../../morm/src/postgresqlconnector.h cp.o: ../../../morm/src/postgresqlqueryresult.h -cp.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +cp.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +cp.o: ../../../winix/winixd/core/synchro.h cp.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h cp.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h cp.o: ../../../winix/winixd/models/user.h @@ -1001,7 +1003,7 @@ default.o: ../../../morm/src/postgresqlexpression.h default.o: ../../../morm/src/jsonconnector.h default.o: ../../../morm/src/postgresqlconnector.h default.o: ../../../morm/src/postgresqlqueryresult.h -default.o: ../../../winix/winixd/core/log.h +default.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h default.o: ../../../winix/winixd/core/synchro.h default.o: ../../../winix/winixd/core/filelog.h default.o: ../../../winix/winixd/core/lock.h @@ -1141,7 +1143,7 @@ download.o: ../../../morm/src/postgresqlexpression.h download.o: ../../../morm/src/jsonconnector.h download.o: ../../../morm/src/postgresqlconnector.h download.o: ../../../morm/src/postgresqlqueryresult.h -download.o: ../../../winix/winixd/core/log.h +download.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h download.o: ../../../winix/winixd/core/synchro.h download.o: ../../../winix/winixd/core/filelog.h download.o: ../../../winix/winixd/core/lock.h @@ -1279,7 +1281,7 @@ emacs.o: ../../../morm/src/postgresqlexpression.h emacs.o: ../../../morm/src/jsonconnector.h emacs.o: ../../../morm/src/postgresqlconnector.h emacs.o: ../../../morm/src/postgresqlqueryresult.h -emacs.o: ../../../winix/winixd/core/log.h +emacs.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h emacs.o: ../../../winix/winixd/core/synchro.h emacs.o: ../../../winix/winixd/core/filelog.h emacs.o: ../../../winix/winixd/core/lock.h @@ -1420,7 +1422,8 @@ env.o: ../../../morm/src/postgresqlexpression.h env.o: ../../../morm/src/jsonconnector.h env.o: ../../../morm/src/postgresqlconnector.h env.o: ../../../morm/src/postgresqlqueryresult.h -env.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +env.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +env.o: ../../../winix/winixd/core/synchro.h env.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h env.o: ../../../winix/winixd/core/synchro.h env.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h @@ -1552,6 +1555,7 @@ functionbase.o: ../../../morm/src/postgresqlexpression.h functionbase.o: ../../../morm/src/jsonconnector.h functionbase.o: ../../../morm/src/postgresqlconnector.h functionbase.o: ../../../morm/src/postgresqlqueryresult.h +functionbase.o: ../../../morm/src/transaction.h functionbase.o: ../../../winix/winixd/core/log.h functionbase.o: ../../../winix/winixd/core/synchro.h functionbase.o: ../../../winix/winixd/core/filelog.h @@ -1692,6 +1696,7 @@ functionparser.o: ../../../morm/src/postgresqlexpression.h functionparser.o: ../../../morm/src/jsonconnector.h functionparser.o: ../../../morm/src/postgresqlconnector.h functionparser.o: ../../../morm/src/postgresqlqueryresult.h +functionparser.o: ../../../morm/src/transaction.h functionparser.o: ../../../winix/winixd/core/log.h functionparser.o: ../../../winix/winixd/core/synchro.h functionparser.o: ../../../winix/winixd/core/filelog.h @@ -1847,7 +1852,7 @@ functions.o: ../../../morm/src/postgresqlexpression.h functions.o: ../../../morm/src/jsonconnector.h functions.o: ../../../morm/src/postgresqlconnector.h functions.o: ../../../morm/src/postgresqlqueryresult.h -functions.o: ../../../winix/winixd/core/log.h +functions.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h functions.o: ../../../winix/winixd/core/synchro.h functions.o: ../../../winix/winixd/core/filelog.h functions.o: ../../../winix/winixd/core/lock.h @@ -1993,7 +1998,7 @@ imgcrop.o: ../../../morm/src/postgresqlexpression.h imgcrop.o: ../../../morm/src/jsonconnector.h imgcrop.o: ../../../morm/src/postgresqlconnector.h imgcrop.o: ../../../morm/src/postgresqlqueryresult.h -imgcrop.o: ../../../winix/winixd/core/log.h +imgcrop.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h imgcrop.o: ../../../winix/winixd/core/synchro.h imgcrop.o: ../../../winix/winixd/core/filelog.h imgcrop.o: ../../../winix/winixd/core/lock.h @@ -2130,7 +2135,7 @@ ipban.o: ../../../morm/src/postgresqlexpression.h ipban.o: ../../../morm/src/jsonconnector.h ipban.o: ../../../morm/src/postgresqlconnector.h ipban.o: ../../../morm/src/postgresqlqueryresult.h -ipban.o: ../../../winix/winixd/core/log.h +ipban.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h ipban.o: ../../../winix/winixd/core/synchro.h ipban.o: ../../../winix/winixd/core/filelog.h ipban.o: ../../../winix/winixd/core/lock.h @@ -2264,7 +2269,8 @@ last.o: ../../../morm/src/postgresqlexpression.h last.o: ../../../morm/src/jsonconnector.h last.o: ../../../morm/src/postgresqlconnector.h last.o: ../../../morm/src/postgresqlqueryresult.h -last.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +last.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +last.o: ../../../winix/winixd/core/synchro.h last.o: ../../../winix/winixd/core/filelog.h last.o: ../../../winix/winixd/core/lock.h last.o: ../../../winix/winixd/core/synchro.h @@ -2394,7 +2400,8 @@ ln.o: ../../../morm/src/postgresqlexpression.h ln.o: ../../../morm/src/jsonconnector.h ln.o: ../../../morm/src/postgresqlconnector.h ln.o: ../../../morm/src/postgresqlqueryresult.h -ln.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +ln.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +ln.o: ../../../winix/winixd/core/synchro.h ln.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h ln.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h ln.o: ../../../winix/winixd/models/user.h @@ -2524,7 +2531,7 @@ locale.o: ../../../morm/src/postgresqlexpression.h locale.o: ../../../morm/src/jsonconnector.h locale.o: ../../../morm/src/postgresqlconnector.h locale.o: ../../../morm/src/postgresqlqueryresult.h -locale.o: ../../../winix/winixd/core/log.h +locale.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h locale.o: ../../../winix/winixd/core/synchro.h locale.o: ../../../winix/winixd/core/filelog.h locale.o: ../../../winix/winixd/core/lock.h @@ -2673,7 +2680,7 @@ login.o: ../../../morm/src/postgresqlexpression.h login.o: ../../../morm/src/jsonconnector.h login.o: ../../../morm/src/postgresqlconnector.h login.o: ../../../morm/src/postgresqlqueryresult.h -login.o: ../../../winix/winixd/core/log.h +login.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h login.o: ../../../winix/winixd/core/synchro.h login.o: ../../../winix/winixd/core/filelog.h login.o: ../../../winix/winixd/core/lock.h @@ -2801,7 +2808,7 @@ logout.o: ../../../morm/src/postgresqlexpression.h logout.o: ../../../morm/src/jsonconnector.h logout.o: ../../../morm/src/postgresqlconnector.h logout.o: ../../../morm/src/postgresqlqueryresult.h -logout.o: ../../../winix/winixd/core/log.h +logout.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h logout.o: ../../../winix/winixd/core/synchro.h logout.o: ../../../winix/winixd/core/filelog.h logout.o: ../../../winix/winixd/core/lock.h @@ -2937,7 +2944,8 @@ ls.o: ../../../morm/src/postgresqlexpression.h ls.o: ../../../morm/src/jsonconnector.h ls.o: ../../../morm/src/postgresqlconnector.h ls.o: ../../../morm/src/postgresqlqueryresult.h -ls.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +ls.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +ls.o: ../../../winix/winixd/core/synchro.h ls.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h ls.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h ls.o: ../../../winix/winixd/models/user.h @@ -3064,7 +3072,8 @@ man.o: ../../../morm/src/postgresqlexpression.h man.o: ../../../morm/src/jsonconnector.h man.o: ../../../morm/src/postgresqlconnector.h man.o: ../../../morm/src/postgresqlqueryresult.h -man.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +man.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h @@ -3192,7 +3201,8 @@ meta.o: ../../../morm/src/postgresqlexpression.h meta.o: ../../../morm/src/jsonconnector.h meta.o: ../../../morm/src/postgresqlconnector.h meta.o: ../../../morm/src/postgresqlqueryresult.h -meta.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +meta.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +meta.o: ../../../winix/winixd/core/synchro.h meta.o: ../../../winix/winixd/core/filelog.h meta.o: ../../../winix/winixd/core/lock.h meta.o: ../../../winix/winixd/core/synchro.h @@ -3323,7 +3333,7 @@ mkdir.o: ../../../morm/src/postgresqlexpression.h mkdir.o: ../../../morm/src/jsonconnector.h mkdir.o: ../../../morm/src/postgresqlconnector.h mkdir.o: ../../../morm/src/postgresqlqueryresult.h -mkdir.o: ../../../winix/winixd/core/log.h +mkdir.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h mkdir.o: ../../../winix/winixd/core/synchro.h mkdir.o: ../../../winix/winixd/core/filelog.h mkdir.o: ../../../winix/winixd/core/lock.h @@ -3458,7 +3468,7 @@ mount.o: ../../../morm/src/postgresqlexpression.h mount.o: ../../../morm/src/jsonconnector.h mount.o: ../../../morm/src/postgresqlconnector.h mount.o: ../../../morm/src/postgresqlqueryresult.h -mount.o: ../../../winix/winixd/core/log.h +mount.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h mount.o: ../../../winix/winixd/core/synchro.h mount.o: ../../../winix/winixd/core/filelog.h mount.o: ../../../winix/winixd/core/lock.h @@ -3592,7 +3602,8 @@ mv.o: ../../../morm/src/postgresqlexpression.h mv.o: ../../../morm/src/jsonconnector.h mv.o: ../../../morm/src/postgresqlconnector.h mv.o: ../../../morm/src/postgresqlqueryresult.h -mv.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +mv.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +mv.o: ../../../winix/winixd/core/synchro.h mv.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h mv.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h mv.o: ../../../winix/winixd/models/user.h @@ -3722,7 +3733,7 @@ nicedit.o: ../../../morm/src/postgresqlexpression.h nicedit.o: ../../../morm/src/jsonconnector.h nicedit.o: ../../../morm/src/postgresqlconnector.h nicedit.o: ../../../morm/src/postgresqlqueryresult.h -nicedit.o: ../../../winix/winixd/core/log.h +nicedit.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h nicedit.o: ../../../winix/winixd/core/synchro.h nicedit.o: ../../../winix/winixd/core/filelog.h nicedit.o: ../../../winix/winixd/core/lock.h @@ -3858,7 +3869,8 @@ node.o: ../../../morm/src/postgresqlexpression.h node.o: ../../../morm/src/jsonconnector.h node.o: ../../../morm/src/postgresqlconnector.h node.o: ../../../morm/src/postgresqlqueryresult.h -node.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +node.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +node.o: ../../../winix/winixd/core/synchro.h node.o: ../../../winix/winixd/core/filelog.h node.o: ../../../winix/winixd/core/lock.h node.o: ../../../winix/winixd/core/synchro.h @@ -3989,7 +4001,7 @@ passwd.o: ../../../morm/src/postgresqlexpression.h passwd.o: ../../../morm/src/jsonconnector.h passwd.o: ../../../morm/src/postgresqlconnector.h passwd.o: ../../../morm/src/postgresqlqueryresult.h -passwd.o: ../../../winix/winixd/core/log.h +passwd.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h passwd.o: ../../../winix/winixd/core/synchro.h passwd.o: ../../../winix/winixd/core/filelog.h passwd.o: ../../../winix/winixd/core/lock.h @@ -4126,7 +4138,8 @@ priv.o: ../../../morm/src/postgresqlexpression.h priv.o: ../../../morm/src/jsonconnector.h priv.o: ../../../morm/src/postgresqlconnector.h priv.o: ../../../morm/src/postgresqlqueryresult.h -priv.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +priv.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +priv.o: ../../../winix/winixd/core/synchro.h priv.o: ../../../winix/winixd/core/filelog.h priv.o: ../../../winix/winixd/core/lock.h priv.o: ../../../winix/winixd/core/synchro.h @@ -4249,6 +4262,7 @@ privchanger.o: ../../../morm/src/postgresqlexpression.h privchanger.o: ../../../morm/src/jsonconnector.h privchanger.o: ../../../morm/src/postgresqlconnector.h privchanger.o: ../../../morm/src/postgresqlqueryresult.h +privchanger.o: ../../../morm/src/transaction.h privchanger.o: ../../../winix/winixd/core/log.h privchanger.o: ../../../winix/winixd/core/synchro.h privchanger.o: ../../../winix/winixd/core/filelog.h @@ -4399,7 +4413,8 @@ pw.o: ../../../morm/src/postgresqlexpression.h pw.o: ../../../morm/src/jsonconnector.h pw.o: ../../../morm/src/postgresqlconnector.h pw.o: ../../../morm/src/postgresqlqueryresult.h -pw.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +pw.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +pw.o: ../../../winix/winixd/core/synchro.h pw.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h pw.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h pw.o: ../../../winix/winixd/models/user.h @@ -4528,7 +4543,7 @@ reload.o: ../../../morm/src/postgresqlexpression.h reload.o: ../../../morm/src/jsonconnector.h reload.o: ../../../morm/src/postgresqlconnector.h reload.o: ../../../morm/src/postgresqlqueryresult.h -reload.o: ../../../winix/winixd/core/log.h +reload.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h reload.o: ../../../winix/winixd/core/synchro.h reload.o: ../../../winix/winixd/core/filelog.h reload.o: ../../../winix/winixd/core/lock.h @@ -4669,7 +4684,8 @@ rm.o: ../../../morm/src/postgresqlexpression.h rm.o: ../../../morm/src/jsonconnector.h rm.o: ../../../morm/src/postgresqlconnector.h rm.o: ../../../morm/src/postgresqlqueryresult.h -rm.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +rm.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +rm.o: ../../../winix/winixd/core/synchro.h rm.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h rm.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h rm.o: ../../../winix/winixd/models/user.h @@ -4803,7 +4819,7 @@ rmuser.o: ../../../morm/src/postgresqlexpression.h rmuser.o: ../../../morm/src/jsonconnector.h rmuser.o: ../../../morm/src/postgresqlconnector.h rmuser.o: ../../../morm/src/postgresqlqueryresult.h -rmuser.o: ../../../winix/winixd/core/log.h +rmuser.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h rmuser.o: ../../../winix/winixd/core/synchro.h rmuser.o: ../../../winix/winixd/core/filelog.h rmuser.o: ../../../winix/winixd/core/lock.h @@ -4942,7 +4958,8 @@ run.o: ../../../morm/src/postgresqlexpression.h run.o: ../../../morm/src/jsonconnector.h run.o: ../../../morm/src/postgresqlconnector.h run.o: ../../../morm/src/postgresqlqueryresult.h -run.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +run.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +run.o: ../../../winix/winixd/core/synchro.h run.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h run.o: ../../../winix/winixd/core/synchro.h run.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h @@ -5069,7 +5086,8 @@ sort.o: ../../../morm/src/postgresqlexpression.h sort.o: ../../../morm/src/jsonconnector.h sort.o: ../../../morm/src/postgresqlconnector.h sort.o: ../../../morm/src/postgresqlqueryresult.h -sort.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +sort.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +sort.o: ../../../winix/winixd/core/synchro.h sort.o: ../../../winix/winixd/core/filelog.h sort.o: ../../../winix/winixd/core/lock.h sort.o: ../../../winix/winixd/core/synchro.h @@ -5210,6 +5228,7 @@ specialdefault.o: ../../../morm/src/postgresqlexpression.h specialdefault.o: ../../../morm/src/jsonconnector.h specialdefault.o: ../../../morm/src/postgresqlconnector.h specialdefault.o: ../../../morm/src/postgresqlqueryresult.h +specialdefault.o: ../../../morm/src/transaction.h specialdefault.o: ../../../winix/winixd/core/log.h specialdefault.o: ../../../winix/winixd/core/synchro.h specialdefault.o: ../../../winix/winixd/core/filelog.h @@ -5349,7 +5368,8 @@ stat.o: ../../../morm/src/postgresqlexpression.h stat.o: ../../../morm/src/jsonconnector.h stat.o: ../../../morm/src/postgresqlconnector.h stat.o: ../../../morm/src/postgresqlqueryresult.h -stat.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +stat.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +stat.o: ../../../winix/winixd/core/synchro.h stat.o: ../../../winix/winixd/core/filelog.h stat.o: ../../../winix/winixd/core/lock.h stat.o: ../../../winix/winixd/core/synchro.h @@ -5482,7 +5502,7 @@ subject.o: ../../../morm/src/postgresqlexpression.h subject.o: ../../../morm/src/jsonconnector.h subject.o: ../../../morm/src/postgresqlconnector.h subject.o: ../../../morm/src/postgresqlqueryresult.h -subject.o: ../../../winix/winixd/core/log.h +subject.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h subject.o: ../../../winix/winixd/core/synchro.h subject.o: ../../../winix/winixd/core/filelog.h subject.o: ../../../winix/winixd/core/lock.h @@ -5621,7 +5641,7 @@ template.o: ../../../morm/src/postgresqlexpression.h template.o: ../../../morm/src/jsonconnector.h template.o: ../../../morm/src/postgresqlconnector.h template.o: ../../../morm/src/postgresqlqueryresult.h -template.o: ../../../winix/winixd/core/log.h +template.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h template.o: ../../../winix/winixd/core/synchro.h template.o: ../../../winix/winixd/core/filelog.h template.o: ../../../winix/winixd/core/lock.h @@ -5761,7 +5781,7 @@ timezone.o: ../../../morm/src/postgresqlexpression.h timezone.o: ../../../morm/src/jsonconnector.h timezone.o: ../../../morm/src/postgresqlconnector.h timezone.o: ../../../morm/src/postgresqlqueryresult.h -timezone.o: ../../../winix/winixd/core/log.h +timezone.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h timezone.o: ../../../winix/winixd/core/synchro.h timezone.o: ../../../winix/winixd/core/filelog.h timezone.o: ../../../winix/winixd/core/lock.h @@ -5900,7 +5920,7 @@ tinymce.o: ../../../morm/src/postgresqlexpression.h tinymce.o: ../../../morm/src/jsonconnector.h tinymce.o: ../../../morm/src/postgresqlconnector.h tinymce.o: ../../../morm/src/postgresqlqueryresult.h -tinymce.o: ../../../winix/winixd/core/log.h +tinymce.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h tinymce.o: ../../../winix/winixd/core/synchro.h tinymce.o: ../../../winix/winixd/core/filelog.h tinymce.o: ../../../winix/winixd/core/lock.h @@ -6037,7 +6057,7 @@ uname.o: ../../../morm/src/postgresqlexpression.h uname.o: ../../../morm/src/jsonconnector.h uname.o: ../../../morm/src/postgresqlconnector.h uname.o: ../../../morm/src/postgresqlqueryresult.h -uname.o: ../../../winix/winixd/core/log.h +uname.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h uname.o: ../../../winix/winixd/core/synchro.h uname.o: ../../../winix/winixd/core/filelog.h uname.o: ../../../winix/winixd/core/lock.h @@ -6172,7 +6192,7 @@ upload.o: ../../../morm/src/postgresqlexpression.h upload.o: ../../../morm/src/jsonconnector.h upload.o: ../../../morm/src/postgresqlconnector.h upload.o: ../../../morm/src/postgresqlqueryresult.h -upload.o: ../../../winix/winixd/core/log.h +upload.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h upload.o: ../../../winix/winixd/core/synchro.h upload.o: ../../../winix/winixd/core/filelog.h upload.o: ../../../winix/winixd/core/lock.h @@ -6316,7 +6336,7 @@ uptime.o: ../../../morm/src/postgresqlexpression.h uptime.o: ../../../morm/src/jsonconnector.h uptime.o: ../../../morm/src/postgresqlconnector.h uptime.o: ../../../morm/src/postgresqlqueryresult.h -uptime.o: ../../../winix/winixd/core/log.h +uptime.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h uptime.o: ../../../winix/winixd/core/synchro.h uptime.o: ../../../winix/winixd/core/filelog.h uptime.o: ../../../winix/winixd/core/lock.h @@ -6452,7 +6472,8 @@ vim.o: ../../../morm/src/postgresqlexpression.h vim.o: ../../../morm/src/jsonconnector.h vim.o: ../../../morm/src/postgresqlconnector.h vim.o: ../../../morm/src/postgresqlqueryresult.h -vim.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +vim.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +vim.o: ../../../winix/winixd/core/synchro.h vim.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h vim.o: ../../../winix/winixd/core/synchro.h vim.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h @@ -6580,7 +6601,8 @@ who.o: ../../../morm/src/postgresqlexpression.h who.o: ../../../morm/src/jsonconnector.h who.o: ../../../morm/src/postgresqlconnector.h who.o: ../../../morm/src/postgresqlqueryresult.h -who.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +who.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h diff --git a/winixd/functions/functionbase.cpp b/winixd/functions/functionbase.cpp index 3333585..91acf93 100644 --- a/winixd/functions/functionbase.cpp +++ b/winixd/functions/functionbase.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2010-2021, Tomasz Sowa + * Copyright (c) 2010-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,6 +48,10 @@ FunctionBase::FunctionBase() need_ssl = false; need_session = true; register_default_models = true; + post_max_object_items = 0; + post_max_table_items = 0; + post_max_all_items = 0; + post_max_nested_objects = 0; fun.item_content.user_id = -1; fun.item_content.group_id = -1; diff --git a/winixd/functions/functionbase.h b/winixd/functions/functionbase.h index 250a750..80c786e 100644 --- a/winixd/functions/functionbase.h +++ b/winixd/functions/functionbase.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2010-2021, Tomasz Sowa + * Copyright (c) 2010-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -90,6 +90,22 @@ public: // default: true bool register_default_models; + // maximum key/value pairs in one object when parsing post json structure + // default: 0 - means get the value from the config + size_t post_max_object_items; + + // maximum items in one table when parsing post json structure + // default: 0 - means get the value from the config + size_t post_max_table_items; + + // maximum items (key/values pairs of objects or table items) througout the whole post input json structure + // default: 0 - means get the value from the config + size_t post_max_all_items; + + // maximum nested objects/tables when parsing post json structure + // default: 0 - means get the value from the config + size_t post_max_nested_objects; + virtual void Init(); virtual void Finish(); diff --git a/winixd/functions/functionparser.cpp b/winixd/functions/functionparser.cpp index 5bd9751..51d7699 100644 --- a/winixd/functions/functionparser.cpp +++ b/winixd/functions/functionparser.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2021, Tomasz Sowa + * Copyright (c) 2008-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,6 @@ #include "functionparser.h" #include "core/log.h" -#include "core/error.h" #include "functions.h" #include "utf8/utf8.h" #include "models/item.h" @@ -51,30 +50,64 @@ FunctionParser::FunctionParser() } - bool FunctionParser::Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem) { db = pdb; cur = pcur; system = psystem; functions = pfunctions; - last_dir = 0; + last_dir = nullptr; path = cur->request->env_request_uri.c_str(); + status = true; - ParseDirsItemFunction(); - ParseParams(); - ParseAnchor(); + // IMPROVEME put WINIX_URL_MAX_SIZE to the config + if( cur->request->env_request_uri.size() <= WINIX_URL_MAX_SIZE ) + { + if( !cur->request->dir_tab.empty() ) + { + last_dir = cur->request->dir_tab.back(); + PrintCurrentDirs(); -return cur->request->status == WINIX_ERR_OK; + if( ParseDirsItemFunction() ) + { + ParseParams(); + ParseAnchor(); + } + } + else + { + status = false; + cur->request->http_status = Header::status_500_internal_server_error; + log << log1 << "FP: no root directory provided in the request dir_tab" << logend; + } + } + else + { + status = false; + cur->request->http_status = Header::status_414_uri_too_long; + log << log1 << "FP: the URL is too long: " << cur->request->env_request_uri.size() << logend; + } + + return status; } - -void FunctionParser::ParseDirsItemFunction() +/* + * there should be at least the root directory + */ +void FunctionParser::PrintCurrentDirs() { - if( !AddRootDir() ) - return; + std::vector::iterator i = cur->request->dir_tab.begin(); + for( ; i != cur->request->dir_tab.end() ; ++i) + { + LogDir(*i); + } +} + + +bool FunctionParser::ParseDirsItemFunction() +{ ReadName(); while( IsDir() ) @@ -84,43 +117,46 @@ void FunctionParser::ParseDirsItemFunction() } if( name.empty() ) - return; + { + /* + * no more names to analyze, return now + */ + return true; + } if( CheckAddFunction() ) - return; - - if( CheckAddItem() ) { - ReadName(); + /* + * the name is a function so return now, we do not parse item + */ + return true; + } - if( !name.empty() ) + if( !CheckAddItem() ) + { + /* + * the name is not an item so a 404 error was set, return now + */ + return false; + } + + /* + * read next name and try if it is a function + */ + ReadName(); + + if( !name.empty() ) + { + if( !CheckAddFunction() ) { - CheckAddFunction(); - - if( !cur->request->function ) - { - log << log3 << "FP: unknown function: " << name << logend; - cur->request->status = WINIX_ERR_NO_ITEM; - } + log << log3 << "FP: unknown function: " << name << logend; + cur->request->http_status = Header::status_404_not_found; + status = false; + return false; } } -} - -bool FunctionParser::AddRootDir() -{ - last_dir = system->dirs.GetRootDir(); - - if( !last_dir ) - { - log << log3 << "FP: there is not a root directory" << logend; - cur->request->status = WINIX_ERR_INTERNAL_ERROR; - return false; - } - - AddDir(); - -return true; + return true; } @@ -133,7 +169,7 @@ bool FunctionParser::IsDir() last_dir = system->dirs.GetDir(name, last_dir->id); -return last_dir != 0; + return last_dir != nullptr; } @@ -141,7 +177,6 @@ bool FunctionParser::CheckAddItem() { // cur->request->dir_tab has at least one element long parent_id = cur->request->dir_tab.back()->id; - morm::Finder finder(model_connector); finder. @@ -151,26 +186,20 @@ bool FunctionParser::CheckAddItem() eq(L"url", name). get(cur->request->item); - //Error status = db->GetItem(parent_id, name, cur->request->item); - //if( status == WINIX_ERR_OK ) if( cur->request->item.found() ) { log << log3 << "FP: Item: id: " << cur->request->item.id << ", url: " << cur->request->item.url << logend; cur->request->last_item = &cur->request->item; cur->request->is_item = true; - return true; } else { log << log3 << "FP: No Item: url: " << name << logend; - cur->request->status = WINIX_ERR_NO_ITEM; - return false; + cur->request->http_status = Header::status_404_not_found; + status = false; } - log << log1 << "FP: db error" << logend; - cur->request->status = WINIX_ERR_INTERNAL_ERROR; - -return false; + return cur->request->item.found(); } @@ -185,20 +214,25 @@ bool FunctionParser::CheckAddFunction() return true; } -return false; + return false; +} + + +void FunctionParser::LogDir(Item * dir) +{ + log << log3 << "FP: Directory: "; + + if( dir->parent_id == -1 ) + log << "(root)" << logend; + else + log << dir->url << logend; } void FunctionParser::AddDir() { - cur->request->dir_tab.push_back( last_dir ); - log << log3 << "FP: Directory: "; - - if( last_dir->parent_id == -1 ) - log << "(root)" << logend; - else - log << last_dir->url << logend; - + cur->request->dir_tab.push_back(last_dir); + LogDir(last_dir); cur->request->last_item = cur->request->dir_tab.back(); } @@ -281,25 +315,25 @@ void FunctionParser::AddParam() void FunctionParser::ParseAnchor() { - if( *path == 0 ) - return; - - if( *path != '#' ) + if( *path == '#' ) { - cur->request->status = WINIX_ERR_INCORRECT_URI; - return; - } + path += 1; + name_ascii.clear(); - path += 1; - name_ascii.clear(); - - while( *path ) - name_ascii += GetChar(); - - pt::utf8_to_wide(name_ascii, cur->request->anchor); + while( *path ) + name_ascii += GetChar(); - if( !cur->request->anchor.empty() ) - log << log3 << "FP: anchor: " << cur->request->anchor << logend; + pt::utf8_to_wide(name_ascii, cur->request->anchor); + + if( !cur->request->anchor.empty() ) + log << log3 << "FP: anchor: " << cur->request->anchor << logend; + } + else + if( *path != 0 ) + { + cur->request->http_status = Header::status_400_bad_request; + status = false; + } } @@ -313,17 +347,26 @@ void FunctionParser::SkipSlashes() int FunctionParser::FromHex(int c) { if( c>='0' && c<='9' ) + { return c - '0'; + } else if( c>='a' && c<='f' ) + { return c - 'a' + 10; + } else if( c>='A' && c<='F' ) + { return c - 'A' + 10; + } else - cur->request->status = WINIX_ERR_INCORRECT_URI; + { + cur->request->http_status = Header::status_400_bad_request; + status = false; + } -return 0; + return 0; } @@ -338,8 +381,11 @@ int c; { c = (FromHex(*(path+1)) << 4) + FromHex(*(path+2)); - if( c == 0 ) - cur->request->status = WINIX_ERR_INCORRECT_URI; + if( c == 0 && status ) + { + cur->request->http_status = Header::status_400_bad_request; + status = false; + } path += 3; } @@ -355,7 +401,7 @@ int c; path += 1; } -return c; + return c; } diff --git a/winixd/functions/functionparser.h b/winixd/functions/functionparser.h index 28abbda..462f599 100644 --- a/winixd/functions/functionparser.h +++ b/winixd/functions/functionparser.h @@ -55,6 +55,11 @@ class FunctionParser : public WinixModelDeprecated public: FunctionParser(); + + + /* + * if the method returns false then cur->request->http_status will be already set to a specific error + */ bool Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem); private: @@ -69,17 +74,19 @@ private: std::string name_ascii, value_ascii; Item * last_dir; Param param; + bool status; void SkipSlashes(); - void ParseDirsItemFunction(); + void PrintCurrentDirs(); + bool ParseDirsItemFunction(); void ParseParams(); void ParseAnchor(); bool IsDir(); bool CheckAddItem(); bool CheckAddFunction(); - bool AddRootDir(); + void LogDir(Item * dir); void AddDir(); void AddParam(); void ParseOrdinaryParams(); diff --git a/winixd/functions/functions.cpp b/winixd/functions/functions.cpp index 9bf3496..9a88209 100644 --- a/winixd/functions/functions.cpp +++ b/winixd/functions/functions.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2010-2021, Tomasz Sowa + * Copyright (c) 2010-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -310,9 +310,9 @@ void Functions::Finish() } -void Functions::Parse() +bool Functions::Parse() { - function_parser.Parse(cur, db, this, system); + return function_parser.Parse(cur, db, this, system); } @@ -510,9 +510,6 @@ void Functions::CheckGetPostTimes(time_t difference) if( now - cur->session->last_time_get >= (time_t)difference ) return; - if( cur->request->AllPostVarEmpty() ) - return; - cur->session->spam_score += 1; log << log1 << "Functions: spam +1: POST after GET sent too fast" << logend; } diff --git a/winixd/functions/functions.h b/winixd/functions/functions.h index 78ec7ce..fe39cb4 100644 --- a/winixd/functions/functions.h +++ b/winixd/functions/functions.h @@ -150,7 +150,7 @@ public: void Init(); void Finish(); - void Parse(); + bool Parse(); size_t FunctionsSize(); Iterator Begin(); diff --git a/winixd/functions/imgcrop.cpp b/winixd/functions/imgcrop.cpp index 26b216d..cae3fe3 100644 --- a/winixd/functions/imgcrop.cpp +++ b/winixd/functions/imgcrop.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2013-2021, Tomasz Sowa + * Copyright (c) 2013-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -78,6 +78,7 @@ void ImgCrop::GetDirContent() eq(L"type", static_cast(Item::file)). eq(L"parent_id", cur->request->dir_tab.back()->id). eq(L"content", L"file_type", WINIX_ITEM_FILETYPE_IMAGE). + raw("order by item.sort_index asc, item.url asc, item.id asc"). get_vector(); //db->GetItems(cur->request->item_tab, iq); diff --git a/winixd/functions/ls.cpp b/winixd/functions/ls.cpp index 11c968b..8b45acc 100644 --- a/winixd/functions/ls.cpp +++ b/winixd/functions/ls.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2021, Tomasz Sowa + * Copyright (c) 2008-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -65,6 +65,7 @@ void Ls::prepare_files() finder.eq(L"content", L"file_type", WINIX_ITEM_FILETYPE_IMAGE); } + finder.raw("order by item.sort_index asc, item.url asc, item.id asc"); finder.get_vector(item_tab); } diff --git a/winixd/functions/sort.cpp b/winixd/functions/sort.cpp index a7bf9f0..4f1dcb9 100644 --- a/winixd/functions/sort.cpp +++ b/winixd/functions/sort.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2011-2021, Tomasz Sowa + * Copyright (c) 2011-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -65,70 +65,29 @@ bool Sort::HasAccess() void Sort::GetDirContent() { -// iq.sel_content = false; -// iq.WhereParentId(cur->request->dir_tab.back()->id); -// db->GetItems(cur->request->item_tab, iq); - morm::Finder finder(model_connector); finder. select(). where(). eq(L"parent_id", cur->request->dir_tab.back()->id). - get_vector(cur->request->item_tab); + raw("order by item.sort_index asc, item.url asc, item.id asc"). + get_vector(items); - system->CheckWriteAccessToItems(cur->request->item_tab); + system->CheckWriteAccessToItems(items); + cur->request->models.Add(L"item_tab", items); } -bool Sort::SortHelper::operator()(size_t t1, size_t t2) +Item * Sort::FindItem(long id) { - return psort->cur->request->item_tab[t1].id < psort->cur->request->item_tab[t2].id; -} - - -bool Sort::SortFun2(const SortPair & s1, const SortPair & s2) -{ - return s1.id < s2.id; -} - - - -void Sort::CreateItemTab() -{ - size_t len = cur->request->item_tab.size(); - item_tab.resize(len); - - for(size_t i=0 ; irequest->post_tab.begin(); -SortPair sp; - - item_tab2.clear(); - item_tab2.reserve(cur->request->post_tab.size()); - - // post_tab is sorted in lexicographical order but we should sort it by numbers - - for( ; i2 != cur->request->post_tab.end() ; ++i2 ) + for(Item & item : items) { - if( pt::is_substr_nc(L"sort", i2->first.c_str()) ) - { - sp.id = Tol(i2->first.c_str() + 4); - sp.sort_index = Toi(i2->second); - - item_tab2.push_back(sp); - } + if( item.id == id ) + return &item; } - std::sort(item_tab2.begin(), item_tab2.end(), SortFun2); + return nullptr; } @@ -139,7 +98,6 @@ void Sort::UpdateSortIndex(Item & item, int sort_index) ItemModelData item_model_data; item_model_data.prepare_unique_url = false; - //if( db->EditSortIndexItemById(item.id, sort_index) == WINIX_ERR_OK ) if( item.update(item_model_data, false) ) { log << log2 @@ -150,42 +108,36 @@ void Sort::UpdateSortIndex(Item & item, int sort_index) } - -void Sort::UpdateSortIndexes() +void Sort::UpdateItems() { -size_t i1 = 0; -size_t i2 = 0; - - while( i1 < item_tab.size() && i2 < item_tab2.size() ) + if( cur->request->post_in.is_object() ) { - long id1 = cur->request->item_tab[item_tab[i1]].id; - long id2 = item_tab2[i2].id; + pt::Space::ObjectType::iterator i2 = cur->request->post_in.value.value_object.begin(); - if( id1 == id2 ) + for( ; i2 != cur->request->post_in.value.value_object.end() ; ++i2 ) { - int sort_index = item_tab2[i2].sort_index; - Item & item = cur->request->item_tab[item_tab[i1]]; + if( i2->second->is_wstr() && pt::is_substr_nc(L"sort", i2->first.c_str()) ) + { + long id = Tol(i2->first.c_str() + 4); + int sort_index = Toi(*i2->second->get_wstr()); - if( system->HasWriteAccess(item) ) - UpdateSortIndex(item, sort_index); + Item * pitem = FindItem(id); - ++i1; - ++i2; - } - else - if( id1 < id2 ) - { - ++i1; - } - else - { - ++i2; + if( pitem ) + { + if( system->HasWriteAccess(*pitem) ) + { + UpdateSortIndex(*pitem, sort_index); + } + } + } } } } + void Sort::MakePost() { if( cur->request->is_item ) @@ -196,13 +148,10 @@ void Sort::MakePost() else { GetDirContent(); - CreateItemTab(); - CreateItemTab2(); - UpdateSortIndexes(); + UpdateItems(); } plugin->Call(WINIX_DIR_CONTENT_SORTED, cur->request->dir_tab.back()); - system->RedirectToLastItem(); } diff --git a/winixd/functions/sort.h b/winixd/functions/sort.h index f8fefdf..45a4827 100644 --- a/winixd/functions/sort.h +++ b/winixd/functions/sort.h @@ -57,34 +57,12 @@ public: private: - //DbItemQuery iq; - std::vector item_tab; // indexes to cur->request->item_tab - - struct SortPair - { - long id; - int sort_index; - }; - - std::vector item_tab2; // from post table - - // for sorting item_tab - struct SortHelper - { - Sort * psort; - - SortHelper(Sort * s) : psort(s) {} - bool operator()(size_t t1, size_t t2); - }; - - // for sorting item_tab2 - static bool SortFun2(const SortPair & s1, const SortPair & s2); + std::vector items; void GetDirContent(); - void CreateItemTab(); - void CreateItemTab2(); + Item * FindItem(long id); void UpdateSortIndex(Item & item, int sort_index); - void UpdateSortIndexes(); + void UpdateItems(); }; diff --git a/winixd/functions/upload.cpp b/winixd/functions/upload.cpp index aba2f44..cc244b9 100644 --- a/winixd/functions/upload.cpp +++ b/winixd/functions/upload.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2021, Tomasz Sowa + * Copyright (c) 2008-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -436,11 +436,6 @@ void Upload::MakeGet() { if( cur->request->IsParam(L"jquery_upload") ) { -// query.Clear(); -// query.WhereParentId(cur->request->dir_tab.back()->id); -// query.WhereType(Item::file); -// query.WhereFileType(WINIX_ITEM_FILETYPE_NONE, false); - morm::Finder finder(model_connector); finder. @@ -449,10 +444,9 @@ void Upload::MakeGet() eq(L"parent_id", cur->request->dir_tab.back()->id). eq(L"type", static_cast(Item::file)). neq(L"content", L"file_type", WINIX_ITEM_FILETYPE_NONE). + raw("order by item.sort_index asc, item.url asc, item.id asc"). get_vector(cur->request->item_tab); - //db->GetItems(cur->request->item_tab, query); - CreateAnswer(); } } diff --git a/winixd/functions/upload.h b/winixd/functions/upload.h index 177176b..60e0893 100644 --- a/winixd/functions/upload.h +++ b/winixd/functions/upload.h @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2010-2021, Tomasz Sowa + * Copyright (c) 2010-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -60,7 +60,6 @@ public: private: std::wstring path; - //DbItemQuery query; bool is_jquery_upload; magic_t magic_cookie; pt::Space files; diff --git a/winixd/html/err_404.html b/winixd/html/err_404.html deleted file mode 100644 index eecdea2..0000000 --- a/winixd/html/err_404.html +++ /dev/null @@ -1,7 +0,0 @@ -
- -

{error_404}

- -

{error_404_msg}

- -
diff --git a/winixd/html/err_per_denied.html b/winixd/html/request_status.html similarity index 62% rename from winixd/html/err_per_denied.html rename to winixd/html/request_status.html index b4a13ba..aadedda 100644 --- a/winixd/html/err_per_denied.html +++ b/winixd/html/request_status.html @@ -1,8 +1,8 @@
-

{access_denied}

+

[request.http_status_error_title]

-

{access_denied_msg} +

[request.http_status_error_description] [if ipban_is_current_ip_banned]
diff --git a/winixd/locale/en b/winixd/locale/en index 0e2e54e..4e10233 100644 --- a/winixd/locale/en +++ b/winixd/locale/en @@ -67,18 +67,31 @@ added_by = Added by last_modified = Last modified by = by -error_404 = Error 404 -error_404_msg = We are sory but there is no such a page in our service. +http_error_200_title = "OK" +http_error_200_msg = "" + +http_error_400_title = Error 400 - Bad Request +http_error_400_msg = We are sorry, but your browser sent an invalid query. + +http_error_403_title = Error 403 - Permission Denied +http_error_403_msg = We are sorry, but you don't have access to the page. + +http_error_404_title = Error 404 - Not Found +http_error_404_msg = We are sorry, but there is no such a page in our service. + +http_error_414_title = Error 414 - URI Too Long +http_error_414_msg = We are sorry, but your browser sent an invalid query. + +http_error_500_title = Error 500 - Internal Error +http_error_500_msg = We are sorry, but an unknown internal error has occurred. + internal_error = Internal error, check system log for more details -was_errors = We are sory but there were some problems with the operation. +was_errors = We are sorry, but there were some problems with the operation. error_code = Error code -access_denied = Permission denied -access_denied_msg = We are sory but you don't have access to the page. - download = download cat_image_url = Image url diff --git a/winixd/locale/pl b/winixd/locale/pl index 54c292d..8a2e84d 100644 --- a/winixd/locale/pl +++ b/winixd/locale/pl @@ -70,8 +70,23 @@ added_by = Dodane przez last_modified = ostatnio modyfikowany by = przez -error_404 = Błąd 404 -error_404_msg = Przykro nam ale podanej strony nie ma w naszym serwisie. +http_error_200_title = "OK" +http_error_200_msg = "" + +http_error_400_title = Błąd 400 - złe zapytanie +http_error_400_msg = Przykro nam ale twoja przeglądarka wysłała nieprawidłowe zapytanie. + +http_error_403_title = Brak dostępu +http_error_403_msg = Przykro nam ale nie masz dostępu do tej części serwisu. + +http_error_404_title = Błąd 404 - nie znaleziono +http_error_404_msg = Przykro nam ale podanej strony nie ma w naszym serwisie. + +http_error_414_title = Błąd 414 - zbyt długi URI +http_error_414_msg = Przykro nam ale twoja przeglądarka wysłała nieprawidłowe zapytanie. + +http_error_500_title = Błąd 500 - błąd wewnętrzny +http_error_500_msg = Przykro nam ale wystąpił nieznany błąd wewnętrzny. internal_error = Błąd wewnętrzny, po więcej szczegółów sprawdź dziennik systemowy @@ -80,8 +95,6 @@ internal_error = Błąd wewnętrzny, po więcej szczegółów sprawdź dziennik was_errors = Przepraszamy ale wystąpiły problemy z wykonaniem tej operacji. error_code = Kod błędu -access_denied = Brak dostępu -access_denied_msg = Przykro nam ale nie masz dostępu do tej części serwisu. download = Ściągnij plik diff --git a/winixd/models/Makefile.dep b/winixd/models/Makefile.dep index dea1541..e6261bf 100644 --- a/winixd/models/Makefile.dep +++ b/winixd/models/Makefile.dep @@ -62,8 +62,9 @@ item.o: ../../../morm/src/jsonexpression.h item.o: ../../../morm/src/postgresqlexpression.h item.o: ../../../morm/src/jsonconnector.h item.o: ../../../morm/src/postgresqlconnector.h -item.o: ../../../morm/src/postgresqlqueryresult.h winixmodelconnector.h -item.o: itemcontent.h ../../../winix/winixd/templates/htmltextstream.h +item.o: ../../../morm/src/postgresqlqueryresult.h +item.o: ../../../morm/src/transaction.h winixmodelconnector.h itemcontent.h +item.o: ../../../winix/winixd/templates/htmltextstream.h item.o: ../../../winix/winixd/templates/misc.h item.o: ../../../winix/winixd/templates/localefilter.h item.o: ../../../winix/winixd/templates/locale.h @@ -200,7 +201,7 @@ itemcontent.o: ../../../morm/src/postgresqlexpression.h itemcontent.o: ../../../morm/src/jsonconnector.h itemcontent.o: ../../../morm/src/postgresqlconnector.h itemcontent.o: ../../../morm/src/postgresqlqueryresult.h -itemcontent.o: winixmodelconnector.h +itemcontent.o: ../../../morm/src/transaction.h winixmodelconnector.h itemcontent.o: ../../../winix/winixd/templates/htmltextstream.h itemcontent.o: ../../../winix/winixd/templates/misc.h itemcontent.o: ../../../winix/winixd/templates/localefilter.h @@ -301,6 +302,7 @@ migration.o: ../../../morm/src/postgresqlexpression.h migration.o: ../../../morm/src/jsonconnector.h migration.o: ../../../morm/src/postgresqlconnector.h migration.o: ../../../morm/src/postgresqlqueryresult.h +migration.o: ../../../morm/src/transaction.h user.o: user.h ../../../morm/src/model.h user.o: ../../../pikotools/src/textstream/textstream.h user.o: ../../../pikotools/src/textstream/stream.h @@ -344,7 +346,7 @@ user.o: ../../../morm/src/postgresqlexpression.h user.o: ../../../morm/src/jsonconnector.h user.o: ../../../morm/src/postgresqlconnector.h user.o: ../../../morm/src/postgresqlqueryresult.h -user.o: ../../../winix/winixd/core/synchro.h +user.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/synchro.h user.o: ../../../winix/winixd/core/filelog.h user.o: ../../../winix/winixd/core/lock.h user.o: ../../../winix/winixd/core/synchro.h @@ -470,7 +472,8 @@ winixmodel.o: ../../../morm/src/cursor.h ../../../morm/src/jsonexpression.h winixmodel.o: ../../../morm/src/postgresqlexpression.h winixmodel.o: ../../../morm/src/jsonconnector.h winixmodel.o: ../../../morm/src/postgresqlconnector.h -winixmodel.o: ../../../morm/src/postgresqlqueryresult.h winixmodelconnector.h +winixmodel.o: ../../../morm/src/postgresqlqueryresult.h +winixmodel.o: ../../../morm/src/transaction.h winixmodelconnector.h winixmodel.o: ../../../winix/winixd/core/session.h winixmodelconnector.o: winixmodelconnector.h winixmodelconnector.o: ../../../morm/src/modelconnector.h diff --git a/winixd/notify/Makefile.dep b/winixd/notify/Makefile.dep index 36fa37c..ec43682 100644 --- a/winixd/notify/Makefile.dep +++ b/winixd/notify/Makefile.dep @@ -41,7 +41,7 @@ notify.o: ../../../morm/src/postgresqlexpression.h notify.o: ../../../morm/src/jsonconnector.h notify.o: ../../../morm/src/postgresqlconnector.h notify.o: ../../../morm/src/postgresqlqueryresult.h -notify.o: ../../../winix/winixd/core/log.h +notify.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h notify.o: ../../../winix/winixd/core/synchro.h notify.o: ../../../winix/winixd/core/filelog.h notify.o: ../../../winix/winixd/core/lock.h @@ -176,6 +176,7 @@ notifypool.o: ../../../morm/src/postgresqlexpression.h notifypool.o: ../../../morm/src/jsonconnector.h notifypool.o: ../../../morm/src/postgresqlconnector.h notifypool.o: ../../../morm/src/postgresqlqueryresult.h +notifypool.o: ../../../morm/src/transaction.h notifypool.o: ../../../winix/winixd/core/log.h notifypool.o: ../../../winix/winixd/core/synchro.h notifypool.o: ../../../winix/winixd/core/filelog.h @@ -244,6 +245,7 @@ notifythread.o: ../../../morm/src/postgresqlexpression.h notifythread.o: ../../../morm/src/jsonconnector.h notifythread.o: ../../../morm/src/postgresqlconnector.h notifythread.o: ../../../morm/src/postgresqlqueryresult.h +notifythread.o: ../../../morm/src/transaction.h notifythread.o: ../../../winix/winixd/core/log.h notifythread.o: ../../../winix/winixd/core/synchro.h notifythread.o: ../../../winix/winixd/core/filelog.h @@ -345,6 +347,7 @@ templatesnotify.o: ../../../morm/src/postgresqlexpression.h templatesnotify.o: ../../../morm/src/jsonconnector.h templatesnotify.o: ../../../morm/src/postgresqlconnector.h templatesnotify.o: ../../../morm/src/postgresqlqueryresult.h +templatesnotify.o: ../../../morm/src/transaction.h templatesnotify.o: ../../../winix/winixd/core/log.h templatesnotify.o: ../../../winix/winixd/core/synchro.h templatesnotify.o: ../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/gallery/Makefile.dep b/winixd/plugins/gallery/Makefile.dep index c6527cd..5ce5b57 100644 --- a/winixd/plugins/gallery/Makefile.dep +++ b/winixd/plugins/gallery/Makefile.dep @@ -60,6 +60,7 @@ gallery.o: ../../../../morm/src/postgresqlexpression.h gallery.o: ../../../../morm/src/jsonconnector.h gallery.o: ../../../../morm/src/postgresqlconnector.h gallery.o: ../../../../morm/src/postgresqlqueryresult.h +gallery.o: ../../../../morm/src/transaction.h gallery.o: ../../../../winix/winixd/core/log.h gallery.o: ../../../../winix/winixd/core/synchro.h gallery.o: ../../../../winix/winixd/core/filelog.h @@ -200,6 +201,7 @@ galleryinfo.o: ../../../../morm/src/postgresqlexpression.h galleryinfo.o: ../../../../morm/src/jsonconnector.h galleryinfo.o: ../../../../morm/src/postgresqlconnector.h galleryinfo.o: ../../../../morm/src/postgresqlqueryresult.h +galleryinfo.o: ../../../../morm/src/transaction.h galleryinfo.o: ../../../../winix/winixd/core/synchro.h galleryinfo.o: ../../../../winix/winixd/core/filelog.h galleryinfo.o: ../../../../winix/winixd/core/lock.h @@ -270,6 +272,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/log.h init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/filelog.h @@ -462,6 +465,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/log.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/group/Makefile.dep b/winixd/plugins/group/Makefile.dep index 6b2fa8c..867dc00 100644 --- a/winixd/plugins/group/Makefile.dep +++ b/winixd/plugins/group/Makefile.dep @@ -55,6 +55,7 @@ groupinfo.o: ../../../../morm/src/postgresqlexpression.h groupinfo.o: ../../../../morm/src/jsonconnector.h groupinfo.o: ../../../../morm/src/postgresqlconnector.h groupinfo.o: ../../../../morm/src/postgresqlqueryresult.h +groupinfo.o: ../../../../morm/src/transaction.h groupinfo.o: ../../../../winix/winixd/core/log.h groupinfo.o: ../../../../winix/winixd/core/synchro.h groupinfo.o: ../../../../winix/winixd/core/filelog.h @@ -188,6 +189,7 @@ groups.o: ../../../../morm/src/postgresqlexpression.h groups.o: ../../../../morm/src/jsonconnector.h groups.o: ../../../../morm/src/postgresqlconnector.h groups.o: ../../../../morm/src/postgresqlqueryresult.h +groups.o: ../../../../morm/src/transaction.h groups.o: ../../../../winix/winixd/core/log.h groups.o: ../../../../winix/winixd/core/synchro.h groups.o: ../../../../winix/winixd/core/filelog.h @@ -324,6 +326,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/lock.h @@ -507,6 +510,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/log.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/menu/Makefile.dep b/winixd/plugins/menu/Makefile.dep index 75a700b..8575caa 100644 --- a/winixd/plugins/menu/Makefile.dep +++ b/winixd/plugins/menu/Makefile.dep @@ -45,6 +45,7 @@ cache.o: ../../../../morm/src/postgresqlexpression.h cache.o: ../../../../morm/src/jsonconnector.h cache.o: ../../../../morm/src/postgresqlconnector.h cache.o: ../../../../morm/src/postgresqlqueryresult.h +cache.o: ../../../../morm/src/transaction.h cache.o: ../../../../winix/winixd/core/log.h cache.o: ../../../../winix/winixd/core/synchro.h cache.o: ../../../../winix/winixd/core/filelog.h @@ -143,6 +144,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/lock.h @@ -334,6 +336,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/log.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/stats/Makefile.dep b/winixd/plugins/stats/Makefile.dep index 6210ef1..c400308 100644 --- a/winixd/plugins/stats/Makefile.dep +++ b/winixd/plugins/stats/Makefile.dep @@ -38,6 +38,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/request.h init.o: ../../../../winix/winixd/core/requesttypes.h init.o: ../../../../winix/winixd/models/item.h @@ -142,6 +143,7 @@ stats.o: ../../../../morm/src/postgresqlexpression.h stats.o: ../../../../morm/src/jsonconnector.h stats.o: ../../../../morm/src/postgresqlconnector.h stats.o: ../../../../morm/src/postgresqlqueryresult.h +stats.o: ../../../../morm/src/transaction.h stats.o: ../../../../winix/winixd/core/synchro.h stats.o: ../../../../winix/winixd/core/filelog.h stats.o: ../../../../winix/winixd/core/lock.h @@ -217,6 +219,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h templates.o: ../../../../winix/winixd/core/lock.h diff --git a/winixd/plugins/thread/Makefile.dep b/winixd/plugins/thread/Makefile.dep index 78c2987..00730f0 100644 --- a/winixd/plugins/thread/Makefile.dep +++ b/winixd/plugins/thread/Makefile.dep @@ -64,6 +64,7 @@ createthread.o: ../../../../morm/src/postgresqlexpression.h createthread.o: ../../../../morm/src/jsonconnector.h createthread.o: ../../../../morm/src/postgresqlconnector.h createthread.o: ../../../../morm/src/postgresqlqueryresult.h +createthread.o: ../../../../morm/src/transaction.h createthread.o: ../../../../winix/winixd/core/log.h createthread.o: ../../../../winix/winixd/core/synchro.h createthread.o: ../../../../winix/winixd/core/filelog.h @@ -258,6 +259,7 @@ funthread.o: ../../../../morm/src/postgresqlexpression.h funthread.o: ../../../../morm/src/jsonconnector.h funthread.o: ../../../../morm/src/postgresqlconnector.h funthread.o: ../../../../morm/src/postgresqlqueryresult.h +funthread.o: ../../../../morm/src/transaction.h funthread.o: ../../../../winix/winixd/core/log.h funthread.o: ../../../../winix/winixd/core/synchro.h funthread.o: ../../../../winix/winixd/core/filelog.h @@ -393,6 +395,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/lock.h @@ -587,6 +590,7 @@ reply.o: ../../../../morm/src/postgresqlexpression.h reply.o: ../../../../morm/src/jsonconnector.h reply.o: ../../../../morm/src/postgresqlconnector.h reply.o: ../../../../morm/src/postgresqlqueryresult.h +reply.o: ../../../../morm/src/transaction.h reply.o: ../../../../winix/winixd/core/log.h reply.o: ../../../../winix/winixd/core/synchro.h reply.o: ../../../../winix/winixd/core/filelog.h @@ -781,6 +785,7 @@ showthreads.o: ../../../../morm/src/postgresqlexpression.h showthreads.o: ../../../../morm/src/jsonconnector.h showthreads.o: ../../../../morm/src/postgresqlconnector.h showthreads.o: ../../../../morm/src/postgresqlqueryresult.h +showthreads.o: ../../../../morm/src/transaction.h showthreads.o: ../../../../winix/winixd/core/log.h showthreads.o: ../../../../winix/winixd/core/synchro.h showthreads.o: ../../../../winix/winixd/core/filelog.h @@ -917,6 +922,7 @@ tdb.o: ../../../../morm/src/postgresqlexpression.h tdb.o: ../../../../morm/src/jsonconnector.h tdb.o: ../../../../morm/src/postgresqlconnector.h tdb.o: ../../../../morm/src/postgresqlqueryresult.h +tdb.o: ../../../../morm/src/transaction.h tdb.o: ../../../../winix/winixd/core/synchro.h tdb.o: ../../../../winix/winixd/core/filelog.h tdb.o: ../../../../winix/winixd/core/lock.h @@ -984,6 +990,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/log.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h @@ -1186,6 +1193,7 @@ thread.o: ../../../../morm/src/postgresqlexpression.h thread.o: ../../../../morm/src/jsonconnector.h thread.o: ../../../../morm/src/postgresqlconnector.h thread.o: ../../../../morm/src/postgresqlqueryresult.h +thread.o: ../../../../morm/src/transaction.h thread.o: ../../../../winix/winixd/core/synchro.h thread.o: ../../../../winix/winixd/core/filelog.h thread.o: ../../../../winix/winixd/core/lock.h @@ -1287,6 +1295,7 @@ threadinfo.o: ../../../../morm/src/postgresqlexpression.h threadinfo.o: ../../../../morm/src/jsonconnector.h threadinfo.o: ../../../../morm/src/postgresqlconnector.h threadinfo.o: ../../../../morm/src/postgresqlqueryresult.h +threadinfo.o: ../../../../morm/src/transaction.h threadinfo.o: ../../../../winix/winixd/core/log.h threadinfo.o: ../../../../winix/winixd/core/synchro.h threadinfo.o: ../../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/ticket/Makefile.dep b/winixd/plugins/ticket/Makefile.dep index a77a6dd..cc4c818 100644 --- a/winixd/plugins/ticket/Makefile.dep +++ b/winixd/plugins/ticket/Makefile.dep @@ -62,6 +62,7 @@ createticket.o: ../../../../morm/src/postgresqlexpression.h createticket.o: ../../../../morm/src/jsonconnector.h createticket.o: ../../../../morm/src/postgresqlconnector.h createticket.o: ../../../../morm/src/postgresqlqueryresult.h +createticket.o: ../../../../morm/src/transaction.h createticket.o: ../../../../winix/winixd/core/log.h createticket.o: ../../../../winix/winixd/core/synchro.h createticket.o: ../../../../winix/winixd/core/filelog.h @@ -259,6 +260,7 @@ editticket.o: ../../../../morm/src/postgresqlexpression.h editticket.o: ../../../../morm/src/jsonconnector.h editticket.o: ../../../../morm/src/postgresqlconnector.h editticket.o: ../../../../morm/src/postgresqlqueryresult.h +editticket.o: ../../../../morm/src/transaction.h editticket.o: ../../../../winix/winixd/core/log.h editticket.o: ../../../../winix/winixd/core/synchro.h editticket.o: ../../../../winix/winixd/core/filelog.h @@ -453,6 +455,7 @@ funticket.o: ../../../../morm/src/postgresqlexpression.h funticket.o: ../../../../morm/src/jsonconnector.h funticket.o: ../../../../morm/src/postgresqlconnector.h funticket.o: ../../../../morm/src/postgresqlqueryresult.h +funticket.o: ../../../../morm/src/transaction.h funticket.o: ../../../../winix/winixd/core/log.h funticket.o: ../../../../winix/winixd/core/synchro.h funticket.o: ../../../../winix/winixd/core/filelog.h @@ -640,6 +643,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlqueryresult.h +init.o: ../../../../morm/src/transaction.h init.o: ../../../../winix/winixd/core/log.h init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/filelog.h @@ -848,6 +852,7 @@ showtickets.o: ../../../../morm/src/postgresqlexpression.h showtickets.o: ../../../../morm/src/jsonconnector.h showtickets.o: ../../../../morm/src/postgresqlconnector.h showtickets.o: ../../../../morm/src/postgresqlqueryresult.h +showtickets.o: ../../../../morm/src/transaction.h showtickets.o: ../../../../winix/winixd/core/log.h showtickets.o: ../../../../winix/winixd/core/synchro.h showtickets.o: ../../../../winix/winixd/core/filelog.h @@ -1036,7 +1041,7 @@ tdb.o: ../../../../morm/src/postgresqlexpression.h tdb.o: ../../../../morm/src/jsonconnector.h tdb.o: ../../../../morm/src/postgresqlconnector.h tdb.o: ../../../../morm/src/postgresqlqueryresult.h -tdb.o: ../../../../winix/winixd/core/log.h +tdb.o: ../../../../morm/src/transaction.h ../../../../winix/winixd/core/log.h tdb.o: ../../../../winix/winixd/core/synchro.h tdb.o: ../../../../winix/winixd/core/filelog.h tdb.o: ../../../../winix/winixd/core/lock.h @@ -1101,6 +1106,7 @@ templates.o: ../../../../morm/src/postgresqlexpression.h templates.o: ../../../../morm/src/jsonconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlqueryresult.h +templates.o: ../../../../morm/src/transaction.h templates.o: ../../../../winix/winixd/core/log.h templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/filelog.h @@ -1296,6 +1302,7 @@ ticketinfo.o: ../../../../morm/src/postgresqlexpression.h ticketinfo.o: ../../../../morm/src/jsonconnector.h ticketinfo.o: ../../../../morm/src/postgresqlconnector.h ticketinfo.o: ../../../../morm/src/postgresqlqueryresult.h +ticketinfo.o: ../../../../morm/src/transaction.h ticketinfo.o: ../../../../winix/winixd/core/log.h ticketinfo.o: ../../../../winix/winixd/core/synchro.h ticketinfo.o: ../../../../winix/winixd/core/filelog.h diff --git a/winixd/plugins/ticket/ticketinfo.cpp b/winixd/plugins/ticket/ticketinfo.cpp index e61dcbb..dcc01c2 100644 --- a/winixd/plugins/ticket/ticketinfo.cpp +++ b/winixd/plugins/ticket/ticketinfo.cpp @@ -576,7 +576,6 @@ bool TicketInfo::DeleteTicketFile(Ticket & ticket, long file_id, pt::Space & met void TicketInfo::ReadTicketParams(Ticket & ticket, bool clear_ticket, pt::Space & meta, bool & file_was_deleted) { -PostTab::iterator i; PostFileTab::iterator i2; file_was_deleted = false; @@ -587,23 +586,34 @@ PostFileTab::iterator i2; // !! IMPROVE ME move me somewhere std::wstring ticket_delete_prefix = L"ticketdeletefile_"; - for(i=cur->request->post_tab.begin() ; i!=cur->request->post_tab.end() ; ++i) + if( cur->request->post_in.is_object() ) { - // !! CHECKME why ticket_form_prefix is in the global config? - // (this is a plugin variable) - if( pt::is_substr(config->ticket_form_prefix, i->first) ) - { - long param_id = Tol(i->first.c_str() + config->ticket_form_prefix.size()); - ReadTicketParam(ticket, param_id, i->second, meta); - } + // WARNING + // code not tested when changed to using post_in - if( pt::is_substr(ticket_delete_prefix, i->first) ) - { - long file_id = Tol(i->first.c_str() + ticket_delete_prefix.size()); + pt::Space::ObjectType::iterator i = cur->request->post_in.value.value_object.begin(); - if( DeleteTicketFile(ticket, file_id, meta) ) + for( ; i != cur->request->post_in.value.value_object.end() ; ++i) + { + if( i->second->is_wstr() ) { - file_was_deleted = true; + // !! CHECKME why ticket_form_prefix is in the global config? + // (this is a plugin variable) + if( pt::is_substr(config->ticket_form_prefix, i->first) ) + { + long param_id = Tol(i->first.c_str() + config->ticket_form_prefix.size()); + ReadTicketParam(ticket, param_id, *i->second->get_wstr(), meta); + } + } + + if( pt::is_substr(ticket_delete_prefix, i->first) ) + { + long file_id = Tol(i->first.c_str() + ticket_delete_prefix.size()); + + if( DeleteTicketFile(ticket, file_id, meta) ) + { + file_was_deleted = true; + } } } } diff --git a/winixd/templates/Makefile.dep b/winixd/templates/Makefile.dep index 7a3419f..0747e00 100644 --- a/winixd/templates/Makefile.dep +++ b/winixd/templates/Makefile.dep @@ -48,7 +48,7 @@ adduser.o: ../../../morm/src/postgresqlexpression.h adduser.o: ../../../morm/src/jsonconnector.h adduser.o: ../../../morm/src/postgresqlconnector.h adduser.o: ../../../morm/src/postgresqlqueryresult.h -adduser.o: ../../../winix/winixd/core/log.h +adduser.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h adduser.o: ../../../winix/winixd/core/synchro.h adduser.o: ../../../winix/winixd/core/filelog.h adduser.o: ../../../winix/winixd/core/lock.h @@ -177,7 +177,7 @@ antispam.o: ../../../morm/src/postgresqlexpression.h antispam.o: ../../../morm/src/jsonconnector.h antispam.o: ../../../morm/src/postgresqlconnector.h antispam.o: ../../../morm/src/postgresqlqueryresult.h -antispam.o: ../../../winix/winixd/core/log.h +antispam.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h antispam.o: ../../../winix/winixd/core/synchro.h antispam.o: ../../../winix/winixd/core/filelog.h antispam.o: ../../../winix/winixd/core/lock.h @@ -311,6 +311,7 @@ changepatterns.o: ../../../morm/src/postgresqlexpression.h changepatterns.o: ../../../morm/src/jsonconnector.h changepatterns.o: ../../../morm/src/postgresqlconnector.h changepatterns.o: ../../../morm/src/postgresqlqueryresult.h +changepatterns.o: ../../../morm/src/transaction.h changepatterns.o: ../../../winix/winixd/core/log.h changepatterns.o: ../../../winix/winixd/core/synchro.h changepatterns.o: ../../../winix/winixd/core/filelog.h @@ -375,7 +376,7 @@ config.o: ../../../morm/src/postgresqlexpression.h config.o: ../../../morm/src/jsonconnector.h config.o: ../../../morm/src/postgresqlconnector.h config.o: ../../../morm/src/postgresqlqueryresult.h -config.o: ../../../winix/winixd/core/log.h +config.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h config.o: ../../../winix/winixd/core/synchro.h config.o: ../../../winix/winixd/core/filelog.h config.o: ../../../winix/winixd/core/lock.h @@ -505,6 +506,7 @@ currentdate.o: ../../../morm/src/postgresqlexpression.h currentdate.o: ../../../morm/src/jsonconnector.h currentdate.o: ../../../morm/src/postgresqlconnector.h currentdate.o: ../../../morm/src/postgresqlqueryresult.h +currentdate.o: ../../../morm/src/transaction.h currentdate.o: ../../../winix/winixd/core/log.h currentdate.o: ../../../winix/winixd/core/synchro.h currentdate.o: ../../../winix/winixd/core/filelog.h @@ -682,7 +684,8 @@ dir.o: ../../../morm/src/postgresqlexpression.h dir.o: ../../../morm/src/jsonconnector.h dir.o: ../../../morm/src/postgresqlconnector.h dir.o: ../../../morm/src/postgresqlqueryresult.h -dir.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +dir.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +dir.o: ../../../winix/winixd/core/synchro.h dir.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h dir.o: ../../../winix/winixd/core/synchro.h dir.o: ../../../pikotools/src/convert/patternreplacer.h @@ -850,7 +853,8 @@ doc.o: ../../../morm/src/postgresqlexpression.h doc.o: ../../../morm/src/jsonconnector.h doc.o: ../../../morm/src/postgresqlconnector.h doc.o: ../../../morm/src/postgresqlqueryresult.h -doc.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +doc.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +doc.o: ../../../winix/winixd/core/synchro.h doc.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h doc.o: ../../../winix/winixd/core/synchro.h doc.o: ../../../pikotools/src/convert/patternreplacer.h @@ -976,7 +980,7 @@ filters.o: ../../../morm/src/postgresqlexpression.h filters.o: ../../../morm/src/jsonconnector.h filters.o: ../../../morm/src/postgresqlconnector.h filters.o: ../../../morm/src/postgresqlqueryresult.h -filters.o: ../../../winix/winixd/core/log.h +filters.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h filters.o: ../../../winix/winixd/core/synchro.h filters.o: ../../../winix/winixd/core/filelog.h filters.o: ../../../winix/winixd/core/lock.h @@ -1110,7 +1114,7 @@ generic.o: ../../../morm/src/postgresqlexpression.h generic.o: ../../../morm/src/jsonconnector.h generic.o: ../../../morm/src/postgresqlconnector.h generic.o: ../../../morm/src/postgresqlqueryresult.h -generic.o: ../../../winix/winixd/core/log.h +generic.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h generic.o: ../../../winix/winixd/core/synchro.h generic.o: ../../../winix/winixd/core/filelog.h generic.o: ../../../winix/winixd/core/lock.h @@ -1237,6 +1241,7 @@ htmltextstream.o: ../../../morm/src/postgresqlexpression.h htmltextstream.o: ../../../morm/src/jsonconnector.h htmltextstream.o: ../../../morm/src/postgresqlconnector.h htmltextstream.o: ../../../morm/src/postgresqlqueryresult.h +htmltextstream.o: ../../../morm/src/transaction.h indexpatterns.o: indexpatterns.h ../../../ezc/src/ezc.h indexpatterns.o: ../../../ezc/src/generator.h ../../../ezc/src/blocks.h indexpatterns.o: ../../../ezc/src/item.h ../../../ezc/src/cache.h @@ -1290,6 +1295,7 @@ indexpatterns.o: ../../../morm/src/postgresqlexpression.h indexpatterns.o: ../../../morm/src/jsonconnector.h indexpatterns.o: ../../../morm/src/postgresqlconnector.h indexpatterns.o: ../../../morm/src/postgresqlqueryresult.h +indexpatterns.o: ../../../morm/src/transaction.h indexpatterns.o: ../../../winix/winixd/core/log.h indexpatterns.o: ../../../winix/winixd/core/synchro.h indexpatterns.o: ../../../winix/winixd/core/filelog.h @@ -1347,7 +1353,7 @@ insert.o: ../../../morm/src/postgresqlexpression.h insert.o: ../../../morm/src/jsonconnector.h insert.o: ../../../morm/src/postgresqlconnector.h insert.o: ../../../morm/src/postgresqlqueryresult.h -insert.o: ../../../winix/winixd/core/log.h +insert.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h insert.o: ../../../winix/winixd/core/synchro.h insert.o: ../../../winix/winixd/core/filelog.h insert.o: ../../../winix/winixd/core/lock.h @@ -1479,7 +1485,7 @@ ipban.o: ../../../morm/src/postgresqlexpression.h ipban.o: ../../../morm/src/jsonconnector.h ipban.o: ../../../morm/src/postgresqlconnector.h ipban.o: ../../../morm/src/postgresqlqueryresult.h -ipban.o: ../../../winix/winixd/core/log.h +ipban.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h ipban.o: ../../../winix/winixd/core/synchro.h ipban.o: ../../../winix/winixd/core/filelog.h ipban.o: ../../../winix/winixd/core/lock.h @@ -1653,7 +1659,8 @@ last.o: ../../../morm/src/postgresqlexpression.h last.o: ../../../morm/src/jsonconnector.h last.o: ../../../morm/src/postgresqlconnector.h last.o: ../../../morm/src/postgresqlqueryresult.h -last.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +last.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +last.o: ../../../winix/winixd/core/synchro.h last.o: ../../../winix/winixd/core/filelog.h last.o: ../../../winix/winixd/core/lock.h last.o: ../../../winix/winixd/core/synchro.h @@ -1773,7 +1780,7 @@ locale.o: ../../../morm/src/postgresqlexpression.h locale.o: ../../../morm/src/jsonconnector.h locale.o: ../../../morm/src/postgresqlconnector.h locale.o: ../../../morm/src/postgresqlqueryresult.h -locale.o: ../../../winix/winixd/core/log.h +locale.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h locale.o: ../../../winix/winixd/core/synchro.h locale.o: ../../../winix/winixd/core/filelog.h locale.o: ../../../winix/winixd/core/lock.h @@ -1840,6 +1847,7 @@ localefilter.o: ../../../morm/src/postgresqlexpression.h localefilter.o: ../../../morm/src/jsonconnector.h localefilter.o: ../../../morm/src/postgresqlconnector.h localefilter.o: ../../../morm/src/postgresqlqueryresult.h +localefilter.o: ../../../morm/src/transaction.h localefilter.o: ../../../winix/winixd/core/log.h localefilter.o: ../../../winix/winixd/core/synchro.h localefilter.o: ../../../winix/winixd/core/filelog.h @@ -1909,7 +1917,7 @@ login.o: ../../../morm/src/postgresqlexpression.h login.o: ../../../morm/src/jsonconnector.h login.o: ../../../morm/src/postgresqlconnector.h login.o: ../../../morm/src/postgresqlqueryresult.h -login.o: ../../../winix/winixd/core/log.h +login.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h login.o: ../../../winix/winixd/core/synchro.h login.o: ../../../winix/winixd/core/filelog.h login.o: ../../../winix/winixd/core/lock.h @@ -2076,7 +2084,8 @@ ls.o: ../../../morm/src/postgresqlexpression.h ls.o: ../../../morm/src/jsonconnector.h ls.o: ../../../morm/src/postgresqlconnector.h ls.o: ../../../morm/src/postgresqlqueryresult.h -ls.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +ls.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +ls.o: ../../../winix/winixd/core/synchro.h ls.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h ls.o: ../../../winix/winixd/core/synchro.h ls.o: ../../../pikotools/src/convert/patternreplacer.h @@ -2189,7 +2198,8 @@ man.o: ../../../morm/src/postgresqlexpression.h man.o: ../../../morm/src/jsonconnector.h man.o: ../../../morm/src/postgresqlconnector.h man.o: ../../../morm/src/postgresqlqueryresult.h -man.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +man.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../pikotools/src/convert/patternreplacer.h @@ -2358,7 +2368,8 @@ misc.o: ../../../morm/src/postgresqlexpression.h misc.o: ../../../morm/src/jsonconnector.h misc.o: ../../../morm/src/postgresqlconnector.h misc.o: ../../../morm/src/postgresqlqueryresult.h -misc.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +misc.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +misc.o: ../../../winix/winixd/core/synchro.h misc.o: ../../../winix/winixd/core/filelog.h misc.o: ../../../winix/winixd/core/lock.h misc.o: ../../../winix/winixd/core/synchro.h @@ -2485,7 +2496,7 @@ mount.o: ../../../morm/src/postgresqlexpression.h mount.o: ../../../morm/src/jsonconnector.h mount.o: ../../../morm/src/postgresqlconnector.h mount.o: ../../../morm/src/postgresqlqueryresult.h -mount.o: ../../../winix/winixd/core/log.h +mount.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h mount.o: ../../../winix/winixd/core/synchro.h mount.o: ../../../winix/winixd/core/filelog.h mount.o: ../../../winix/winixd/core/lock.h @@ -2616,7 +2627,7 @@ passwd.o: ../../../morm/src/postgresqlexpression.h passwd.o: ../../../morm/src/jsonconnector.h passwd.o: ../../../morm/src/postgresqlconnector.h passwd.o: ../../../morm/src/postgresqlqueryresult.h -passwd.o: ../../../winix/winixd/core/log.h +passwd.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h passwd.o: ../../../winix/winixd/core/synchro.h passwd.o: ../../../winix/winixd/core/filelog.h passwd.o: ../../../winix/winixd/core/lock.h @@ -2740,6 +2751,7 @@ patterncacher.o: ../../../morm/src/postgresqlexpression.h patterncacher.o: ../../../morm/src/jsonconnector.h patterncacher.o: ../../../morm/src/postgresqlconnector.h patterncacher.o: ../../../morm/src/postgresqlqueryresult.h +patterncacher.o: ../../../morm/src/transaction.h patterncacher.o: ../../../winix/winixd/core/log.h patterncacher.o: ../../../winix/winixd/core/synchro.h patterncacher.o: ../../../winix/winixd/core/filelog.h @@ -2802,7 +2814,7 @@ patterns.o: ../../../morm/src/postgresqlexpression.h patterns.o: ../../../morm/src/jsonconnector.h patterns.o: ../../../morm/src/postgresqlconnector.h patterns.o: ../../../morm/src/postgresqlqueryresult.h -patterns.o: ../../../winix/winixd/core/log.h +patterns.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h patterns.o: ../../../winix/winixd/core/synchro.h patterns.o: ../../../winix/winixd/core/filelog.h patterns.o: ../../../winix/winixd/core/lock.h @@ -2862,7 +2874,8 @@ priv.o: ../../../morm/src/postgresqlexpression.h priv.o: ../../../morm/src/jsonconnector.h priv.o: ../../../morm/src/postgresqlconnector.h priv.o: ../../../morm/src/postgresqlqueryresult.h -priv.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +priv.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +priv.o: ../../../winix/winixd/core/synchro.h priv.o: ../../../winix/winixd/core/filelog.h priv.o: ../../../winix/winixd/core/lock.h priv.o: ../../../winix/winixd/core/synchro.h @@ -3037,7 +3050,7 @@ rebus.o: ../../../morm/src/postgresqlexpression.h rebus.o: ../../../morm/src/jsonconnector.h rebus.o: ../../../morm/src/postgresqlconnector.h rebus.o: ../../../morm/src/postgresqlqueryresult.h -rebus.o: ../../../winix/winixd/core/log.h +rebus.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h rebus.o: ../../../winix/winixd/core/synchro.h rebus.o: ../../../winix/winixd/core/filelog.h rebus.o: ../../../winix/winixd/core/lock.h @@ -3161,7 +3174,7 @@ server.o: ../../../morm/src/postgresqlexpression.h server.o: ../../../morm/src/jsonconnector.h server.o: ../../../morm/src/postgresqlconnector.h server.o: ../../../morm/src/postgresqlqueryresult.h -server.o: ../../../winix/winixd/core/log.h +server.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h server.o: ../../../winix/winixd/core/synchro.h server.o: ../../../winix/winixd/core/filelog.h server.o: ../../../winix/winixd/core/lock.h @@ -3334,7 +3347,8 @@ slog.o: ../../../morm/src/postgresqlexpression.h slog.o: ../../../morm/src/jsonconnector.h slog.o: ../../../morm/src/postgresqlconnector.h slog.o: ../../../morm/src/postgresqlqueryresult.h -slog.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +slog.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +slog.o: ../../../winix/winixd/core/synchro.h slog.o: ../../../winix/winixd/core/filelog.h slog.o: ../../../winix/winixd/core/lock.h slog.o: ../../../winix/winixd/core/synchro.h @@ -3451,7 +3465,8 @@ stat.o: ../../../morm/src/postgresqlexpression.h stat.o: ../../../morm/src/jsonconnector.h stat.o: ../../../morm/src/postgresqlconnector.h stat.o: ../../../morm/src/postgresqlqueryresult.h -stat.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +stat.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +stat.o: ../../../winix/winixd/core/synchro.h stat.o: ../../../winix/winixd/core/filelog.h stat.o: ../../../winix/winixd/core/lock.h stat.o: ../../../winix/winixd/core/synchro.h @@ -3576,7 +3591,8 @@ sys.o: ../../../morm/src/postgresqlexpression.h sys.o: ../../../morm/src/jsonconnector.h sys.o: ../../../morm/src/postgresqlconnector.h sys.o: ../../../morm/src/postgresqlqueryresult.h -sys.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +sys.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +sys.o: ../../../winix/winixd/core/synchro.h sys.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h sys.o: ../../../winix/winixd/core/synchro.h sys.o: ../../../pikotools/src/convert/patternreplacer.h @@ -3698,7 +3714,7 @@ template.o: ../../../morm/src/postgresqlexpression.h template.o: ../../../morm/src/jsonconnector.h template.o: ../../../morm/src/postgresqlconnector.h template.o: ../../../morm/src/postgresqlqueryresult.h -template.o: ../../../winix/winixd/core/log.h +template.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h template.o: ../../../winix/winixd/core/synchro.h template.o: ../../../winix/winixd/core/filelog.h template.o: ../../../winix/winixd/core/lock.h @@ -3832,7 +3848,7 @@ templates.o: ../../../morm/src/postgresqlexpression.h templates.o: ../../../morm/src/jsonconnector.h templates.o: ../../../morm/src/postgresqlconnector.h templates.o: ../../../morm/src/postgresqlqueryresult.h -templates.o: ../../../winix/winixd/core/log.h +templates.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h templates.o: ../../../winix/winixd/core/synchro.h templates.o: ../../../winix/winixd/core/filelog.h templates.o: ../../../winix/winixd/core/lock.h @@ -4028,7 +4044,7 @@ upload.o: ../../../morm/src/postgresqlexpression.h upload.o: ../../../morm/src/jsonconnector.h upload.o: ../../../morm/src/postgresqlconnector.h upload.o: ../../../morm/src/postgresqlqueryresult.h -upload.o: ../../../winix/winixd/core/log.h +upload.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h upload.o: ../../../winix/winixd/core/synchro.h upload.o: ../../../winix/winixd/core/filelog.h upload.o: ../../../winix/winixd/core/lock.h @@ -4154,7 +4170,7 @@ uptime.o: ../../../morm/src/postgresqlexpression.h uptime.o: ../../../morm/src/jsonconnector.h uptime.o: ../../../morm/src/postgresqlconnector.h uptime.o: ../../../morm/src/postgresqlqueryresult.h -uptime.o: ../../../winix/winixd/core/log.h +uptime.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h uptime.o: ../../../winix/winixd/core/synchro.h uptime.o: ../../../winix/winixd/core/filelog.h uptime.o: ../../../winix/winixd/core/lock.h @@ -4277,7 +4293,8 @@ user.o: ../../../morm/src/postgresqlexpression.h user.o: ../../../morm/src/jsonconnector.h user.o: ../../../morm/src/postgresqlconnector.h user.o: ../../../morm/src/postgresqlqueryresult.h -user.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +user.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +user.o: ../../../winix/winixd/core/synchro.h user.o: ../../../winix/winixd/core/filelog.h user.o: ../../../winix/winixd/core/lock.h user.o: ../../../winix/winixd/core/synchro.h @@ -4402,7 +4419,8 @@ who.o: ../../../morm/src/postgresqlexpression.h who.o: ../../../morm/src/jsonconnector.h who.o: ../../../morm/src/postgresqlconnector.h who.o: ../../../morm/src/postgresqlqueryresult.h -who.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/synchro.h +who.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h +who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../winix/winixd/core/filelog.h ../../../winix/winixd/core/lock.h who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../pikotools/src/convert/patternreplacer.h @@ -4527,7 +4545,7 @@ winix.o: ../../../morm/src/postgresqlexpression.h winix.o: ../../../morm/src/jsonconnector.h winix.o: ../../../morm/src/postgresqlconnector.h winix.o: ../../../morm/src/postgresqlqueryresult.h -winix.o: ../../../winix/winixd/core/log.h +winix.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h winix.o: ../../../winix/winixd/core/synchro.h winix.o: ../../../winix/winixd/core/filelog.h winix.o: ../../../winix/winixd/core/lock.h diff --git a/winixd/templates/templates.cpp b/winixd/templates/templates.cpp index 7fd853d..d443632 100644 --- a/winixd/templates/templates.cpp +++ b/winixd/templates/templates.cpp @@ -5,7 +5,7 @@ */ /* - * Copyright (c) 2008-2021, Tomasz Sowa + * Copyright (c) 2008-2022, Tomasz Sowa * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -41,15 +41,14 @@ namespace Winix { -// !! IMPROVE ME moze zamienic na EzcFunctions +// !! IMPROVE ME may change to EzcFunctions? namespace TemplatesFunctions { size_t pat_index; // main index pattern size_t pat_index_generic; // generic index pattern, without any css-site styles, only main css (uikit) size_t pat_index_raw; // pattern for a raw content (raw content without html, body markup) -size_t pat_err_404; // 404 error -size_t pat_err_per_denied; // permission denied error +size_t pat_request_status; // error.html Patterns patterns; // all html patterns IndexPatterns index_patterns; // patterns for main index templates (those from mountpoint) @@ -106,7 +105,7 @@ Ezc::Pattern * p; if( !cur->request->function ) { - log << log1 << "Templates: cannot get a template for a function (there is not a function)" << logend; + log << log1 << "Templates: cannot get a template for a function (there is no a function)" << logend; return 0; } @@ -134,60 +133,30 @@ return p; -void content(Info & i) +void content(EzcEnv & env) { -Ezc::Pattern * p = 0; +Ezc::Pattern * pattern = 0; - switch( cur->request->status ) + switch( cur->request->http_status ) { - //case WINIX_ERR_NO_ITEM: !! we need something like 'error::item_required' - //p = &pat_err_item_required; - //break; - - case WINIX_ERR_INCORRECT_URI: // !!temporarily - case WINIX_ERR_INTERNAL_ERROR: // !! temprarily - case WINIX_ERR_PERMISSION_DENIED: - case WINIX_ERR_CANT_CHANGE_USER: - case WINIX_ERR_CANT_CHANGE_GROUP: - case WINIX_ERR_CANT_CHANGE_PRIVILEGES: - // !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika - p = patterns.Get(pat_err_per_denied, locale.GetCurLang()); + case Header::status_200_ok: + pattern = GetPatternForFunction(); + break; - if( p ) - log << log3 << "Templates: error pattern taken from: " << patterns.GetFileName(pat_err_per_denied) << logend; - - break; - - case WINIX_ERR_NO_ITEM: - case WINIX_ERR_NO_FUNCTION: - case WINIX_ERR_UNKNOWN_PARAM: - // !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika - p = patterns.Get(pat_err_404, locale.GetCurLang()); - - if( p ) - log << log3 << "Templates: error pattern taken from: " << patterns.GetFileName(pat_err_404) << logend; - - break; - - //default: - // !! locale.GetLang() bedzie brane indywidualnie dla kazdego uzytkownika - //p = &patterns[locale.GetLang()][pat_err_others]; - //break; - - //case WINIX_ERR_OK: - //case WINIX_ERR_SPAM: - //case WINIX_ERR_INCORRECT_REBUS: default: - p = GetPatternForFunction(); - break; - } + pattern = patterns.Get(pat_request_status, locale.GetCurLang()); + if( pattern ) + log << log3 << "Templates: error pattern taken from: " << patterns.GetFileName(pat_request_status) << logend; + + break; + } - if( p ) + if( pattern ) { InitGenerator(content_gen, cur->request->models); - content_gen.SetPattern(*p); - content_gen.Generate(i.out, cur->request->out_streams); + content_gen.SetPattern(*pattern); + content_gen.Generate(env.out, cur->request->out_streams); } else { @@ -853,8 +822,7 @@ using namespace TemplatesFunctions; pat_index = patterns.Add(config->templates_index); pat_index_generic = patterns.Add(config->templates_index_generic); pat_index_raw = patterns.Add(config->templates_index_raw); - pat_err_404 = patterns.Add(L"err_404.html"); // !! IMPROVE ME name to the config - pat_err_per_denied = patterns.Add(L"err_per_denied.html"); // !! IMPROVE ME name to the config + pat_request_status = patterns.Add(config->templates_request_status); ReadTemplatesForFunctions(); ReadIndexTemplates(); diff --git a/winixd/templates/templates.h b/winixd/templates/templates.h index ef9e293..4fa9e4a 100644 --- a/winixd/templates/templates.h +++ b/winixd/templates/templates.h @@ -69,8 +69,7 @@ namespace TemplatesFunctions extern size_t pat_index; extern size_t pat_index_generic; extern size_t pat_index_raw; - extern size_t pat_err_404; - extern size_t pat_err_per_denied; + extern size_t pat_request_status; extern Patterns patterns; extern IndexPatterns index_patterns; diff --git a/winixd/utils/Makefile.dep b/winixd/utils/Makefile.dep index c63b176..a7f83c6 100644 --- a/winixd/utils/Makefile.dep +++ b/winixd/utils/Makefile.dep @@ -44,6 +44,7 @@ acceptbaseparser.o: ../../../morm/src/postgresqlexpression.h acceptbaseparser.o: ../../../morm/src/jsonconnector.h acceptbaseparser.o: ../../../morm/src/postgresqlconnector.h acceptbaseparser.o: ../../../morm/src/postgresqlqueryresult.h +acceptbaseparser.o: ../../../morm/src/transaction.h acceptbaseparser.o: ../../../pikotools/src/convert/convert.h acceptbaseparser.o: ../../../pikotools/src/convert/inttostr.h acceptbaseparser.o: ../../../pikotools/src/convert/patternreplacer.h