remove Request::post_tab and add Request::http_status

Instead of Reqest::post_tab we use now Request::post_in (pt::Space).

Request::http_status will be used instead Request::status,
but at the moment is not changed in all places.
Request::status has been marked as depracated.

While here:
- Check for root dir in App and not in FunctionParser,
let FunctionParser only log the root dir.
- Read post variables after parsing url parameters,
this allows winix functions to set limits
for post input.
- Set limits when parsing input json format, new
options added to config: post_max_object_items, post_max_table_items,
post_max_all_items, post_max_nested_objects.
There are similar options in each winix function (they are in
FunctionBase).
- Some refactoring in App.
- Add config option: log_whole_http_post if true
then the whole parsed post input is logged.
- Add config option: post_json_max - max length of input stream
for parsing json.
- Add config option: templates_request_status, default request_status.html
this is an ezc template used as [content] when the request status
is not 200_ok.
- Fix: Sort winix function didn't show items to sort (fix and do some
refactoring as well)
- Properly sort items in: ImgCrop, Ls, Sort, Upload
- Remove ezc templates: err_404.html, err_per_denied.html - now
request_status.html is used.
This commit is contained in:
Tomasz Sowa 2022-05-30 01:29:18 +02:00
parent 9e222f5b80
commit 7d1fb3c04e
46 changed files with 1224 additions and 835 deletions

File diff suppressed because one or more lines are too long

View File

@ -42,8 +42,9 @@ app.o: ../../../morm/src/postgresqlexpression.h
app.o: ../../../morm/src/jsonconnector.h app.o: ../../../morm/src/jsonconnector.h
app.o: ../../../morm/src/postgresqlconnector.h app.o: ../../../morm/src/postgresqlconnector.h
app.o: ../../../morm/src/postgresqlqueryresult.h app.o: ../../../morm/src/postgresqlqueryresult.h
app.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h app.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h
app.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.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/strtoint.h
app.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h app.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h
app.o: winix_const.h ../../../pikotools/src/convert/convert.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/jsonconnector.h
basethread.o: ../../../morm/src/postgresqlconnector.h basethread.o: ../../../morm/src/postgresqlconnector.h
basethread.o: ../../../morm/src/postgresqlqueryresult.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/log.h
basethread.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h basethread.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h
basethread.o: pluginmsg.h plugindata.h winixbase.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/jsonconnector.h
compress.o: ../../../morm/src/postgresqlconnector.h compress.o: ../../../morm/src/postgresqlconnector.h
compress.o: ../../../morm/src/postgresqlqueryresult.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: config.h log.h logmanipulators.h ../../../pikotools/src/log/log.h
config.o: ../../../pikotools/src/textstream/textstream.h config.o: ../../../pikotools/src/textstream/textstream.h
config.o: ../../../pikotools/src/textstream/stream.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/postgresqlexpression.h
config.o: ../../../morm/src/jsonconnector.h config.o: ../../../morm/src/jsonconnector.h
config.o: ../../../morm/src/postgresqlconnector.h config.o: ../../../morm/src/postgresqlconnector.h
config.o: ../../../morm/src/postgresqlqueryresult.h misc.h requesttypes.h config.o: ../../../morm/src/postgresqlqueryresult.h
config.o: winix_const.h ../../../pikotools/src/convert/convert.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/inttostr.h
config.o: ../../../pikotools/src/convert/patternreplacer.h config.o: ../../../pikotools/src/convert/patternreplacer.h
config.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
crypt.o: ../../../morm/src/postgresqlconnector.h crypt.o: ../../../morm/src/postgresqlconnector.h
crypt.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
crypt.o: ../../../pikotools/src/convert/patternreplacer.h crypt.o: ../../../pikotools/src/convert/patternreplacer.h
crypt.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
dircontainer.o: ../../../morm/src/postgresqlconnector.h dircontainer.o: ../../../morm/src/postgresqlconnector.h
dircontainer.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
dircontainer.o: ../../../pikotools/src/convert/patternreplacer.h dircontainer.o: ../../../pikotools/src/convert/patternreplacer.h
dircontainer.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
dirs.o: ../../../morm/src/postgresqlconnector.h dirs.o: ../../../morm/src/postgresqlconnector.h
dirs.o: ../../../morm/src/postgresqlqueryresult.h dirs.o: ../../../morm/src/postgresqlqueryresult.h
dirs.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h dirs.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/filelog.h
dirs.o: ../../../pikotools/src/convert/patternreplacer.h dirs.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.h
dirs.o: ../../../pikotools/src/convert/strtoint.h dirs.o: ../../../pikotools/src/convert/strtoint.h
dirs.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h dirs.o: ../../../pikotools/src/convert/text.h misc.h requesttypes.h
dirs.o: winix_const.h ../../../pikotools/src/convert/convert.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/jsonconnector.h
groups.o: ../../../morm/src/postgresqlconnector.h groups.o: ../../../morm/src/postgresqlconnector.h
groups.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h lock.h synchro.h
groups.o: ../../../winix/winixd/core/error.h groups.o: ../../../winix/winixd/core/error.h
groups.o: ../../../winix/winixd/models/user.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/dircontainer.h
groups.o: ../../../winix/winixd/core/ugcontainer.h winixbase.h groups.o: ../../../winix/winixd/core/ugcontainer.h winixbase.h
groups.o: winixmodeldeprecated.h plugin.h pluginmsg.h plugindata.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: httpsimpleparser.h winixmodeldeprecated.h
httpsimpleparser.o: ../../../winix/winixd/core/winixbase.h httpsimpleparser.o: ../../../winix/winixd/core/winixbase.h
httpsimpleparser.o: ../../../winix/winixd/core/config.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/jsonconnector.h
httpsimpleparser.o: ../../../morm/src/postgresqlconnector.h httpsimpleparser.o: ../../../morm/src/postgresqlconnector.h
httpsimpleparser.o: ../../../morm/src/postgresqlqueryresult.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/log.h
httpsimpleparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h httpsimpleparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
httpsimpleparser.o: plugin.h pluginmsg.h plugindata.h winixbase.h misc.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/jsonconnector.h
image.o: ../../../morm/src/postgresqlconnector.h image.o: ../../../morm/src/postgresqlconnector.h
image.o: ../../../morm/src/postgresqlqueryresult.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: ../../../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: plugindata.h winixbase.h textstream.h misc.h requesttypes.h
image.o: winix_const.h ../../../pikotools/src/convert/convert.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/jsonconnector.h
ipbancontainer.o: ../../../morm/src/postgresqlconnector.h ipbancontainer.o: ../../../morm/src/postgresqlconnector.h
ipbancontainer.o: ../../../morm/src/postgresqlqueryresult.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/log.h
ipbancontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h ipbancontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
ipbancontainer.o: plugin.h pluginmsg.h plugindata.h winixbase.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/jsonconnector.h
job.o: ../../../morm/src/postgresqlconnector.h job.o: ../../../morm/src/postgresqlconnector.h
job.o: ../../../morm/src/postgresqlqueryresult.h job.o: ../../../morm/src/postgresqlqueryresult.h
job.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h job.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h
job.o: lock.h plugin.h pluginmsg.h plugindata.h winixbase.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: lastcontainer.h ../../../pikotools/src/date/date.h
lastcontainer.o: ../../../pikotools/src/convert/inttostr.h winixbase.h log.h lastcontainer.o: ../../../pikotools/src/convert/inttostr.h winixbase.h log.h
lastcontainer.o: logmanipulators.h ../../../pikotools/src/log/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/postgresqlexpression.h
lastcontainer.o: ../../../morm/src/jsonconnector.h lastcontainer.o: ../../../morm/src/jsonconnector.h
lastcontainer.o: ../../../morm/src/postgresqlconnector.h lastcontainer.o: ../../../morm/src/postgresqlconnector.h
lastcontainer.o: ../../../morm/src/postgresqlqueryresult.h misc.h lastcontainer.o: ../../../morm/src/postgresqlqueryresult.h
lastcontainer.o: requesttypes.h winix_const.h lastcontainer.o: ../../../morm/src/transaction.h misc.h requesttypes.h
lastcontainer.o: ../../../pikotools/src/convert/convert.h lastcontainer.o: winix_const.h ../../../pikotools/src/convert/convert.h
lastcontainer.o: ../../../pikotools/src/convert/inttostr.h lastcontainer.o: ../../../pikotools/src/convert/inttostr.h
lastcontainer.o: ../../../pikotools/src/convert/patternreplacer.h lastcontainer.o: ../../../pikotools/src/convert/patternreplacer.h
lastcontainer.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
loadavg.o: ../../../morm/src/postgresqlconnector.h loadavg.o: ../../../morm/src/postgresqlconnector.h
loadavg.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
loadavg.o: ../../../pikotools/src/convert/patternreplacer.h loadavg.o: ../../../pikotools/src/convert/patternreplacer.h
loadavg.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
log.o: ../../../morm/src/postgresqlconnector.h log.o: ../../../morm/src/postgresqlconnector.h
log.o: ../../../morm/src/postgresqlqueryresult.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: misc.h requesttypes.h ../../../pikotools/src/textstream/textstream.h
misc.o: ../../../pikotools/src/textstream/stream.h misc.o: ../../../pikotools/src/textstream/stream.h
misc.o: ../../../pikotools/src/space/space.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/jsonconnector.h
misc.o: ../../../morm/src/postgresqlconnector.h misc.o: ../../../morm/src/postgresqlconnector.h
misc.o: ../../../morm/src/postgresqlqueryresult.h misc.o: ../../../morm/src/postgresqlqueryresult.h
misc.o: ../../../winix/winixd/core/log.h ../../../winix/winixd/core/filelog.h misc.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/log.h
misc.o: lock.h synchro.h ../../../winix/winixd/models/item.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/winixmodel.h
misc.o: ../../../winix/winixd/models/winixmodelconnector.h misc.o: ../../../winix/winixd/models/winixmodelconnector.h
misc.o: ../../../winix/winixd/models/itemcontent.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/jsonconnector.h
mountparser.o: ../../../morm/src/postgresqlconnector.h mountparser.o: ../../../morm/src/postgresqlconnector.h
mountparser.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
mountparser.o: ../../../pikotools/src/convert/patternreplacer.h mountparser.o: ../../../pikotools/src/convert/patternreplacer.h
mountparser.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
mounts.o: ../../../morm/src/postgresqlconnector.h mounts.o: ../../../morm/src/postgresqlconnector.h
mounts.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
mounts.o: ../../../pikotools/src/convert/patternreplacer.h mounts.o: ../../../pikotools/src/convert/patternreplacer.h
mounts.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
plugin.o: ../../../morm/src/postgresqlconnector.h plugin.o: ../../../morm/src/postgresqlconnector.h
plugin.o: ../../../morm/src/postgresqlqueryresult.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/core/filelog.h lock.h dirs.h dircontainer.h
plugin.o: ../../../winix/winixd/models/item.h plugin.o: ../../../winix/winixd/models/item.h
plugin.o: ../../../winix/winixd/models/winixmodel.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/jsonconnector.h
plugindata.o: ../../../morm/src/postgresqlconnector.h plugindata.o: ../../../morm/src/postgresqlconnector.h
plugindata.o: ../../../morm/src/postgresqlqueryresult.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/textstream.h
postmultiparser.o: ../../../pikotools/src/textstream/stream.h postmultiparser.o: ../../../pikotools/src/textstream/stream.h
postmultiparser.o: ../../../pikotools/src/space/space.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/date/date.h
postmultiparser.o: ../../../pikotools/src/membuffer/membuffer.h postmultiparser.o: ../../../pikotools/src/membuffer/membuffer.h
postmultiparser.o: ../../../pikotools/src/textstream/types.h postmultiparser.o: ../../../pikotools/src/textstream/types.h
postmultiparser.o: ../../../pikotools/src/utf8/utf8_stream.h config.h misc.h postmultiparser.o: ../../../pikotools/src/utf8/utf8_stream.h
postmultiparser.o: winix_const.h ../../../pikotools/src/convert/convert.h postmultiparser.o: ../../../winix/winixd/models/item.h
postmultiparser.o: ../../../pikotools/src/convert/inttostr.h postmultiparser.o: ../../../winix/winixd/models/winixmodel.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: ../../../morm/src/model.h postmultiparser.o: ../../../morm/src/model.h
postmultiparser.o: ../../../morm/src/modelconnector.h postmultiparser.o: ../../../morm/src/modelconnector.h
postmultiparser.o: ../../../morm/src/clearer.h ../../../morm/src/ft.h postmultiparser.o: ../../../morm/src/clearer.h ../../../morm/src/ft.h
postmultiparser.o: ../../../morm/src/dbconnector.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/queryresult.h
postmultiparser.o: ../../../morm/src/flatconnector.h postmultiparser.o: ../../../morm/src/flatconnector.h
postmultiparser.o: ../../../morm/src/dbexpression.h postmultiparser.o: ../../../morm/src/dbexpression.h
postmultiparser.o: ../../../morm/src/baseexpression.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/modelenv.h ../../../morm/src/modeldata.h
postmultiparser.o: ../../../morm/src/cursorhelper.h postmultiparser.o: ../../../morm/src/cursorhelper.h
postmultiparser.o: ../../../morm/src/finderhelper.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: ../../../morm/src/modelcontainerwrapper.h
postmultiparser.o: ../../../pikotools/src/convert/text.h postmultiparser.o: ../../../pikotools/src/convert/text.h
postmultiparser.o: ../../../morm/src/flatexpression.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/finder.h ../../../morm/src/cursor.h
postmultiparser.o: ../../../morm/src/jsonexpression.h postmultiparser.o: ../../../morm/src/jsonexpression.h
postmultiparser.o: ../../../morm/src/postgresqlexpression.h postmultiparser.o: ../../../morm/src/postgresqlexpression.h
postmultiparser.o: ../../../morm/src/jsonconnector.h postmultiparser.o: ../../../morm/src/jsonconnector.h
postmultiparser.o: ../../../morm/src/postgresqlconnector.h postmultiparser.o: ../../../morm/src/postgresqlconnector.h
postmultiparser.o: ../../../morm/src/postgresqlqueryresult.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: log.h logmanipulators.h ../../../pikotools/src/log/log.h
rebus.o: ../../../pikotools/src/textstream/textstream.h rebus.o: ../../../pikotools/src/textstream/textstream.h
rebus.o: ../../../pikotools/src/textstream/stream.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/postgresqlexpression.h
rebus.o: ../../../morm/src/jsonconnector.h rebus.o: ../../../morm/src/jsonconnector.h
rebus.o: ../../../morm/src/postgresqlconnector.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: requesttypes.h winix_const.h
rebus.o: ../../../pikotools/src/convert/convert.h rebus.o: ../../../pikotools/src/convert/convert.h
rebus.o: ../../../pikotools/src/convert/inttostr.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/jsonconnector.h
request.o: ../../../morm/src/postgresqlconnector.h request.o: ../../../morm/src/postgresqlconnector.h
request.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
request.o: ../../../pikotools/src/convert/patternreplacer.h request.o: ../../../pikotools/src/convert/patternreplacer.h
request.o: ../../../pikotools/src/convert/strtoint.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/cur.h
request.o: ../../../winix/winixd/core/sessionmanager.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: ../../../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 run.o: run.h winixbase.h
session.o: session.h error.h ../../../winix/winixd/models/user.h session.o: session.h error.h ../../../winix/winixd/models/user.h
session.o: ../../../morm/src/model.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/jsonconnector.h
session.o: ../../../morm/src/postgresqlconnector.h session.o: ../../../morm/src/postgresqlconnector.h
session.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
session.o: ../../../pikotools/src/convert/patternreplacer.h session.o: ../../../pikotools/src/convert/patternreplacer.h
session.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
sessioncontainer.o: ../../../morm/src/postgresqlconnector.h sessioncontainer.o: ../../../morm/src/postgresqlconnector.h
sessioncontainer.o: ../../../morm/src/postgresqlqueryresult.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/log.h
sessioncontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessioncontainer.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
sessioncontainer.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
sessionmanager.o: ../../../morm/src/postgresqlconnector.h sessionmanager.o: ../../../morm/src/postgresqlconnector.h
sessionmanager.o: ../../../morm/src/postgresqlqueryresult.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/log.h
sessionmanager.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessionmanager.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
sessionmanager.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
sessionparser.o: ../../../morm/src/postgresqlconnector.h sessionparser.o: ../../../morm/src/postgresqlconnector.h
sessionparser.o: ../../../morm/src/postgresqlqueryresult.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/log.h
sessionparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h sessionparser.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
sessionparser.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
slog.o: ../../../morm/src/postgresqlconnector.h slog.o: ../../../morm/src/postgresqlconnector.h
slog.o: ../../../morm/src/postgresqlqueryresult.h slog.o: ../../../morm/src/postgresqlqueryresult.h
slog.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h slog.o: ../../../morm/src/transaction.h ../../../winix/winixd/core/filelog.h
slog.o: ../../../pikotools/src/convert/patternreplacer.h slog.o: lock.h synchro.h ../../../pikotools/src/convert/patternreplacer.h
slog.o: ../../../pikotools/src/convert/strtoint.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/text.h misc.h winix_const.h
slog.o: ../../../pikotools/src/convert/convert.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/jsonconnector.h
system.o: ../../../morm/src/postgresqlconnector.h system.o: ../../../morm/src/postgresqlconnector.h
system.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h plugin.h pluginmsg.h
system.o: plugindata.h winixbase.h dirs.h dircontainer.h system.o: plugindata.h winixbase.h dirs.h dircontainer.h
system.o: ../../../winix/winixd/models/item.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/jsonconnector.h
threadmanager.o: ../../../morm/src/postgresqlconnector.h threadmanager.o: ../../../morm/src/postgresqlconnector.h
threadmanager.o: ../../../morm/src/postgresqlqueryresult.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/log.h
threadmanager.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h threadmanager.o: ../../../winix/winixd/core/filelog.h lock.h plugin.h
threadmanager.o: pluginmsg.h plugindata.h winixbase.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/jsonconnector.h
timezones.o: ../../../morm/src/postgresqlconnector.h timezones.o: ../../../morm/src/postgresqlconnector.h
timezones.o: ../../../morm/src/postgresqlqueryresult.h timezones.o: ../../../morm/src/postgresqlqueryresult.h
timezones.o: ../../../morm/src/transaction.h
users.o: users.h ../../../winix/winixd/models/user.h users.o: users.h ../../../winix/winixd/models/user.h
users.o: ../../../morm/src/model.h users.o: ../../../morm/src/model.h
users.o: ../../../pikotools/src/textstream/textstream.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/jsonconnector.h
users.o: ../../../morm/src/postgresqlconnector.h users.o: ../../../morm/src/postgresqlconnector.h
users.o: ../../../morm/src/postgresqlqueryresult.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: ../../../winix/winixd/core/filelog.h lock.h synchro.h
users.o: ../../../pikotools/src/convert/patternreplacer.h users.o: ../../../pikotools/src/convert/patternreplacer.h
users.o: ../../../pikotools/src/convert/strtoint.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/jsonconnector.h
winixmodeldeprecated.o: ../../../morm/src/postgresqlconnector.h winixmodeldeprecated.o: ../../../morm/src/postgresqlconnector.h
winixmodeldeprecated.o: ../../../morm/src/postgresqlqueryresult.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/log.h
winixmodeldeprecated.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h winixmodeldeprecated.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h
winixmodeldeprecated.o: plugin.h pluginmsg.h plugindata.h winixbase.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/jsonconnector.h
winixsystem.o: ../../../morm/src/postgresqlconnector.h winixsystem.o: ../../../morm/src/postgresqlconnector.h
winixsystem.o: ../../../morm/src/postgresqlqueryresult.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/log.h
winixsystem.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h plugin.h winixsystem.o: ../../../winix/winixd/core/filelog.h lock.h synchro.h plugin.h
winixsystem.o: pluginmsg.h plugindata.h winixbase.h winixsystem.o: pluginmsg.h plugindata.h winixbase.h

View File

@ -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 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

View File

@ -612,6 +612,7 @@ bool App::CheckAccessFromPlugins()
if( res.res_false > 0 ) if( res.res_false > 0 )
{ {
cur.request->status = WINIX_ERR_PERMISSION_DENIED; cur.request->status = WINIX_ERR_PERMISSION_DENIED;
cur.request->http_status = Header::status_403_forbidden;
log << log2 << "App: access prevented by a plugin" << logend; log << log2 << "App: access prevented by a plugin" << logend;
return false; return false;
} }
@ -621,102 +622,155 @@ return true;
void App::ProcessRequestThrow()
/*
* REFACTOR ME
*/
void App::MakeRenameMeToABetterName()
{ {
ReadRequest(); if( cur.request->function )
// 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->env_request_uri.size() <= WINIX_URL_MAX_SIZE ) 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();
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();
} }
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; log << log2 << config.log_delimiter << logend;
ProcessRequestThrow(); ProcessRequestThrow();
ModifyStatusCodeIfNeeded();
SendAnswer();
SaveSessionsIfNeeded(); SaveSessionsIfNeeded();
cur.request->RequestEnds(); cur.request->RequestEnds();
@ -784,6 +840,7 @@ void App::ClearAfterRequest()
aheader_value.clear(); aheader_value.clear();
cur.mount = system.mounts.GetEmptyMount(); cur.mount = system.mounts.GetEmptyMount();
system.mounts.pmount = cur.mount; // IMPROVE ME system.mounts.pmount will be removed 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) // send_data_buf doesn't have to be cleared and it is better to not clear it (optimizing)
model_connector.set_winix_request(nullptr); 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() void App::LogEnvironmentVariables()
@ -1052,7 +1045,7 @@ void App::ReadRequest()
LogAccess(); LogAccess();
ReadEnvHTTPVariables(); ReadEnvHTTPVariables();
ReadPostVars(); //ReadPostVars();
if( config.log_env_variables ) if( config.log_env_variables )
LogEnvironmentVariables(); LogEnvironmentVariables();
@ -1071,6 +1064,7 @@ void App::ReadRequest()
if( cur.request->using_ssl ) if( cur.request->using_ssl )
log << log3 << "App: connection secure through SSL" << logend; log << log3 << "App: connection secure through SSL" << logend;
} }
@ -1293,8 +1287,7 @@ void App::LogAccess()
} }
void App::ReadInputPostToBuffer()
void App::ReadPostJson()
{ {
char buffer[1024]; char buffer[1024];
const int buffer_len = sizeof(buffer) / sizeof(char) - 1; const int buffer_len = sizeof(buffer) / sizeof(char) - 1;
@ -1303,34 +1296,89 @@ void App::ReadPostJson()
post_buffer.clear(); post_buffer.clear();
post_buffer.reserve(1024 * 1024 * 5); // IMPROVEME add to config? post_buffer.reserve(1024 * 1024 * 5); // IMPROVEME add to config?
cur.request->is_postin_used = true;
do 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); read_len = FCGX_GetStr(buffer, buffer_len, fcgi_request.in);
if( read_len > 0 ) if( read_len > 0 )
post_buffer.append(buffer, read_len); post_buffer.write(buffer, read_len);
} }
while( read_len == buffer_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() ) if( !post_buffer.empty() )
{ {
pt::SpaceParser::Status status = space_parser.parse_json(post_buffer.c_str(), cur.request->post_in); if( config.post_json_max == 0 || post_buffer.size() <= config.post_json_max )
post_buffer.clear();
if( status != pt::SpaceParser::ok )
{ {
log << log1 << "App: cannot parse the input stream as an JSON object"; ParsePostJson();
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?)
} }
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 else
{ {
@ -1342,26 +1390,29 @@ void App::ReadPostJson()
void App::ReadPostVars() void App::ReadPostVars()
{ {
// CHECKME
// what about errors during parsing input?
if( cur.request->method == Request::post || cur.request->method == Request::delete_ ) 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()) ) 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; 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 else
if( pt::is_substr_nc(Winix::Header::application_json, cur.request->env_content_type.c_str()) ) 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(); ReadPostJson();
} }
else else
{ {
// IMPROVE ME may to check a correct content-type header? // 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; size_t i = 0;
Item * dir = system.dirs.GetDir(system.mounts.pmount->dir_id); 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); 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 // the path begins with a slash only if how_many_dirs is zero
while( *path == '/' ) while( *path == '/' )
@ -1492,12 +1543,12 @@ return true;
} }
void App::PrepareHeadersStatic() void App::PrepareSendFileHeaderForStaticMountpoint()
{ {
if( PathHasUpDir(cur.request->env_request_uri) ) if( PathHasUpDir(cur.request->env_request_uri) )
{ {
log << log1 << "App: incorrect path for a static file" << logend; log << log1 << "App: incorrect path for a static file" << logend;
PrepareHeadersForbidden(); cur.request->http_status = Header::status_403_forbidden;
return; return;
} }
@ -1507,27 +1558,27 @@ void App::PrepareHeadersStatic()
if( index >= config.static_dirs.size() ) if( index >= config.static_dirs.size() )
{ {
log << log1 << "App: static dir with index " << index << " is not defined in the config" << logend; 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; return;
} }
pt::WTextStream path; pt::WTextStream path;
path << config.static_dirs[index] << L"/"; path << config.static_dirs[index] << L"/";
if( !PrepareHeadersStaticCreateResource(path) ) if( !CreateStaticResourcePath(path) )
{ {
PrepareHeadersForbidden(); cur.request->http_status = Header::status_403_forbidden;
return; return;
} }
AddHeader(L"Status", L"200 OK");
/* /*
* FIX ME now we can send full path (apache, lighttpd) and relative path (nginx) * 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 * but this feature for mounting static content probably will be removed
*/ */
if( AddHeader(config.send_file_header, path) ) if( AddHeader(config.send_file_header, path) )
{
log << log2 << "App: sending a file from a static mountpoint: " << path << logend; log << log2 << "App: sending a file from a static mountpoint: " << path << logend;
}
} }
@ -1579,80 +1630,58 @@ void App::PrepareHeaderContentType()
void App::PrepareHeadersForbidden() void App::ModifyStatusForRedirect()
{
AddHeader(L"Status", L"403 Forbidden");
PrepareHeaderContentType();
}
void App::PrepareHeadersRedirect()
{ {
switch(cur.request->redirect_type) switch(cur.request->redirect_type)
{ {
case 300: case 300:
AddHeader(L"Status", L"300 Multiple Choices"); cur.request->http_status = Header::status_300_multiple_choices;
break; break;
case 301: case 301:
AddHeader(L"Status", L"301 Moved Permanently"); cur.request->http_status = Header::status_301_moved_permanently;
break; break;
case 302: case 302:
AddHeader(L"Status", L"302 Found"); cur.request->http_status = Header::status_302_found;
break; break;
case 307: case 307:
AddHeader(L"Status", L"307 Temporary Redirect"); cur.request->http_status = Header::status_307_temporary_redirect;
break; break;
case 303: case 303:
default: default:
AddHeader(L"Status", L"303 See Other"); cur.request->http_status = Header::status_303_see_other;
break; 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) ) if( AddHeader(config.send_file_header, cur.request->x_sendfile) )
{
log << log2 << "App: sending file: " << cur.request->x_sendfile << logend; 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 ) if( compress_encoding == 0 || compress_encoding == 1 )
{
AddHeader(L"Content-Encoding", L"deflate"); AddHeader(L"Content-Encoding", L"deflate");
}
else else
{
AddHeader(L"Content-Encoding", L"gzip"); 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<size_t>(-1) ) if( output_size != static_cast<size_t>(-1) )
{ {
pt::WTextStream buf; 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(); PrepareSessionCookie();
if( cur.request->send_as_attachment ) if( cur.request->send_as_attachment )
{
AddHeader(L"Content-Disposition", L"attachment"); AddHeader(L"Content-Disposition", L"attachment");
}
//if( !cur.request->redirect_to.empty() && !cur.request->return_json )
if( !cur.request->redirect_to.empty() ) 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 else
if( system.mounts.pmount->type == system.mounts.MountTypeStatic() ) if( system.mounts.pmount->type == system.mounts.MountTypeStatic() )
{ {
PrepareHeadersStatic(); PrepareSendFileHeaderForStaticMountpoint();
} }
else else
if( !cur.request->x_sendfile.empty() ) if( !cur.request->x_sendfile.empty() )
{ {
PrepareHeadersSendFile(); PrepareSendFileHeader();
} }
else else
{ {
PrepareHeadersNormal(header, output_size); PrepareContentLengthHeader(output_size);
} }
if( compressing ) 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( config.compression_encoding == 2 || config.compression_encoding == 20 )
{ {
if( accept_encoding_parser.AcceptGzip() ) if( accept_encoding_parser.AcceptGzip() )
@ -1833,54 +1879,53 @@ bool App::CanSendContent()
return false; 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( !cur.request->redirect_to.empty() )
{ {
// if there is a redirect and no json is requred then we do not send the content // if there is a redirect and no json is requred then we do not send the content
return false; 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 ) if( cur.request->method == Request::head )
{
return false; return false;
}
return true; return true;
} }
App::Header App::GetHTTPStatusCode() void App::ModifyStatusCodeIfNeeded()
{ {
Error status = cur.request->status; Error status = cur.request->status;
Header header = h_200;
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; case WINIX_ERR_INCORRECT_URI: // !!temporarily
log << log2 << "App: http response: 404 Not Found" << logend; 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 ) if( cur.request->use_200_status_for_not_found_and_permission_denied && (
{ cur.request->http_status == Header::status_404_not_found ||
header = h_403; cur.request->http_status == Header::status_403_forbidden
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) )
{ {
cur.request->http_status = Header::status_200_ok;
log << log3 << "App: changing the http response to: 200 OK" << logend; 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; bool compressing = false;
int compress_encoding = 0; int compress_encoding = 0;
Header header = GetHTTPStatusCode();
size_t output_size = 0; size_t output_size = 0;
SelectCompression(output.size(), compressing, compress_encoding); SelectCompression(output.size(), compressing, compress_encoding);
@ -2409,7 +2453,7 @@ void App::Send8bitOutput(BinaryPage & output)
output_size = output.size(); output_size = output.size();
} }
PrepareHeaders(compressing, compress_encoding, header, output_size); PrepareHeaders(compressing, compress_encoding, output_size);
SendHeaders(); SendHeaders();
SendCookies(); SendCookies();
FCGX_PutS("\r\n", fcgi_request.out); FCGX_PutS("\r\n", fcgi_request.out);

View File

@ -127,17 +127,10 @@ public:
private: private:
enum Header
{
h_200,
h_404,
h_403
};
PostParser post_parser; PostParser post_parser;
PostMultiParser post_multi_parser; PostMultiParser post_multi_parser;
pt::SpaceParser space_parser; pt::SpaceParser space_parser;
std::string post_buffer; pt::TextStream post_buffer;
CookieParser cookie_parser; CookieParser cookie_parser;
AcceptBaseParser accept_base_parser; AcceptBaseParser accept_base_parser;
@ -154,6 +147,7 @@ private:
//std::wstring html_filtered; //std::wstring html_filtered;
//std::string output_8bit; //std::string output_8bit;
pt::TextStream serialized_model; pt::TextStream serialized_model;
pt::WTextStream post_log_tmp_buffer;
pt::WTextStream output_tmp_filtered_stream; pt::WTextStream output_tmp_filtered_stream;
BinaryPage output_8bit; BinaryPage output_8bit;
@ -196,6 +190,8 @@ private:
bool DropPrivileges(char * user, char * group); bool DropPrivileges(char * user, char * group);
bool DropPrivileges(const char * user, uid_t uid, gid_t gid, bool additional_groups); bool DropPrivileges(const char * user, uid_t uid, gid_t gid, bool additional_groups);
bool CheckAccessFromPlugins(); bool CheckAccessFromPlugins();
void MakeRenameMeToABetterName();
bool AddRootDir();
void ProcessRequestThrow(); void ProcessRequestThrow();
void ProcessRequest(); void ProcessRequest();
void BaseUrlRedirect(int code, bool add_subdomain); void BaseUrlRedirect(int code, bool add_subdomain);
@ -205,7 +201,6 @@ private:
void CheckPostRedirect(); void CheckPostRedirect();
void UseEzcGenerator(); void UseEzcGenerator();
void AddDefaultModels(); void AddDefaultModels();
void Make();
void SaveSessionsIfNeeded(); // !! IMPROVE ME wywalic do menagera sesji?? void SaveSessionsIfNeeded(); // !! IMPROVE ME wywalic do menagera sesji??
void LogAccess(); void LogAccess();
void SendData(const BinaryPage & page, FCGX_Stream * out); void SendData(const BinaryPage & page, FCGX_Stream * out);
@ -251,6 +246,8 @@ private:
void ReadEnvHTTPVariables(); void ReadEnvHTTPVariables();
bool SaveEnvHTTPVariable(const char * env); bool SaveEnvHTTPVariable(const char * env);
void ReadEnvRemoteIP(); void ReadEnvRemoteIP();
void ReadInputPostToBuffer();
void ParsePostJson();
void ReadPostJson(); void ReadPostJson();
void ReadPostVars(); void ReadPostVars();
@ -263,7 +260,7 @@ private:
bool IsRequestedFrame(); bool IsRequestedFrame();
Header GetHTTPStatusCode(); void ModifyStatusCodeIfNeeded();
void PrepareSessionCookie(); void PrepareSessionCookie();
void SendHeaders(); void SendHeaders();
void SendCookies(); void SendCookies();
@ -271,15 +268,15 @@ private:
bool AddHeader(const std::wstring & name, const std::wstring & value); bool AddHeader(const std::wstring & name, const std::wstring & value);
bool AddHeader(const wchar_t * name, const pt::WTextStream & value); bool AddHeader(const wchar_t * name, const pt::WTextStream & value);
bool AddHeader(const std::wstring & name, const pt::WTextStream & value); bool AddHeader(const std::wstring & name, const pt::WTextStream & value);
bool PrepareHeadersStaticCreateResource(pt::WTextStream & out_path); bool CreateStaticResourcePath(pt::WTextStream & out_path);
void PrepareHeadersStatic(); void PrepareSendFileHeaderForStaticMountpoint();
void PrepareHeaderContentType(); void PrepareHeaderContentType();
void PrepareHeadersForbidden(); void ModifyStatusForRedirect();
void PrepareHeadersRedirect(); void PrepareSendFileHeader();
void PrepareHeadersSendFile(); void PrepareContentEncodingHeader(int compress_encoding);
void PrepareHeadersCompression(int compress_encoding); void PrepareContentLengthHeader(size_t output_size);
void PrepareHeadersNormal(Header header, size_t output_size); void PrepareHeaderStatus(int http_status);
void PrepareHeaders(bool compressing, int compress_encoding, Header header, size_t output_size); void PrepareHeaders(bool compressing, int compress_encoding, size_t output_size);
int SelectDeflateVersion(); int SelectDeflateVersion();
void SelectCompression(size_t source_len, bool & compression_allowed, int & compression_encoding); void SelectCompression(size_t source_len, bool & compression_allowed, int & compression_encoding);
bool CanSendContent(); bool CanSendContent();

View File

@ -72,7 +72,12 @@ void Config::ShowError(const std::wstring & config_file)
break; break;
case pt::SpaceParser::syntax_error: 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; break;
} }
} }
@ -142,9 +147,15 @@ void Config::AssignValues()
log_post_value_size = Size(L"log_post_value_size", 80); log_post_value_size = Size(L"log_post_value_size", 80);
log_env_variables = Bool(L"log_env_variables", false); log_env_variables = Bool(L"log_env_variables", false);
log_env_http_variables = Bool(L"log_env_http_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); log_http_answer_headers = Bool(L"log_http_answer_headers", false);
post_file_max = Size(L"post_file_max", 8388608); // 8 MB 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"); upload_dir = Text(L"upload_dir");
common_dir = Text(L"common_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 = Text(L"templates_index", L"index.html");
templates_index_generic = Text(L"templates_index_generic", L"index_generic.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_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); 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"); http_session_id_name = Text(L"http_session_id_name", L"session_id");

View File

@ -84,7 +84,8 @@ public:
// the log level (how much info should be inserted to logs) // the log level (how much info should be inserted to logs)
// 1 - minimum // 1 - minimum
// 2 - (default) // 2 - (default)
// 3 - maximum - all logs // 3 - more logs
// 4 - maximum - all logs
int log_level; int log_level;
// logging to stdout too // logging to stdout too
@ -130,11 +131,17 @@ public:
std::wstring log_delimiter; std::wstring log_delimiter;
// log environment variables (fastcgi environment) // log environment variables (fastcgi environment)
// default: false;
bool log_env_variables; bool log_env_variables;
// log environment http variables (only HTTP_* variables from fastcgi environment) // log environment http variables (only HTTP_* variables from fastcgi environment)
// default: false;
bool log_env_http_variables; 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 // log headers (+cookies) which are returned to the client
// this is what winix has generated -- the web server can change or add other headers // this is what winix has generated -- the web server can change or add other headers
// default: false // default: false
@ -198,6 +205,10 @@ public:
// default: index_raw.html // default: index_raw.html
std::wstring templates_index_raw; 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 // if true then only root can use 'template' winix function
// default: false // default: false
bool template_only_root_use_template_fun; bool template_only_root_use_template_fun;
@ -404,6 +415,35 @@ public:
// 0 - not used // 0 - not used
size_t post_file_max; 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 // directory for static files
std::wstring upload_dir; std::wstring upload_dir;

74
winixd/core/header.cpp Normal file
View File

@ -0,0 +1,74 @@
/*
* This file is a part of Winix
* and is distributed under the 2-Clause BSD licence.
* Author: Tomasz Sowa <t.sowa@ttmath.org>
*/
/*
* 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;
}
}
}

View File

@ -36,6 +36,7 @@
#define headerfile_winix_core_header #define headerfile_winix_core_header
#include "log.h" #include "log.h"
#include <textstream/textstream.h>
namespace Winix namespace Winix
@ -83,9 +84,63 @@ public:
static constexpr const wchar_t * text_javascript_utf8 = L"text/javascript; charset=UTF-8"; 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 class HeaderValue
{ {
public: public:

View File

@ -395,17 +395,10 @@ void PostMultiParser::ConvStr(const std::string & src, std::wstring & dst)
void PostMultiParser::AddNormalPostVar() 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(name, namew);
ConvStr(content, contentw); ConvStr(content, contentw);
bool added = InsertPostVar(*post_tab, namew, contentw); bool added = request->AddPostVar(namew, contentw);
log << log2 << "PMP: POST var, name: \"" << namew << "\""; log << log2 << "PMP: POST var, name: \"" << namew << "\"";
@ -418,7 +411,7 @@ void PostMultiParser::AddNormalPostVar()
void PostMultiParser::AddFilePostVar() 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; err = WINIX_ERR_INPUT_TOO_LARGE;
log << log1 << "PMP: more than " << WINIX_POSTTABLE_MAXSIZE << " post file variables (skipping)" << logend; 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.tmp_filename = tmp_filename;
post_file_temp.file_size = content_len; 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 << "\""; 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_; in = in_;
last = 0; last = 0;
@ -590,8 +583,7 @@ Error PostMultiParser::Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab
line_end_dos = false; line_end_dos = false;
in_buffer_ind = WINIX_POSTMULTI_INPUT_BUFFER; in_buffer_ind = WINIX_POSTMULTI_INPUT_BUFFER;
in_buffer_len = WINIX_POSTMULTI_INPUT_BUFFER; in_buffer_len = WINIX_POSTMULTI_INPUT_BUFFER;
post_tab = &post_tab_; this->request = &request;
post_file_tab = &post_file_tab_;
tmp_filename_postfix = 1; tmp_filename_postfix = 1;
ReadChar(); ReadChar();
@ -605,9 +597,8 @@ Error PostMultiParser::Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab
if( err != WINIX_ERR_OK ) if( err != WINIX_ERR_OK )
{ {
RemovePostFileTmp(*post_file_tab); RemovePostFileTmp(request.post_file_tab);
post_tab->clear(); request.post_in.clear();
post_file_tab->clear();
if( err != WINIX_ERR_INPUT_TOO_LARGE && err != WINIX_ERR_CANT_CREATE_FILE ) if( err != WINIX_ERR_INPUT_TOO_LARGE && err != WINIX_ERR_CANT_CREATE_FILE )
log << log1 << "PMP: syntax error" << logend; log << log1 << "PMP: syntax error" << logend;

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2018, Tomasz Sowa * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -39,7 +39,7 @@
#include <fcgiapp.h> #include <fcgiapp.h>
#include <fstream> #include <fstream>
#include "error.h" #include "error.h"
#include "requesttypes.h" #include "request.h"
#include "config.h" #include "config.h"
#include "misc.h" #include "misc.h"
#include "winixbase.h" #include "winixbase.h"
@ -66,7 +66,7 @@ public:
~PostMultiParser(); ~PostMultiParser();
void SetConfig(Config * pconfig); void SetConfig(Config * pconfig);
Error Parse(FCGX_Stream * in_, PostTab & post_tab_, PostFileTab & post_file_tab_); Error Parse(FCGX_Stream * in_, Request & request);
private: private:
@ -81,8 +81,7 @@ private:
size_t in_buffer_ind; size_t in_buffer_ind;
size_t in_buffer_len; size_t in_buffer_len;
PostTab * post_tab; Request * request;
PostFileTab * post_file_tab;
int last; // last read character int last; // last read character
int var_index; // used as a postfix to the same name (is auto increment) int var_index; // used as a postfix to the same name (is auto increment)
@ -148,7 +147,7 @@ std::pair<typename Container::iterator, bool> res;
if( !added ) if( !added )
{ {
key += L"_inc"; key += L"_inc";
key += Toa(var_index); pt::Toa(var_index, key, false, 10, 5);
res = container.insert( std::make_pair(key, value) ); res = container.insert( std::make_pair(key, value) );
added = res.second; added = res.second;
var_index += 1; var_index += 1;

View File

@ -38,7 +38,7 @@
#include <fcgiapp.h> #include <fcgiapp.h>
#include <string> #include <string>
#include "httpsimpleparser.h" #include "httpsimpleparser.h"
#include "requesttypes.h" #include "request.h"
#include "misc.h" #include "misc.h"
#include "utf8/utf8.h" #include "utf8/utf8.h"
#include "convert/text.h" #include "convert/text.h"
@ -52,7 +52,7 @@ namespace Winix
class PostParser : public HttpSimpleParser class PostParser : public HttpSimpleParser
{ {
FCGX_Stream * in; FCGX_Stream * in;
PostTab * post_tab; Request * request;
size_t log_value_size; size_t log_value_size;
int var_index; int var_index;
bool has_winix_post_params_msg; bool has_winix_post_params_msg;
@ -99,24 +99,10 @@ protected:
virtual void Parameter(std::wstring & name, std::wstring & value) virtual void Parameter(std::wstring & name, std::wstring & value)
{ {
bool added;
std::pair<PostTab::iterator, bool> res;
if( has_winix_post_params_msg ) if( has_winix_post_params_msg )
plugin->Call(0, WINIX_POST_PARAMS, &name, &value); plugin->Call(0, WINIX_POST_PARAMS, &name, &value);
res = post_tab->insert( std::make_pair(name, value) ); bool added = request->AddPostVar(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;
}
CreateLog(added, name, value); CreateLog(added, name, value);
} }
@ -134,10 +120,10 @@ public:
log_value_size = s; log_value_size = s;
} }
void Parse(FCGX_Stream * in_, PostTab & post_tab_) void Parse(FCGX_Stream * in, Request & request)
{ {
in = in_; this->in = in;
post_tab = &post_tab_; this->request = &request;
var_index = 1; var_index = 1;
raw_post.clear(); raw_post.clear();

View File

@ -37,6 +37,7 @@
#include "plugin.h" #include "plugin.h"
#include "misc.h" #include "misc.h"
#include "functions/functionbase.h" #include "functions/functionbase.h"
#include "templates/templates.h"
namespace Winix namespace Winix
@ -57,8 +58,12 @@ void Request::fields()
{ {
field(L"", L"dirs", dir_tab); field(L"", L"dirs", dir_tab);
field(L"", L"is_item", is_item); 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"current_dir", &Request::current_dir);
field(L"", L"last_item", &Request::last_item_wrapper); 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 ) if( function )
function->Clear(); function->Clear();
post_tab.clear();
post_file_tab.clear(); post_file_tab.clear();
cookie_tab.clear(); cookie_tab.clear();
post_in.clear(); post_in.clear();
is_postin_used = false;
method = unknown_method; method = unknown_method;
@ -148,6 +151,7 @@ void Request::Clear()
container_type = ContainerType::container_raw; container_type = ContainerType::container_raw;
status = WINIX_ERR_OK; status = WINIX_ERR_OK;
http_status = Header::status_200_ok;
browser_msie = false; browser_msie = false;
redirect_to.clear(); 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) bool Request::IsPostVar(const wchar_t * var)
{ {
PostTab::iterator p; return post_in.has_key(var);
p = post_tab.find(var);
if( p == post_tab.end() )
return false;
return true;
} }
bool Request::IsPostVar(const std::wstring & var) bool Request::IsPostVar(const std::wstring & var)
{ {
PostTab::iterator p; return post_in.has_key(var);
p = post_tab.find(var);
if( p == post_tab.end() )
return false;
return true;
} }
const std::wstring & Request::PostVar(const wchar_t * var) const std::wstring & Request::PostVar(const wchar_t * var)
{ {
PostTab::iterator p = post_tab.find(var); std::wstring * value = post_in.get_wstr(var);
if( p == post_tab.end() ) if( value )
return str_empty; return *value;
return p->second; return str_empty;
} }
const std::wstring & Request::PostVar(const std::wstring & var) const std::wstring & Request::PostVar(const std::wstring & var)
{ {
PostTab::iterator p = post_tab.find(var); return PostVar(var.c_str());
if( p == post_tab.end() )
return str_empty;
return p->second;
} }
bool Request::PostVar(const wchar_t * var, std::wstring & result) bool Request::PostVar(const wchar_t * var, std::wstring & result)
{ {
PostTab::iterator p = post_tab.find(var); std::wstring * value = post_in.get_wstr(var);
bool found = false;
if( p == post_tab.end() )
if( value )
{
result = *value;
found = true;
}
else
{ {
result.clear(); result.clear();
return false;
} }
result = p->second; return found;
return true;
} }
bool Request::PostVar(const std::wstring & var, std::wstring & result) bool Request::PostVar(const std::wstring & var, std::wstring & result)
{ {
PostTab::iterator p = post_tab.find(var); return PostVar(var.c_str(), result);
if( p == post_tab.end() )
{
result.clear();
return false;
}
result = p->second;
return true;
} }
std::wstring * Request::PostVarp(const wchar_t * var) std::wstring * Request::PostVarp(const wchar_t * var)
{ {
PostTab::iterator p = post_tab.find(var); return post_in.get_wstr(var);
if( p == post_tab.end() )
return 0;
return &p->second;
} }
std::wstring * Request::PostVarp(const std::wstring & var) std::wstring * Request::PostVarp(const std::wstring & var)
{ {
PostTab::iterator p = post_tab.find(var); return post_in.get_wstr(var.c_str());
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;
} }
@ -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) void Request::AddParam(const std::wstring & param_name, const std::wstring & param_value)
{ {
bool found = false; 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 } // namespace Winix

View File

@ -161,11 +161,9 @@ public:
!! CHECK ME may post_tab and cookie_tab should be changed to pt::Space now? !! 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? or may change the name to cookie_in? or in_cookie?
*/ */
PostTab post_tab;
PostFileTab post_file_tab; PostFileTab post_file_tab;
CookieTab cookie_tab; CookieTab cookie_tab;
pt::Space post_in; pt::Space post_in;
bool is_postin_used;// temporarily, before all post variables will be put to post_in
// input headers (without cookies) // input headers (without cookies)
// at the moment we are using FastCGI and HTTP headers are prefixed with 'HTTP_' string // at the moment we are using FastCGI and HTTP headers are prefixed with 'HTTP_' string
@ -337,9 +335,15 @@ public:
std::vector<HeaderValue> accept_languages; std::vector<HeaderValue> accept_languages;
// request status // request status
// !! CHANGE ME it'll be better to use ordinary http result codes // DEPRECATED, use http_status instead
Error status; 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 // if not empty means an address for redirecting to
// it should be url-encoded // it should be url-encoded
std::wstring redirect_to; std::wstring redirect_to;
@ -443,6 +447,9 @@ public:
void RemoveParam(const wchar_t * param_name); void RemoveParam(const wchar_t * param_name);
void RemoveParam(const std::wstring & 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 wchar_t * var);
bool IsPostVar(const std::wstring & 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 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 wchar_t * var);
std::wstring * PostVarp(const std::wstring & var); std::wstring * PostVarp(const std::wstring & var);
bool AllPostVarEmpty(); // returning true if all post vars are empty
// setting a cookie // setting a cookie
// name - cookie name (either const wchar_t, or std::wstring or pt::WTextStream) // 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 current_dir(morm::Wrapper & wrapper);
void last_item_wrapper(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) MORM_MEMBER_FIELD(Request)

View File

@ -45,12 +45,9 @@ namespace Winix
{ {
// may move to config?
// !! IMPROVE ME #define WINIX_POSTTABLE_MAXSIZE 1024
// !! narazie uzywane tylko w post multi parserze #define WINIX_POSTTABLE_VALUT_TABLE_MAXSIZE 1024
// dodac do zwyklego parsera post
#define WINIX_POSTTABLE_MAXSIZE 50
struct PostFile struct PostFile
@ -70,7 +67,6 @@ struct Param
// some global types used by Request class // some global types used by Request class
typedef std::map<std::wstring, std::wstring> PostTab;
typedef std::map<std::wstring, PostFile> PostFileTab; typedef std::map<std::wstring, PostFile> PostFileTab;
typedef std::vector<Param> ParamTab; typedef std::vector<Param> ParamTab;

View File

@ -50,7 +50,8 @@ db.o: ../../../morm/src/postgresqlexpression.h
db.o: ../../../morm/src/jsonconnector.h db.o: ../../../morm/src/jsonconnector.h
db.o: ../../../morm/src/postgresqlconnector.h db.o: ../../../morm/src/postgresqlconnector.h
db.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
db.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h db.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
db.o: ../../../winix/winixd/models/user.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/jsonconnector.h
dbbase.o: ../../../morm/src/postgresqlconnector.h dbbase.o: ../../../morm/src/postgresqlconnector.h
dbbase.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
dbbase.o: ../../../winix/winixd/core/filelog.h dbbase.o: ../../../winix/winixd/core/filelog.h
dbbase.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
dbconn.o: ../../../morm/src/postgresqlconnector.h dbconn.o: ../../../morm/src/postgresqlconnector.h
dbconn.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
dbconn.o: ../../../winix/winixd/core/filelog.h dbconn.o: ../../../winix/winixd/core/filelog.h
dbconn.o: ../../../winix/winixd/core/lock.h dbconn.o: ../../../winix/winixd/core/lock.h

View File

@ -55,7 +55,7 @@ account.o: ../../../morm/src/postgresqlexpression.h
account.o: ../../../morm/src/jsonconnector.h account.o: ../../../morm/src/jsonconnector.h
account.o: ../../../morm/src/postgresqlconnector.h account.o: ../../../morm/src/postgresqlconnector.h
account.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
account.o: ../../../winix/winixd/core/filelog.h account.o: ../../../winix/winixd/core/filelog.h
account.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
adduser.o: ../../../morm/src/postgresqlconnector.h adduser.o: ../../../morm/src/postgresqlconnector.h
adduser.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
adduser.o: ../../../winix/winixd/core/filelog.h adduser.o: ../../../winix/winixd/core/filelog.h
adduser.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
cat.o: ../../../morm/src/postgresqlconnector.h cat.o: ../../../morm/src/postgresqlconnector.h
cat.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
cat.o: ../../../winix/winixd/core/synchro.h cat.o: ../../../winix/winixd/core/synchro.h
cat.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.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/jsonconnector.h
chmod.o: ../../../morm/src/postgresqlconnector.h chmod.o: ../../../morm/src/postgresqlconnector.h
chmod.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
chmod.o: ../../../winix/winixd/core/filelog.h chmod.o: ../../../winix/winixd/core/filelog.h
chmod.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
chown.o: ../../../morm/src/postgresqlconnector.h chown.o: ../../../morm/src/postgresqlconnector.h
chown.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
chown.o: ../../../winix/winixd/core/filelog.h chown.o: ../../../winix/winixd/core/filelog.h
chown.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
ckeditor.o: ../../../morm/src/postgresqlconnector.h ckeditor.o: ../../../morm/src/postgresqlconnector.h
ckeditor.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
ckeditor.o: ../../../winix/winixd/core/filelog.h ckeditor.o: ../../../winix/winixd/core/filelog.h
ckeditor.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
cp.o: ../../../morm/src/postgresqlconnector.h cp.o: ../../../morm/src/postgresqlconnector.h
cp.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
cp.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h cp.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
cp.o: ../../../winix/winixd/models/user.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/jsonconnector.h
default.o: ../../../morm/src/postgresqlconnector.h default.o: ../../../morm/src/postgresqlconnector.h
default.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
default.o: ../../../winix/winixd/core/filelog.h default.o: ../../../winix/winixd/core/filelog.h
default.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
download.o: ../../../morm/src/postgresqlconnector.h download.o: ../../../morm/src/postgresqlconnector.h
download.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
download.o: ../../../winix/winixd/core/filelog.h download.o: ../../../winix/winixd/core/filelog.h
download.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
emacs.o: ../../../morm/src/postgresqlconnector.h emacs.o: ../../../morm/src/postgresqlconnector.h
emacs.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
emacs.o: ../../../winix/winixd/core/filelog.h emacs.o: ../../../winix/winixd/core/filelog.h
emacs.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
env.o: ../../../morm/src/postgresqlconnector.h env.o: ../../../morm/src/postgresqlconnector.h
env.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
env.o: ../../../winix/winixd/core/synchro.h env.o: ../../../winix/winixd/core/synchro.h
env.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.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/jsonconnector.h
functionbase.o: ../../../morm/src/postgresqlconnector.h functionbase.o: ../../../morm/src/postgresqlconnector.h
functionbase.o: ../../../morm/src/postgresqlqueryresult.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/log.h
functionbase.o: ../../../winix/winixd/core/synchro.h functionbase.o: ../../../winix/winixd/core/synchro.h
functionbase.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
functionparser.o: ../../../morm/src/postgresqlconnector.h functionparser.o: ../../../morm/src/postgresqlconnector.h
functionparser.o: ../../../morm/src/postgresqlqueryresult.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/log.h
functionparser.o: ../../../winix/winixd/core/synchro.h functionparser.o: ../../../winix/winixd/core/synchro.h
functionparser.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
functions.o: ../../../morm/src/postgresqlconnector.h functions.o: ../../../morm/src/postgresqlconnector.h
functions.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
functions.o: ../../../winix/winixd/core/filelog.h functions.o: ../../../winix/winixd/core/filelog.h
functions.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
imgcrop.o: ../../../morm/src/postgresqlconnector.h imgcrop.o: ../../../morm/src/postgresqlconnector.h
imgcrop.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
imgcrop.o: ../../../winix/winixd/core/filelog.h imgcrop.o: ../../../winix/winixd/core/filelog.h
imgcrop.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
ipban.o: ../../../morm/src/postgresqlconnector.h ipban.o: ../../../morm/src/postgresqlconnector.h
ipban.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
ipban.o: ../../../winix/winixd/core/filelog.h ipban.o: ../../../winix/winixd/core/filelog.h
ipban.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
last.o: ../../../morm/src/postgresqlconnector.h last.o: ../../../morm/src/postgresqlconnector.h
last.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
last.o: ../../../winix/winixd/core/lock.h last.o: ../../../winix/winixd/core/lock.h
last.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
ln.o: ../../../morm/src/postgresqlconnector.h ln.o: ../../../morm/src/postgresqlconnector.h
ln.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
ln.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h ln.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
ln.o: ../../../winix/winixd/models/user.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/jsonconnector.h
locale.o: ../../../morm/src/postgresqlconnector.h locale.o: ../../../morm/src/postgresqlconnector.h
locale.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
locale.o: ../../../winix/winixd/core/filelog.h locale.o: ../../../winix/winixd/core/filelog.h
locale.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
login.o: ../../../morm/src/postgresqlconnector.h login.o: ../../../morm/src/postgresqlconnector.h
login.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
login.o: ../../../winix/winixd/core/filelog.h login.o: ../../../winix/winixd/core/filelog.h
login.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
logout.o: ../../../morm/src/postgresqlconnector.h logout.o: ../../../morm/src/postgresqlconnector.h
logout.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
logout.o: ../../../winix/winixd/core/filelog.h logout.o: ../../../winix/winixd/core/filelog.h
logout.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
ls.o: ../../../morm/src/postgresqlconnector.h ls.o: ../../../morm/src/postgresqlconnector.h
ls.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
ls.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h ls.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
ls.o: ../../../winix/winixd/models/user.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/jsonconnector.h
man.o: ../../../morm/src/postgresqlconnector.h man.o: ../../../morm/src/postgresqlconnector.h
man.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../winix/winixd/core/synchro.h
man.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.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/jsonconnector.h
meta.o: ../../../morm/src/postgresqlconnector.h meta.o: ../../../morm/src/postgresqlconnector.h
meta.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
meta.o: ../../../winix/winixd/core/lock.h meta.o: ../../../winix/winixd/core/lock.h
meta.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
mkdir.o: ../../../morm/src/postgresqlconnector.h mkdir.o: ../../../morm/src/postgresqlconnector.h
mkdir.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
mkdir.o: ../../../winix/winixd/core/filelog.h mkdir.o: ../../../winix/winixd/core/filelog.h
mkdir.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
mount.o: ../../../morm/src/postgresqlconnector.h mount.o: ../../../morm/src/postgresqlconnector.h
mount.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
mount.o: ../../../winix/winixd/core/filelog.h mount.o: ../../../winix/winixd/core/filelog.h
mount.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
mv.o: ../../../morm/src/postgresqlconnector.h mv.o: ../../../morm/src/postgresqlconnector.h
mv.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
mv.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h mv.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
mv.o: ../../../winix/winixd/models/user.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/jsonconnector.h
nicedit.o: ../../../morm/src/postgresqlconnector.h nicedit.o: ../../../morm/src/postgresqlconnector.h
nicedit.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
nicedit.o: ../../../winix/winixd/core/filelog.h nicedit.o: ../../../winix/winixd/core/filelog.h
nicedit.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
node.o: ../../../morm/src/postgresqlconnector.h node.o: ../../../morm/src/postgresqlconnector.h
node.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
node.o: ../../../winix/winixd/core/lock.h node.o: ../../../winix/winixd/core/lock.h
node.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
passwd.o: ../../../morm/src/postgresqlconnector.h passwd.o: ../../../morm/src/postgresqlconnector.h
passwd.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
passwd.o: ../../../winix/winixd/core/filelog.h passwd.o: ../../../winix/winixd/core/filelog.h
passwd.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
priv.o: ../../../morm/src/postgresqlconnector.h priv.o: ../../../morm/src/postgresqlconnector.h
priv.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
priv.o: ../../../winix/winixd/core/lock.h priv.o: ../../../winix/winixd/core/lock.h
priv.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
privchanger.o: ../../../morm/src/postgresqlconnector.h privchanger.o: ../../../morm/src/postgresqlconnector.h
privchanger.o: ../../../morm/src/postgresqlqueryresult.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/log.h
privchanger.o: ../../../winix/winixd/core/synchro.h privchanger.o: ../../../winix/winixd/core/synchro.h
privchanger.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
pw.o: ../../../morm/src/postgresqlconnector.h pw.o: ../../../morm/src/postgresqlconnector.h
pw.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
pw.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h pw.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
pw.o: ../../../winix/winixd/models/user.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/jsonconnector.h
reload.o: ../../../morm/src/postgresqlconnector.h reload.o: ../../../morm/src/postgresqlconnector.h
reload.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
reload.o: ../../../winix/winixd/core/filelog.h reload.o: ../../../winix/winixd/core/filelog.h
reload.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
rm.o: ../../../morm/src/postgresqlconnector.h rm.o: ../../../morm/src/postgresqlconnector.h
rm.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
rm.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h rm.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/error.h
rm.o: ../../../winix/winixd/models/user.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/jsonconnector.h
rmuser.o: ../../../morm/src/postgresqlconnector.h rmuser.o: ../../../morm/src/postgresqlconnector.h
rmuser.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
rmuser.o: ../../../winix/winixd/core/filelog.h rmuser.o: ../../../winix/winixd/core/filelog.h
rmuser.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
run.o: ../../../morm/src/postgresqlconnector.h run.o: ../../../morm/src/postgresqlconnector.h
run.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
run.o: ../../../winix/winixd/core/synchro.h run.o: ../../../winix/winixd/core/synchro.h
run.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.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/jsonconnector.h
sort.o: ../../../morm/src/postgresqlconnector.h sort.o: ../../../morm/src/postgresqlconnector.h
sort.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
sort.o: ../../../winix/winixd/core/lock.h sort.o: ../../../winix/winixd/core/lock.h
sort.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
specialdefault.o: ../../../morm/src/postgresqlconnector.h specialdefault.o: ../../../morm/src/postgresqlconnector.h
specialdefault.o: ../../../morm/src/postgresqlqueryresult.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/log.h
specialdefault.o: ../../../winix/winixd/core/synchro.h specialdefault.o: ../../../winix/winixd/core/synchro.h
specialdefault.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
stat.o: ../../../morm/src/postgresqlconnector.h stat.o: ../../../morm/src/postgresqlconnector.h
stat.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
stat.o: ../../../winix/winixd/core/lock.h stat.o: ../../../winix/winixd/core/lock.h
stat.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
subject.o: ../../../morm/src/postgresqlconnector.h subject.o: ../../../morm/src/postgresqlconnector.h
subject.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
subject.o: ../../../winix/winixd/core/filelog.h subject.o: ../../../winix/winixd/core/filelog.h
subject.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
template.o: ../../../morm/src/postgresqlconnector.h template.o: ../../../morm/src/postgresqlconnector.h
template.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
template.o: ../../../winix/winixd/core/filelog.h template.o: ../../../winix/winixd/core/filelog.h
template.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
timezone.o: ../../../morm/src/postgresqlconnector.h timezone.o: ../../../morm/src/postgresqlconnector.h
timezone.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
timezone.o: ../../../winix/winixd/core/filelog.h timezone.o: ../../../winix/winixd/core/filelog.h
timezone.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
tinymce.o: ../../../morm/src/postgresqlconnector.h tinymce.o: ../../../morm/src/postgresqlconnector.h
tinymce.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
tinymce.o: ../../../winix/winixd/core/filelog.h tinymce.o: ../../../winix/winixd/core/filelog.h
tinymce.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
uname.o: ../../../morm/src/postgresqlconnector.h uname.o: ../../../morm/src/postgresqlconnector.h
uname.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
uname.o: ../../../winix/winixd/core/filelog.h uname.o: ../../../winix/winixd/core/filelog.h
uname.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
upload.o: ../../../morm/src/postgresqlconnector.h upload.o: ../../../morm/src/postgresqlconnector.h
upload.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
upload.o: ../../../winix/winixd/core/filelog.h upload.o: ../../../winix/winixd/core/filelog.h
upload.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
uptime.o: ../../../morm/src/postgresqlconnector.h uptime.o: ../../../morm/src/postgresqlconnector.h
uptime.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
uptime.o: ../../../winix/winixd/core/filelog.h uptime.o: ../../../winix/winixd/core/filelog.h
uptime.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
vim.o: ../../../morm/src/postgresqlconnector.h vim.o: ../../../morm/src/postgresqlconnector.h
vim.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
vim.o: ../../../winix/winixd/core/synchro.h vim.o: ../../../winix/winixd/core/synchro.h
vim.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.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/jsonconnector.h
who.o: ../../../morm/src/postgresqlconnector.h who.o: ../../../morm/src/postgresqlconnector.h
who.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../winix/winixd/core/synchro.h
who.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h who.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/models/user.h

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2021, Tomasz Sowa * Copyright (c) 2010-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -48,6 +48,10 @@ FunctionBase::FunctionBase()
need_ssl = false; need_ssl = false;
need_session = true; need_session = true;
register_default_models = 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.user_id = -1;
fun.item_content.group_id = -1; fun.item_content.group_id = -1;

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2021, Tomasz Sowa * Copyright (c) 2010-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -90,6 +90,22 @@ public:
// default: true // default: true
bool register_default_models; 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 Init();
virtual void Finish(); virtual void Finish();

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -34,7 +34,6 @@
#include "functionparser.h" #include "functionparser.h"
#include "core/log.h" #include "core/log.h"
#include "core/error.h"
#include "functions.h" #include "functions.h"
#include "utf8/utf8.h" #include "utf8/utf8.h"
#include "models/item.h" #include "models/item.h"
@ -51,30 +50,64 @@ FunctionParser::FunctionParser()
} }
bool FunctionParser::Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem) bool FunctionParser::Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem)
{ {
db = pdb; db = pdb;
cur = pcur; cur = pcur;
system = psystem; system = psystem;
functions = pfunctions; functions = pfunctions;
last_dir = 0; last_dir = nullptr;
path = cur->request->env_request_uri.c_str(); path = cur->request->env_request_uri.c_str();
status = true;
ParseDirsItemFunction(); // IMPROVEME put WINIX_URL_MAX_SIZE to the config
ParseParams(); if( cur->request->env_request_uri.size() <= WINIX_URL_MAX_SIZE )
ParseAnchor(); {
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() ) std::vector<Item*>::iterator i = cur->request->dir_tab.begin();
return;
for( ; i != cur->request->dir_tab.end() ; ++i)
{
LogDir(*i);
}
}
bool FunctionParser::ParseDirsItemFunction()
{
ReadName(); ReadName();
while( IsDir() ) while( IsDir() )
@ -84,43 +117,46 @@ void FunctionParser::ParseDirsItemFunction()
} }
if( name.empty() ) if( name.empty() )
return; {
/*
* no more names to analyze, return now
*/
return true;
}
if( CheckAddFunction() ) 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(); log << log3 << "FP: unknown function: " << name << logend;
cur->request->http_status = Header::status_404_not_found;
if( !cur->request->function ) status = false;
{ return false;
log << log3 << "FP: unknown function: " << name << logend;
cur->request->status = WINIX_ERR_NO_ITEM;
}
} }
} }
}
return true;
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;
} }
@ -133,7 +169,7 @@ bool FunctionParser::IsDir()
last_dir = system->dirs.GetDir(name, last_dir->id); 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 // cur->request->dir_tab has at least one element
long parent_id = cur->request->dir_tab.back()->id; long parent_id = cur->request->dir_tab.back()->id;
morm::Finder<Item> finder(model_connector); morm::Finder<Item> finder(model_connector);
finder. finder.
@ -151,26 +186,20 @@ bool FunctionParser::CheckAddItem()
eq(L"url", name). eq(L"url", name).
get(cur->request->item); get(cur->request->item);
//Error status = db->GetItem(parent_id, name, cur->request->item);
//if( status == WINIX_ERR_OK )
if( cur->request->item.found() ) if( cur->request->item.found() )
{ {
log << log3 << "FP: Item: id: " << cur->request->item.id << ", url: " << cur->request->item.url << logend; log << log3 << "FP: Item: id: " << cur->request->item.id << ", url: " << cur->request->item.url << logend;
cur->request->last_item = &cur->request->item; cur->request->last_item = &cur->request->item;
cur->request->is_item = true; cur->request->is_item = true;
return true;
} }
else else
{ {
log << log3 << "FP: No Item: url: " << name << logend; log << log3 << "FP: No Item: url: " << name << logend;
cur->request->status = WINIX_ERR_NO_ITEM; cur->request->http_status = Header::status_404_not_found;
return false; status = false;
} }
log << log1 << "FP: db error" << logend; return cur->request->item.found();
cur->request->status = WINIX_ERR_INTERNAL_ERROR;
return false;
} }
@ -185,20 +214,25 @@ bool FunctionParser::CheckAddFunction()
return true; 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() void FunctionParser::AddDir()
{ {
cur->request->dir_tab.push_back( last_dir ); cur->request->dir_tab.push_back(last_dir);
log << log3 << "FP: Directory: "; LogDir(last_dir);
if( last_dir->parent_id == -1 )
log << "(root)" << logend;
else
log << last_dir->url << logend;
cur->request->last_item = cur->request->dir_tab.back(); cur->request->last_item = cur->request->dir_tab.back();
} }
@ -281,25 +315,25 @@ void FunctionParser::AddParam()
void FunctionParser::ParseAnchor() void FunctionParser::ParseAnchor()
{ {
if( *path == 0 ) if( *path == '#' )
return;
if( *path != '#' )
{ {
cur->request->status = WINIX_ERR_INCORRECT_URI; path += 1;
return; name_ascii.clear();
}
path += 1; while( *path )
name_ascii.clear(); name_ascii += GetChar();
while( *path )
name_ascii += GetChar();
pt::utf8_to_wide(name_ascii, cur->request->anchor);
if( !cur->request->anchor.empty() ) pt::utf8_to_wide(name_ascii, cur->request->anchor);
log << log3 << "FP: anchor: " << cur->request->anchor << logend;
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) int FunctionParser::FromHex(int c)
{ {
if( c>='0' && c<='9' ) if( c>='0' && c<='9' )
{
return c - '0'; return c - '0';
}
else else
if( c>='a' && c<='f' ) if( c>='a' && c<='f' )
{
return c - 'a' + 10; return c - 'a' + 10;
}
else else
if( c>='A' && c<='F' ) if( c>='A' && c<='F' )
{
return c - 'A' + 10; return c - 'A' + 10;
}
else 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)); c = (FromHex(*(path+1)) << 4) + FromHex(*(path+2));
if( c == 0 ) if( c == 0 && status )
cur->request->status = WINIX_ERR_INCORRECT_URI; {
cur->request->http_status = Header::status_400_bad_request;
status = false;
}
path += 3; path += 3;
} }
@ -355,7 +401,7 @@ int c;
path += 1; path += 1;
} }
return c; return c;
} }

View File

@ -55,6 +55,11 @@ class FunctionParser : public WinixModelDeprecated
public: public:
FunctionParser(); 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); bool Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem);
private: private:
@ -69,17 +74,19 @@ private:
std::string name_ascii, value_ascii; std::string name_ascii, value_ascii;
Item * last_dir; Item * last_dir;
Param param; Param param;
bool status;
void SkipSlashes(); void SkipSlashes();
void ParseDirsItemFunction(); void PrintCurrentDirs();
bool ParseDirsItemFunction();
void ParseParams(); void ParseParams();
void ParseAnchor(); void ParseAnchor();
bool IsDir(); bool IsDir();
bool CheckAddItem(); bool CheckAddItem();
bool CheckAddFunction(); bool CheckAddFunction();
bool AddRootDir(); void LogDir(Item * dir);
void AddDir(); void AddDir();
void AddParam(); void AddParam();
void ParseOrdinaryParams(); void ParseOrdinaryParams();

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2021, Tomasz Sowa * Copyright (c) 2010-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * 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 ) if( now - cur->session->last_time_get >= (time_t)difference )
return; return;
if( cur->request->AllPostVarEmpty() )
return;
cur->session->spam_score += 1; cur->session->spam_score += 1;
log << log1 << "Functions: spam +1: POST after GET sent too fast" << logend; log << log1 << "Functions: spam +1: POST after GET sent too fast" << logend;
} }

View File

@ -150,7 +150,7 @@ public:
void Init(); void Init();
void Finish(); void Finish();
void Parse(); bool Parse();
size_t FunctionsSize(); size_t FunctionsSize();
Iterator Begin(); Iterator Begin();

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2013-2021, Tomasz Sowa * Copyright (c) 2013-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -78,6 +78,7 @@ void ImgCrop::GetDirContent()
eq(L"type", static_cast<int>(Item::file)). eq(L"type", static_cast<int>(Item::file)).
eq(L"parent_id", cur->request->dir_tab.back()->id). eq(L"parent_id", cur->request->dir_tab.back()->id).
eq(L"content", L"file_type", WINIX_ITEM_FILETYPE_IMAGE). 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(); get_vector();
//db->GetItems(cur->request->item_tab, iq); //db->GetItems(cur->request->item_tab, iq);

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * 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.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); finder.get_vector(item_tab);
} }

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2011-2021, Tomasz Sowa * Copyright (c) 2011-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -65,70 +65,29 @@ bool Sort::HasAccess()
void Sort::GetDirContent() void Sort::GetDirContent()
{ {
// iq.sel_content = false;
// iq.WhereParentId(cur->request->dir_tab.back()->id);
// db->GetItems(cur->request->item_tab, iq);
morm::Finder<Item> finder(model_connector); morm::Finder<Item> finder(model_connector);
finder. finder.
select(). select().
where(). where().
eq(L"parent_id", cur->request->dir_tab.back()->id). 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; for(Item & item : items)
}
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 ; i<len ; ++i)
item_tab[i] = i;
std::sort(item_tab.begin() , item_tab.end(), SortHelper(this));
}
void Sort::CreateItemTab2()
{
PostTab::iterator i2 = cur->request->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 )
{ {
if( pt::is_substr_nc(L"sort", i2->first.c_str()) ) if( item.id == id )
{ return &item;
sp.id = Tol(i2->first.c_str() + 4);
sp.sort_index = Toi(i2->second);
item_tab2.push_back(sp);
}
} }
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; ItemModelData item_model_data;
item_model_data.prepare_unique_url = false; item_model_data.prepare_unique_url = false;
//if( db->EditSortIndexItemById(item.id, sort_index) == WINIX_ERR_OK )
if( item.update(item_model_data, false) ) if( item.update(item_model_data, false) )
{ {
log << log2 log << log2
@ -150,42 +108,36 @@ void Sort::UpdateSortIndex(Item & item, int sort_index)
} }
void Sort::UpdateItems()
void Sort::UpdateSortIndexes()
{ {
size_t i1 = 0; if( cur->request->post_in.is_object() )
size_t i2 = 0;
while( i1 < item_tab.size() && i2 < item_tab2.size() )
{ {
long id1 = cur->request->item_tab[item_tab[i1]].id; pt::Space::ObjectType::iterator i2 = cur->request->post_in.value.value_object.begin();
long id2 = item_tab2[i2].id;
if( id1 == id2 ) for( ; i2 != cur->request->post_in.value.value_object.end() ; ++i2 )
{ {
int sort_index = item_tab2[i2].sort_index; if( i2->second->is_wstr() && pt::is_substr_nc(L"sort", i2->first.c_str()) )
Item & item = cur->request->item_tab[item_tab[i1]]; {
long id = Tol(i2->first.c_str() + 4);
int sort_index = Toi(*i2->second->get_wstr());
if( system->HasWriteAccess(item) ) Item * pitem = FindItem(id);
UpdateSortIndex(item, sort_index);
++i1; if( pitem )
++i2; {
} if( system->HasWriteAccess(*pitem) )
else {
if( id1 < id2 ) UpdateSortIndex(*pitem, sort_index);
{ }
++i1; }
} }
else
{
++i2;
} }
} }
} }
void Sort::MakePost() void Sort::MakePost()
{ {
if( cur->request->is_item ) if( cur->request->is_item )
@ -196,13 +148,10 @@ void Sort::MakePost()
else else
{ {
GetDirContent(); GetDirContent();
CreateItemTab(); UpdateItems();
CreateItemTab2();
UpdateSortIndexes();
} }
plugin->Call(WINIX_DIR_CONTENT_SORTED, cur->request->dir_tab.back()); plugin->Call(WINIX_DIR_CONTENT_SORTED, cur->request->dir_tab.back());
system->RedirectToLastItem(); system->RedirectToLastItem();
} }

View File

@ -57,34 +57,12 @@ public:
private: private:
//DbItemQuery iq; std::vector<Item> items;
std::vector<size_t> item_tab; // indexes to cur->request->item_tab
struct SortPair
{
long id;
int sort_index;
};
std::vector<SortPair> 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);
void GetDirContent(); void GetDirContent();
void CreateItemTab(); Item * FindItem(long id);
void CreateItemTab2();
void UpdateSortIndex(Item & item, int sort_index); void UpdateSortIndex(Item & item, int sort_index);
void UpdateSortIndexes(); void UpdateItems();
}; };

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * 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") ) 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<Item> finder(model_connector); morm::Finder<Item> finder(model_connector);
finder. finder.
@ -449,10 +444,9 @@ void Upload::MakeGet()
eq(L"parent_id", cur->request->dir_tab.back()->id). eq(L"parent_id", cur->request->dir_tab.back()->id).
eq(L"type", static_cast<int>(Item::file)). eq(L"type", static_cast<int>(Item::file)).
neq(L"content", L"file_type", WINIX_ITEM_FILETYPE_NONE). 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); get_vector(cur->request->item_tab);
//db->GetItems(cur->request->item_tab, query);
CreateAnswer(); CreateAnswer();
} }
} }

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2021, Tomasz Sowa * Copyright (c) 2010-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -60,7 +60,6 @@ public:
private: private:
std::wstring path; std::wstring path;
//DbItemQuery query;
bool is_jquery_upload; bool is_jquery_upload;
magic_t magic_cookie; magic_t magic_cookie;
pt::Space files; pt::Space files;

View File

@ -1,7 +0,0 @@
<div class="winix">
<h1>{error_404}</h1>
<p>{error_404_msg}</p>
</div>

View File

@ -1,8 +1,8 @@
<div class="winix"> <div class="winix">
<h1>{access_denied}</h1> <h1>[request.http_status_error_title]</h1>
<p>{access_denied_msg} <p>[request.http_status_error_description]
[if ipban_is_current_ip_banned] [if ipban_is_current_ip_banned]
<br> <br>

View File

@ -67,18 +67,31 @@ added_by = Added by
last_modified = Last modified last_modified = Last modified
by = by by = by
error_404 = Error 404 http_error_200_title = "OK"
error_404_msg = We are sory but there is no such a page in our service. 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 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 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 download = download
cat_image_url = Image url cat_image_url = Image url

View File

@ -70,8 +70,23 @@ added_by = Dodane przez
last_modified = ostatnio modyfikowany last_modified = ostatnio modyfikowany
by = przez by = przez
error_404 = Błąd 404 http_error_200_title = "OK"
error_404_msg = Przykro nam ale podanej strony nie ma w naszym serwisie. 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 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. was_errors = Przepraszamy ale wystąpiły problemy z wykonaniem tej operacji.
error_code = Kod błędu 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 download = Ściągnij plik

View File

@ -62,8 +62,9 @@ item.o: ../../../morm/src/jsonexpression.h
item.o: ../../../morm/src/postgresqlexpression.h item.o: ../../../morm/src/postgresqlexpression.h
item.o: ../../../morm/src/jsonconnector.h item.o: ../../../morm/src/jsonconnector.h
item.o: ../../../morm/src/postgresqlconnector.h item.o: ../../../morm/src/postgresqlconnector.h
item.o: ../../../morm/src/postgresqlqueryresult.h winixmodelconnector.h item.o: ../../../morm/src/postgresqlqueryresult.h
item.o: itemcontent.h ../../../winix/winixd/templates/htmltextstream.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/misc.h
item.o: ../../../winix/winixd/templates/localefilter.h item.o: ../../../winix/winixd/templates/localefilter.h
item.o: ../../../winix/winixd/templates/locale.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/jsonconnector.h
itemcontent.o: ../../../morm/src/postgresqlconnector.h itemcontent.o: ../../../morm/src/postgresqlconnector.h
itemcontent.o: ../../../morm/src/postgresqlqueryresult.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/htmltextstream.h
itemcontent.o: ../../../winix/winixd/templates/misc.h itemcontent.o: ../../../winix/winixd/templates/misc.h
itemcontent.o: ../../../winix/winixd/templates/localefilter.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/jsonconnector.h
migration.o: ../../../morm/src/postgresqlconnector.h migration.o: ../../../morm/src/postgresqlconnector.h
migration.o: ../../../morm/src/postgresqlqueryresult.h migration.o: ../../../morm/src/postgresqlqueryresult.h
migration.o: ../../../morm/src/transaction.h
user.o: user.h ../../../morm/src/model.h user.o: user.h ../../../morm/src/model.h
user.o: ../../../pikotools/src/textstream/textstream.h user.o: ../../../pikotools/src/textstream/textstream.h
user.o: ../../../pikotools/src/textstream/stream.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/jsonconnector.h
user.o: ../../../morm/src/postgresqlconnector.h user.o: ../../../morm/src/postgresqlconnector.h
user.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
user.o: ../../../winix/winixd/core/lock.h user.o: ../../../winix/winixd/core/lock.h
user.o: ../../../winix/winixd/core/synchro.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/postgresqlexpression.h
winixmodel.o: ../../../morm/src/jsonconnector.h winixmodel.o: ../../../morm/src/jsonconnector.h
winixmodel.o: ../../../morm/src/postgresqlconnector.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 winixmodel.o: ../../../winix/winixd/core/session.h
winixmodelconnector.o: winixmodelconnector.h winixmodelconnector.o: winixmodelconnector.h
winixmodelconnector.o: ../../../morm/src/modelconnector.h winixmodelconnector.o: ../../../morm/src/modelconnector.h

View File

@ -41,7 +41,7 @@ notify.o: ../../../morm/src/postgresqlexpression.h
notify.o: ../../../morm/src/jsonconnector.h notify.o: ../../../morm/src/jsonconnector.h
notify.o: ../../../morm/src/postgresqlconnector.h notify.o: ../../../morm/src/postgresqlconnector.h
notify.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
notify.o: ../../../winix/winixd/core/filelog.h notify.o: ../../../winix/winixd/core/filelog.h
notify.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
notifypool.o: ../../../morm/src/postgresqlconnector.h notifypool.o: ../../../morm/src/postgresqlconnector.h
notifypool.o: ../../../morm/src/postgresqlqueryresult.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/log.h
notifypool.o: ../../../winix/winixd/core/synchro.h notifypool.o: ../../../winix/winixd/core/synchro.h
notifypool.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
notifythread.o: ../../../morm/src/postgresqlconnector.h notifythread.o: ../../../morm/src/postgresqlconnector.h
notifythread.o: ../../../morm/src/postgresqlqueryresult.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/log.h
notifythread.o: ../../../winix/winixd/core/synchro.h notifythread.o: ../../../winix/winixd/core/synchro.h
notifythread.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
templatesnotify.o: ../../../morm/src/postgresqlconnector.h templatesnotify.o: ../../../morm/src/postgresqlconnector.h
templatesnotify.o: ../../../morm/src/postgresqlqueryresult.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/log.h
templatesnotify.o: ../../../winix/winixd/core/synchro.h templatesnotify.o: ../../../winix/winixd/core/synchro.h
templatesnotify.o: ../../../winix/winixd/core/filelog.h templatesnotify.o: ../../../winix/winixd/core/filelog.h

View File

@ -60,6 +60,7 @@ gallery.o: ../../../../morm/src/postgresqlexpression.h
gallery.o: ../../../../morm/src/jsonconnector.h gallery.o: ../../../../morm/src/jsonconnector.h
gallery.o: ../../../../morm/src/postgresqlconnector.h gallery.o: ../../../../morm/src/postgresqlconnector.h
gallery.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
gallery.o: ../../../../winix/winixd/core/synchro.h gallery.o: ../../../../winix/winixd/core/synchro.h
gallery.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
galleryinfo.o: ../../../../morm/src/postgresqlconnector.h galleryinfo.o: ../../../../morm/src/postgresqlconnector.h
galleryinfo.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
galleryinfo.o: ../../../../winix/winixd/core/filelog.h galleryinfo.o: ../../../../winix/winixd/core/filelog.h
galleryinfo.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/synchro.h
init.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.h templates.o: ../../../../winix/winixd/core/filelog.h

View File

@ -55,6 +55,7 @@ groupinfo.o: ../../../../morm/src/postgresqlexpression.h
groupinfo.o: ../../../../morm/src/jsonconnector.h groupinfo.o: ../../../../morm/src/jsonconnector.h
groupinfo.o: ../../../../morm/src/postgresqlconnector.h groupinfo.o: ../../../../morm/src/postgresqlconnector.h
groupinfo.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
groupinfo.o: ../../../../winix/winixd/core/synchro.h groupinfo.o: ../../../../winix/winixd/core/synchro.h
groupinfo.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
groups.o: ../../../../morm/src/postgresqlconnector.h groups.o: ../../../../morm/src/postgresqlconnector.h
groups.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
groups.o: ../../../../winix/winixd/core/synchro.h groups.o: ../../../../winix/winixd/core/synchro.h
groups.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/filelog.h
init.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.h templates.o: ../../../../winix/winixd/core/filelog.h

View File

@ -45,6 +45,7 @@ cache.o: ../../../../morm/src/postgresqlexpression.h
cache.o: ../../../../morm/src/jsonconnector.h cache.o: ../../../../morm/src/jsonconnector.h
cache.o: ../../../../morm/src/postgresqlconnector.h cache.o: ../../../../morm/src/postgresqlconnector.h
cache.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
cache.o: ../../../../winix/winixd/core/synchro.h cache.o: ../../../../winix/winixd/core/synchro.h
cache.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/filelog.h
init.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.h templates.o: ../../../../winix/winixd/core/filelog.h

View File

@ -38,6 +38,7 @@ init.o: ../../../../morm/src/postgresqlexpression.h
init.o: ../../../../morm/src/jsonconnector.h init.o: ../../../../morm/src/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/request.h
init.o: ../../../../winix/winixd/core/requesttypes.h init.o: ../../../../winix/winixd/core/requesttypes.h
init.o: ../../../../winix/winixd/models/item.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/jsonconnector.h
stats.o: ../../../../morm/src/postgresqlconnector.h stats.o: ../../../../morm/src/postgresqlconnector.h
stats.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
stats.o: ../../../../winix/winixd/core/filelog.h stats.o: ../../../../winix/winixd/core/filelog.h
stats.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.h templates.o: ../../../../winix/winixd/core/filelog.h
templates.o: ../../../../winix/winixd/core/lock.h templates.o: ../../../../winix/winixd/core/lock.h

View File

@ -64,6 +64,7 @@ createthread.o: ../../../../morm/src/postgresqlexpression.h
createthread.o: ../../../../morm/src/jsonconnector.h createthread.o: ../../../../morm/src/jsonconnector.h
createthread.o: ../../../../morm/src/postgresqlconnector.h createthread.o: ../../../../morm/src/postgresqlconnector.h
createthread.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
createthread.o: ../../../../winix/winixd/core/synchro.h createthread.o: ../../../../winix/winixd/core/synchro.h
createthread.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
funthread.o: ../../../../morm/src/postgresqlconnector.h funthread.o: ../../../../morm/src/postgresqlconnector.h
funthread.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
funthread.o: ../../../../winix/winixd/core/synchro.h funthread.o: ../../../../winix/winixd/core/synchro.h
funthread.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
init.o: ../../../../winix/winixd/core/filelog.h init.o: ../../../../winix/winixd/core/filelog.h
init.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
reply.o: ../../../../morm/src/postgresqlconnector.h reply.o: ../../../../morm/src/postgresqlconnector.h
reply.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
reply.o: ../../../../winix/winixd/core/synchro.h reply.o: ../../../../winix/winixd/core/synchro.h
reply.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
showthreads.o: ../../../../morm/src/postgresqlconnector.h showthreads.o: ../../../../morm/src/postgresqlconnector.h
showthreads.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
showthreads.o: ../../../../winix/winixd/core/synchro.h showthreads.o: ../../../../winix/winixd/core/synchro.h
showthreads.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
tdb.o: ../../../../morm/src/postgresqlconnector.h tdb.o: ../../../../morm/src/postgresqlconnector.h
tdb.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
tdb.o: ../../../../winix/winixd/core/filelog.h tdb.o: ../../../../winix/winixd/core/filelog.h
tdb.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
thread.o: ../../../../morm/src/postgresqlconnector.h thread.o: ../../../../morm/src/postgresqlconnector.h
thread.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
thread.o: ../../../../winix/winixd/core/filelog.h thread.o: ../../../../winix/winixd/core/filelog.h
thread.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
threadinfo.o: ../../../../morm/src/postgresqlconnector.h threadinfo.o: ../../../../morm/src/postgresqlconnector.h
threadinfo.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
threadinfo.o: ../../../../winix/winixd/core/synchro.h threadinfo.o: ../../../../winix/winixd/core/synchro.h
threadinfo.o: ../../../../winix/winixd/core/filelog.h threadinfo.o: ../../../../winix/winixd/core/filelog.h

View File

@ -62,6 +62,7 @@ createticket.o: ../../../../morm/src/postgresqlexpression.h
createticket.o: ../../../../morm/src/jsonconnector.h createticket.o: ../../../../morm/src/jsonconnector.h
createticket.o: ../../../../morm/src/postgresqlconnector.h createticket.o: ../../../../morm/src/postgresqlconnector.h
createticket.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
createticket.o: ../../../../winix/winixd/core/synchro.h createticket.o: ../../../../winix/winixd/core/synchro.h
createticket.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
editticket.o: ../../../../morm/src/postgresqlconnector.h editticket.o: ../../../../morm/src/postgresqlconnector.h
editticket.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
editticket.o: ../../../../winix/winixd/core/synchro.h editticket.o: ../../../../winix/winixd/core/synchro.h
editticket.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
funticket.o: ../../../../morm/src/postgresqlconnector.h funticket.o: ../../../../morm/src/postgresqlconnector.h
funticket.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
funticket.o: ../../../../winix/winixd/core/synchro.h funticket.o: ../../../../winix/winixd/core/synchro.h
funticket.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
init.o: ../../../../morm/src/postgresqlconnector.h init.o: ../../../../morm/src/postgresqlconnector.h
init.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
init.o: ../../../../winix/winixd/core/synchro.h init.o: ../../../../winix/winixd/core/synchro.h
init.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
showtickets.o: ../../../../morm/src/postgresqlconnector.h showtickets.o: ../../../../morm/src/postgresqlconnector.h
showtickets.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
showtickets.o: ../../../../winix/winixd/core/synchro.h showtickets.o: ../../../../winix/winixd/core/synchro.h
showtickets.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
tdb.o: ../../../../morm/src/postgresqlconnector.h tdb.o: ../../../../morm/src/postgresqlconnector.h
tdb.o: ../../../../morm/src/postgresqlqueryresult.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/synchro.h
tdb.o: ../../../../winix/winixd/core/filelog.h tdb.o: ../../../../winix/winixd/core/filelog.h
tdb.o: ../../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../../morm/src/postgresqlconnector.h templates.o: ../../../../morm/src/postgresqlconnector.h
templates.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
templates.o: ../../../../winix/winixd/core/synchro.h templates.o: ../../../../winix/winixd/core/synchro.h
templates.o: ../../../../winix/winixd/core/filelog.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/jsonconnector.h
ticketinfo.o: ../../../../morm/src/postgresqlconnector.h ticketinfo.o: ../../../../morm/src/postgresqlconnector.h
ticketinfo.o: ../../../../morm/src/postgresqlqueryresult.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/log.h
ticketinfo.o: ../../../../winix/winixd/core/synchro.h ticketinfo.o: ../../../../winix/winixd/core/synchro.h
ticketinfo.o: ../../../../winix/winixd/core/filelog.h ticketinfo.o: ../../../../winix/winixd/core/filelog.h

View File

@ -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) void TicketInfo::ReadTicketParams(Ticket & ticket, bool clear_ticket, pt::Space & meta, bool & file_was_deleted)
{ {
PostTab::iterator i;
PostFileTab::iterator i2; PostFileTab::iterator i2;
file_was_deleted = false; file_was_deleted = false;
@ -587,23 +586,34 @@ PostFileTab::iterator i2;
// !! IMPROVE ME move me somewhere // !! IMPROVE ME move me somewhere
std::wstring ticket_delete_prefix = L"ticketdeletefile_"; 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? // WARNING
// (this is a plugin variable) // code not tested when changed to using post_in
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);
}
if( pt::is_substr(ticket_delete_prefix, i->first) ) pt::Space::ObjectType::iterator i = cur->request->post_in.value.value_object.begin();
{
long file_id = Tol(i->first.c_str() + ticket_delete_prefix.size());
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;
}
} }
} }
} }

View File

@ -48,7 +48,7 @@ adduser.o: ../../../morm/src/postgresqlexpression.h
adduser.o: ../../../morm/src/jsonconnector.h adduser.o: ../../../morm/src/jsonconnector.h
adduser.o: ../../../morm/src/postgresqlconnector.h adduser.o: ../../../morm/src/postgresqlconnector.h
adduser.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
adduser.o: ../../../winix/winixd/core/filelog.h adduser.o: ../../../winix/winixd/core/filelog.h
adduser.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
antispam.o: ../../../morm/src/postgresqlconnector.h antispam.o: ../../../morm/src/postgresqlconnector.h
antispam.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
antispam.o: ../../../winix/winixd/core/filelog.h antispam.o: ../../../winix/winixd/core/filelog.h
antispam.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
changepatterns.o: ../../../morm/src/postgresqlconnector.h changepatterns.o: ../../../morm/src/postgresqlconnector.h
changepatterns.o: ../../../morm/src/postgresqlqueryresult.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/log.h
changepatterns.o: ../../../winix/winixd/core/synchro.h changepatterns.o: ../../../winix/winixd/core/synchro.h
changepatterns.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
config.o: ../../../morm/src/postgresqlconnector.h config.o: ../../../morm/src/postgresqlconnector.h
config.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
config.o: ../../../winix/winixd/core/filelog.h config.o: ../../../winix/winixd/core/filelog.h
config.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
currentdate.o: ../../../morm/src/postgresqlconnector.h currentdate.o: ../../../morm/src/postgresqlconnector.h
currentdate.o: ../../../morm/src/postgresqlqueryresult.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/log.h
currentdate.o: ../../../winix/winixd/core/synchro.h currentdate.o: ../../../winix/winixd/core/synchro.h
currentdate.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
dir.o: ../../../morm/src/postgresqlconnector.h dir.o: ../../../morm/src/postgresqlconnector.h
dir.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
dir.o: ../../../winix/winixd/core/synchro.h dir.o: ../../../winix/winixd/core/synchro.h
dir.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
doc.o: ../../../morm/src/postgresqlconnector.h doc.o: ../../../morm/src/postgresqlconnector.h
doc.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
doc.o: ../../../winix/winixd/core/synchro.h doc.o: ../../../winix/winixd/core/synchro.h
doc.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
filters.o: ../../../morm/src/postgresqlconnector.h filters.o: ../../../morm/src/postgresqlconnector.h
filters.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
filters.o: ../../../winix/winixd/core/filelog.h filters.o: ../../../winix/winixd/core/filelog.h
filters.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
generic.o: ../../../morm/src/postgresqlconnector.h generic.o: ../../../morm/src/postgresqlconnector.h
generic.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
generic.o: ../../../winix/winixd/core/filelog.h generic.o: ../../../winix/winixd/core/filelog.h
generic.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
htmltextstream.o: ../../../morm/src/postgresqlconnector.h htmltextstream.o: ../../../morm/src/postgresqlconnector.h
htmltextstream.o: ../../../morm/src/postgresqlqueryresult.h htmltextstream.o: ../../../morm/src/postgresqlqueryresult.h
htmltextstream.o: ../../../morm/src/transaction.h
indexpatterns.o: indexpatterns.h ../../../ezc/src/ezc.h indexpatterns.o: indexpatterns.h ../../../ezc/src/ezc.h
indexpatterns.o: ../../../ezc/src/generator.h ../../../ezc/src/blocks.h indexpatterns.o: ../../../ezc/src/generator.h ../../../ezc/src/blocks.h
indexpatterns.o: ../../../ezc/src/item.h ../../../ezc/src/cache.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/jsonconnector.h
indexpatterns.o: ../../../morm/src/postgresqlconnector.h indexpatterns.o: ../../../morm/src/postgresqlconnector.h
indexpatterns.o: ../../../morm/src/postgresqlqueryresult.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/log.h
indexpatterns.o: ../../../winix/winixd/core/synchro.h indexpatterns.o: ../../../winix/winixd/core/synchro.h
indexpatterns.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
insert.o: ../../../morm/src/postgresqlconnector.h insert.o: ../../../morm/src/postgresqlconnector.h
insert.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
insert.o: ../../../winix/winixd/core/filelog.h insert.o: ../../../winix/winixd/core/filelog.h
insert.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
ipban.o: ../../../morm/src/postgresqlconnector.h ipban.o: ../../../morm/src/postgresqlconnector.h
ipban.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
ipban.o: ../../../winix/winixd/core/filelog.h ipban.o: ../../../winix/winixd/core/filelog.h
ipban.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
last.o: ../../../morm/src/postgresqlconnector.h last.o: ../../../morm/src/postgresqlconnector.h
last.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
last.o: ../../../winix/winixd/core/lock.h last.o: ../../../winix/winixd/core/lock.h
last.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
locale.o: ../../../morm/src/postgresqlconnector.h locale.o: ../../../morm/src/postgresqlconnector.h
locale.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
locale.o: ../../../winix/winixd/core/filelog.h locale.o: ../../../winix/winixd/core/filelog.h
locale.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
localefilter.o: ../../../morm/src/postgresqlconnector.h localefilter.o: ../../../morm/src/postgresqlconnector.h
localefilter.o: ../../../morm/src/postgresqlqueryresult.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/log.h
localefilter.o: ../../../winix/winixd/core/synchro.h localefilter.o: ../../../winix/winixd/core/synchro.h
localefilter.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
login.o: ../../../morm/src/postgresqlconnector.h login.o: ../../../morm/src/postgresqlconnector.h
login.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
login.o: ../../../winix/winixd/core/filelog.h login.o: ../../../winix/winixd/core/filelog.h
login.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
ls.o: ../../../morm/src/postgresqlconnector.h ls.o: ../../../morm/src/postgresqlconnector.h
ls.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
ls.o: ../../../winix/winixd/core/synchro.h ls.o: ../../../winix/winixd/core/synchro.h
ls.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
man.o: ../../../morm/src/postgresqlconnector.h man.o: ../../../morm/src/postgresqlconnector.h
man.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
man.o: ../../../winix/winixd/core/synchro.h man.o: ../../../winix/winixd/core/synchro.h
man.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
misc.o: ../../../morm/src/postgresqlconnector.h misc.o: ../../../morm/src/postgresqlconnector.h
misc.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
misc.o: ../../../winix/winixd/core/lock.h misc.o: ../../../winix/winixd/core/lock.h
misc.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
mount.o: ../../../morm/src/postgresqlconnector.h mount.o: ../../../morm/src/postgresqlconnector.h
mount.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
mount.o: ../../../winix/winixd/core/filelog.h mount.o: ../../../winix/winixd/core/filelog.h
mount.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
passwd.o: ../../../morm/src/postgresqlconnector.h passwd.o: ../../../morm/src/postgresqlconnector.h
passwd.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
passwd.o: ../../../winix/winixd/core/filelog.h passwd.o: ../../../winix/winixd/core/filelog.h
passwd.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
patterncacher.o: ../../../morm/src/postgresqlconnector.h patterncacher.o: ../../../morm/src/postgresqlconnector.h
patterncacher.o: ../../../morm/src/postgresqlqueryresult.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/log.h
patterncacher.o: ../../../winix/winixd/core/synchro.h patterncacher.o: ../../../winix/winixd/core/synchro.h
patterncacher.o: ../../../winix/winixd/core/filelog.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/jsonconnector.h
patterns.o: ../../../morm/src/postgresqlconnector.h patterns.o: ../../../morm/src/postgresqlconnector.h
patterns.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
patterns.o: ../../../winix/winixd/core/filelog.h patterns.o: ../../../winix/winixd/core/filelog.h
patterns.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
priv.o: ../../../morm/src/postgresqlconnector.h priv.o: ../../../morm/src/postgresqlconnector.h
priv.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
priv.o: ../../../winix/winixd/core/lock.h priv.o: ../../../winix/winixd/core/lock.h
priv.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
rebus.o: ../../../morm/src/postgresqlconnector.h rebus.o: ../../../morm/src/postgresqlconnector.h
rebus.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
rebus.o: ../../../winix/winixd/core/filelog.h rebus.o: ../../../winix/winixd/core/filelog.h
rebus.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
server.o: ../../../morm/src/postgresqlconnector.h server.o: ../../../morm/src/postgresqlconnector.h
server.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
server.o: ../../../winix/winixd/core/filelog.h server.o: ../../../winix/winixd/core/filelog.h
server.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
slog.o: ../../../morm/src/postgresqlconnector.h slog.o: ../../../morm/src/postgresqlconnector.h
slog.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
slog.o: ../../../winix/winixd/core/lock.h slog.o: ../../../winix/winixd/core/lock.h
slog.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
stat.o: ../../../morm/src/postgresqlconnector.h stat.o: ../../../morm/src/postgresqlconnector.h
stat.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
stat.o: ../../../winix/winixd/core/lock.h stat.o: ../../../winix/winixd/core/lock.h
stat.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
sys.o: ../../../morm/src/postgresqlconnector.h sys.o: ../../../morm/src/postgresqlconnector.h
sys.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
sys.o: ../../../winix/winixd/core/synchro.h sys.o: ../../../winix/winixd/core/synchro.h
sys.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
template.o: ../../../morm/src/postgresqlconnector.h template.o: ../../../morm/src/postgresqlconnector.h
template.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
template.o: ../../../winix/winixd/core/filelog.h template.o: ../../../winix/winixd/core/filelog.h
template.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
templates.o: ../../../morm/src/postgresqlconnector.h templates.o: ../../../morm/src/postgresqlconnector.h
templates.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
templates.o: ../../../winix/winixd/core/filelog.h templates.o: ../../../winix/winixd/core/filelog.h
templates.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
upload.o: ../../../morm/src/postgresqlconnector.h upload.o: ../../../morm/src/postgresqlconnector.h
upload.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
upload.o: ../../../winix/winixd/core/filelog.h upload.o: ../../../winix/winixd/core/filelog.h
upload.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
uptime.o: ../../../morm/src/postgresqlconnector.h uptime.o: ../../../morm/src/postgresqlconnector.h
uptime.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
uptime.o: ../../../winix/winixd/core/filelog.h uptime.o: ../../../winix/winixd/core/filelog.h
uptime.o: ../../../winix/winixd/core/lock.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/jsonconnector.h
user.o: ../../../morm/src/postgresqlconnector.h user.o: ../../../morm/src/postgresqlconnector.h
user.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h
user.o: ../../../winix/winixd/core/lock.h user.o: ../../../winix/winixd/core/lock.h
user.o: ../../../winix/winixd/core/synchro.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/jsonconnector.h
who.o: ../../../morm/src/postgresqlconnector.h who.o: ../../../morm/src/postgresqlconnector.h
who.o: ../../../morm/src/postgresqlqueryresult.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/filelog.h ../../../winix/winixd/core/lock.h
who.o: ../../../winix/winixd/core/synchro.h who.o: ../../../winix/winixd/core/synchro.h
who.o: ../../../pikotools/src/convert/patternreplacer.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/jsonconnector.h
winix.o: ../../../morm/src/postgresqlconnector.h winix.o: ../../../morm/src/postgresqlconnector.h
winix.o: ../../../morm/src/postgresqlqueryresult.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/synchro.h
winix.o: ../../../winix/winixd/core/filelog.h winix.o: ../../../winix/winixd/core/filelog.h
winix.o: ../../../winix/winixd/core/lock.h winix.o: ../../../winix/winixd/core/lock.h

View File

@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2022, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -41,15 +41,14 @@
namespace Winix namespace Winix
{ {
// !! IMPROVE ME moze zamienic na EzcFunctions // !! IMPROVE ME may change to EzcFunctions?
namespace TemplatesFunctions namespace TemplatesFunctions
{ {
size_t pat_index; // main index pattern 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_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_index_raw; // pattern for a raw content (raw content without html, body markup)
size_t pat_err_404; // 404 error size_t pat_request_status; // error.html
size_t pat_err_per_denied; // permission denied error
Patterns patterns; // all html patterns Patterns patterns; // all html patterns
IndexPatterns index_patterns; // patterns for main index templates (those from mountpoint) IndexPatterns index_patterns; // patterns for main index templates (those from mountpoint)
@ -106,7 +105,7 @@ Ezc::Pattern * p;
if( !cur->request->function ) 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; 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' case Header::status_200_ok:
//p = &pat_err_item_required; pattern = GetPatternForFunction();
//break; 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());
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: default:
p = GetPatternForFunction(); pattern = patterns.Get(pat_request_status, locale.GetCurLang());
break;
}
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); InitGenerator(content_gen, cur->request->models);
content_gen.SetPattern(*p); content_gen.SetPattern(*pattern);
content_gen.Generate(i.out, cur->request->out_streams); content_gen.Generate(env.out, cur->request->out_streams);
} }
else else
{ {
@ -853,8 +822,7 @@ using namespace TemplatesFunctions;
pat_index = patterns.Add(config->templates_index); pat_index = patterns.Add(config->templates_index);
pat_index_generic = patterns.Add(config->templates_index_generic); pat_index_generic = patterns.Add(config->templates_index_generic);
pat_index_raw = patterns.Add(config->templates_index_raw); 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_request_status = patterns.Add(config->templates_request_status);
pat_err_per_denied = patterns.Add(L"err_per_denied.html"); // !! IMPROVE ME name to the config
ReadTemplatesForFunctions(); ReadTemplatesForFunctions();
ReadIndexTemplates(); ReadIndexTemplates();

View File

@ -69,8 +69,7 @@ namespace TemplatesFunctions
extern size_t pat_index; extern size_t pat_index;
extern size_t pat_index_generic; extern size_t pat_index_generic;
extern size_t pat_index_raw; extern size_t pat_index_raw;
extern size_t pat_err_404; extern size_t pat_request_status;
extern size_t pat_err_per_denied;
extern Patterns patterns; extern Patterns patterns;
extern IndexPatterns index_patterns; extern IndexPatterns index_patterns;

View File

@ -44,6 +44,7 @@ acceptbaseparser.o: ../../../morm/src/postgresqlexpression.h
acceptbaseparser.o: ../../../morm/src/jsonconnector.h acceptbaseparser.o: ../../../morm/src/jsonconnector.h
acceptbaseparser.o: ../../../morm/src/postgresqlconnector.h acceptbaseparser.o: ../../../morm/src/postgresqlconnector.h
acceptbaseparser.o: ../../../morm/src/postgresqlqueryresult.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/convert.h
acceptbaseparser.o: ../../../pikotools/src/convert/inttostr.h acceptbaseparser.o: ../../../pikotools/src/convert/inttostr.h
acceptbaseparser.o: ../../../pikotools/src/convert/patternreplacer.h acceptbaseparser.o: ../../../pikotools/src/convert/patternreplacer.h