WIP: remove the old database abstraction layer

remove such classes:
- DbBase
- DbConn
- DbTextStream
- Db

while here:
- remove: TextStream, SLog, TexTextStream
This commit is contained in:
Tomasz Sowa 2024-06-22 18:03:54 +02:00
parent 5d457f3d4b
commit 6aa100f12c
Signed by: tomasz.sowa
GPG Key ID: 662CC1438638588B
138 changed files with 6658 additions and 12402 deletions

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2023, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -103,13 +103,7 @@ App::App()
cur.session = nullptr;
cur.mount = nullptr;
db_conn.set_dependency(&winix_base);
db.set_dependency(&winix_base);
db.SetConn(db_conn);
plugin.set_dependency(&winix_model);
plugin.SetDb(&db);
plugin.SetCur(&cur);
plugin.SetSystem(&system);
plugin.SetFunctions(&functions);
@ -128,7 +122,6 @@ App::App()
//functions.SetConfig(&config);
functions.SetCur(&cur);
functions.SetDb(&db);
functions.SetSystem(&system);
functions.SetTemplates(&templates);
//functions.SetSynchro(&synchro);
@ -138,7 +131,6 @@ App::App()
system.set_dependency(&winix_model);
//system.SetConfig(&config);
system.SetCur(&cur);
system.SetDb(&db);
//system.SetSynchro(&synchro);
system.SetFunctions(&functions);
system.SetSessionManager(&session_manager);
@ -146,7 +138,6 @@ App::App()
templates.set_dependency(&winix_request);
templates.SetConfig(&config);
templates.SetCur(&cur);
templates.SetDb(&db);
templates.SetSystem(&system);
templates.SetFunctions(&functions);
templates.SetSessionManager(&session_manager);
@ -174,38 +165,10 @@ Log & App::GetMainLog()
}
bool App::TranslateFCGInames(char * sock, char * sock_user, char * sock_group)
{
if( !wide_to_utf8(config.fcgi_socket, sock, WINIX_OS_PATH_SIZE) )
{
log << log1 << "App: I cannot correctly change FastCGI socket path to utf-8 string" << logend;
return false;
}
if( config.fcgi_set_socket_owner )
{
if( !wide_to_utf8(config.fcgi_socket_user, sock_user, WINIX_OS_USERNAME_SIZE) )
{
log << log1 << "App: I cannot correctly change FastCGI user name to utf-8 string" << logend;
return false;
}
if( !wide_to_utf8(config.fcgi_socket_group, sock_group, WINIX_OS_USERNAME_SIZE) )
{
log << log1 << "App: I cannot correctly change FastCGI group name to utf-8 string" << logend;
return false;
}
}
return true;
}
/*
* chmod and chown of the socket are set before winix drops privileges
*/
bool App::InitFCGIChmodChownSocket(char * sock, char * sock_user, char * sock_group)
bool App::InitFCGIChmodChownSocket(const char * sock)
{
if( config.fcgi_set_socket_chmod )
{
@ -218,7 +181,11 @@ bool App::InitFCGIChmodChownSocket(char * sock, char * sock_user, char * sock_gr
if( config.fcgi_set_socket_owner )
{
passwd * pw = getpwnam(sock_user);
std::string sock_user, sock_group;
pt::wide_to_utf8(config.fcgi_socket_user, sock_user);
pt::wide_to_utf8(config.fcgi_socket_group, sock_group);
passwd * pw = getpwnam(sock_user.c_str());
if( !pw )
{
@ -226,7 +193,7 @@ bool App::InitFCGIChmodChownSocket(char * sock, char * sock_user, char * sock_gr
return false;
}
group * gr = getgrnam(sock_group);
group * gr = getgrnam(sock_group.c_str());
if( !gr )
{
@ -248,17 +215,13 @@ return true;
bool App::InitFCGI()
{
char sock[WINIX_OS_PATH_SIZE];
char sock_user[WINIX_OS_USERNAME_SIZE];
char sock_group[WINIX_OS_USERNAME_SIZE];
std::string sock, sock_user, sock_group;
pt::wide_to_utf8(config.fcgi_socket, sock);
if( !TranslateFCGInames(sock, sock_user, sock_group) )
return false;
unlink(sock);
unlink(sock.c_str());
log << log3 << "App: trying to create a fcgi connection socket: " << sock << logend << logsave;
fcgi_socket = FCGX_OpenSocket(sock, config.fcgi_socket_listen);
fcgi_socket = FCGX_OpenSocket(sock.c_str(), config.fcgi_socket_listen);
/*
* WARNING:
* when there is a problem with creating the socket then FCGX_OpenSocket will call exit()
@ -273,16 +236,16 @@ char sock_group[WINIX_OS_USERNAME_SIZE];
log << log3 << "App: FastCGI socket number: " << fcgi_socket << logend;
if( !InitFCGIChmodChownSocket(sock, sock_user, sock_group) )
if( !InitFCGIChmodChownSocket(sock.c_str()) )
return false;
if( FCGX_Init() != 0 )
{
log << log1 << "App: FCGX_Init fails" << logend;
log << log1 << "App: FCGX_Init has failed" << logend;
return false;
}
return true;
return true;
}
@ -385,7 +348,6 @@ bool App::Init()
model_connector.set_winix_mounts(&system.mounts);
model_connector.set_winix_users(&system.users);
model_connector.set_winix_groups(&system.groups);
model_connector.set_winix_session_logger(nullptr); // will be set for each request
model_connector.set_winix_session(nullptr); // will be set for each request
model_connector.set_winix_locale(&TemplatesFunctions::locale);
model_connector.set_winix_session_manager(&session_manager);
@ -400,17 +362,6 @@ bool App::Init()
if( !TryToMakeDatabaseMigration() )
return false;
// will be removed
if( !config.db_conn_string.empty() )
db_conn.SetConnParam(config.db_conn_string);
else
db_conn.SetConnParam(config.db_host, config.db_hostaddr, config.db_port, config.db_database, config.db_user, config.db_pass);
if( !db_conn.WaitForConnection(config.db_startup_connection_max_attempts, config.db_startup_connection_attempt_delay) )
return false;
db.LogQueries(config.log_db_query);
compress.set_dependency(&winix_base);
compress.Init();
@ -827,7 +778,6 @@ void App::ClearAfterRequest()
model_connector.set_winix_request(nullptr);
model_connector.set_winix_session(nullptr);
model_connector.set_winix_session_logger(nullptr);
log << logendrequest;
}
@ -1580,10 +1530,10 @@ void App::LogUserGroups()
bool App::DropPrivileges(char * user, char * group)
{
if( !wide_to_utf8(config.user, user, WINIX_OS_USERNAME_SIZE) )
if( !pt::wide_to_utf8(config.user, (char*)user, WINIX_OS_USERNAME_SIZE) )
return false;
if( !wide_to_utf8(config.group, group, WINIX_OS_USERNAME_SIZE) )
if( !pt::wide_to_utf8(config.group, (char*)group, WINIX_OS_USERNAME_SIZE) )
return false;
return true;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2023, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -46,7 +46,6 @@
#include <fcgiapp.h>
#include "sessionmanager.h"
#include "db/db.h"
#include "functions/functions.h"
#include "templates/templates.h"
#include "compress.h"
@ -99,10 +98,6 @@ public:
// users sessions
SessionManager session_manager;
// database (DEPRACATED)
Db db;
DbConn db_conn;
// an unique id for each request
size_t request_id;
@ -170,8 +165,7 @@ private:
bool AddSystemThreads();
bool TranslateFCGInames(char * sock, char * sock_user, char * sock_group);
bool InitFCGIChmodChownSocket(char * sock, char * sock_user, char * sock_group);
bool InitFCGIChmodChownSocket(const char * sock);
bool DropPrivileges(char * user, char * group);
bool DropPrivileges(const char * user, uid_t uid, gid_t gid, bool additional_groups);
bool CheckAccessFromPlugins();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -42,13 +42,6 @@ namespace Winix
{
void Dirs::SetDb(Db * pdb)
{
db = pdb;
}
void Dirs::SetCur(Cur * pcur)
{
cur = pcur;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -40,7 +40,6 @@
#include <map>
#include <string>
#include "dircontainer.h"
#include "db/db.h"
#include "request.h"
#include "models/item.h"
#include "winixmodeldeprecated.h"
@ -65,7 +64,6 @@ public:
void ReadDirs();
void SetCur(Cur * pcur);
void SetDb(Db * pdb);
void SetNotify(Notify * pnotify);
void set_dependency(WinixModelDeprecated * winix_model);
@ -130,7 +128,6 @@ public:
private:
Cur * cur;
Db * db;
Notify * notify;
DirContainer dir_tab;

View File

@ -59,7 +59,7 @@ void Groups::Clear()
}
void Groups::ReadGroups(Db * db)
void Groups::ReadGroups()
{
Clear();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -39,7 +39,6 @@
#include "models/group.h"
#include "ugcontainer.h"
#include "db/db.h"
#include "winixmodeldeprecated.h"
@ -64,7 +63,7 @@ public:
Groups();
void Clear();
void ReadGroups(Db * db);
void ReadGroups();
Group * GetGroup(long group_id);
Group * GetGroup(const std::wstring & name);
long GetGroupId(const std::wstring & name);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@
#include <ctime>
#include "image.h"
#include "core/misc.h"
#include "utf8/utf8.h"
#include "system.h"
#include "lock.h"
@ -44,14 +45,6 @@ namespace Winix
{
void Image::SetDb(Db * pdb)
{
db = pdb;
}
void Image::SetConfig(Config * pconfig)
{
config = pconfig;
@ -292,19 +285,13 @@ bool end;
void Image::Add(const std::wstring & in, TextStream<std::string> & out)
{
pt::wide_to_utf8(in, add_tempa);
out << add_tempa;
}
void Image::EscapePath(const std::string & path, TextStream<std::string> & out, bool clear_stream)
void Image::EscapePath(const std::string & path, pt::TextStream & out, bool clear_stream)
{
if( clear_stream )
out.Clear();
out.clear();
out << '"';
@ -402,9 +389,9 @@ bool Image::CreateInputFileName()
// second thread (objects locked)
void Image::CreateTmpFileName()
{
stream_tmp_path.Clear();
stream_tmp_path.clear();
stream_tmp_path << config->upload_dir << L"/tmp/image_" << std::time(0);
pt::wide_to_utf8(stream_tmp_path.Str(), tmp_file_name);
stream_tmp_path.to_str(tmp_file_name);
}
@ -427,8 +414,8 @@ bool Image::CreateCommand()
if( !CreateInputFileName() )
return false;
command.Clear();
Add(config->convert_cmd, command);
command.clear();
command << config->convert_cmd;
command << " ";
EscapePath(input_file_name, command, false);
@ -472,7 +459,7 @@ bool Image::CreateCommand()
command << " ";
EscapePath(tmp_file_name, command, false);
log << log4 << "Image: running: " << command.Str() << logend;
log << log4 << "Image: running: " << command << logend;
return true;
@ -553,7 +540,10 @@ void Image::SaveImage()
if( system->MakeFilePath(file_work, dst_path, thumb, true, config->upload_dirs_chmod, config->upload_group_int) )
{
if( RenameFile(stream_tmp_path.Str(), dst_path) )
std::wstring from;
stream_tmp_path.to_str(from);
if( RenameFile(from, dst_path) )
{
// it doesn't matter for us if there is an error when chmod/chown on a file
// the admin (root) will correct it
@ -562,10 +552,10 @@ void Image::SaveImage()
}
else
{
log << log1 << "Image: cannot move a temporary file: " << stream_tmp_path.Str()
log << log1 << "Image: cannot move a temporary file: " << stream_tmp_path
<< ", to: " << dst_path << logend;
Winix::RemoveFile(stream_tmp_path.Str());
Winix::RemoveFile(from);
}
}
else
@ -582,7 +572,9 @@ void Image::CreateImage()
{
if( CreateCommand() )
{
int res = std::system(command.CStr());
std::string command_str;
command.to_str(command_str);
int res = std::system(command_str.c_str());
if( res == 0 )
{

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2021, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -38,8 +38,6 @@
#include <string>
#include <list>
#include "basethread.h"
#include "textstream.h"
#include "db/db.h"
#include "core/config.h"
#include "models/item.h"
@ -116,7 +114,6 @@ public:
};
void SetDb(Db * pdb);
void SetConfig(Config * pconfig);
void SetSystem(System * psystem);
@ -147,7 +144,6 @@ public:
private:
Db * db;
Config * config;
System * system;
@ -185,9 +181,8 @@ private:
// only for second thread
ImageItem item_work;
std::wstring src_path, dst_path;
TextStream<std::string> command;
TextStream<std::wstring> stream_tmp_path;
std::string add_tempa;
pt::TextStream command;
pt::WTextStream stream_tmp_path;
std::string input_file_name;
std::string tmp_file_name;
Item file_work;
@ -200,9 +195,8 @@ private:
void SaveImage();
void CreateImage();
void SelectAspect(size_t cx, size_t cy);
void EscapePath(const std::string & path, TextStream<std::string> & out, bool clear_stream = true);
void EscapePath(const std::string & path, pt::TextStream & out, bool clear_stream = true);
void CheckParam(ImageItem & item);
void Add(const std::wstring & in, TextStream<std::string> & out);
void ImageSavedCorrectly();
};

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2018, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -74,12 +74,6 @@ enum LogManipulators
*/
logendrequest,
/*
* it would be better to the SLog to have its own manipulators
*/
loginfo,
logerror,
logwarning
};

View File

@ -855,7 +855,7 @@ bool IsFile(const wchar_t * file)
struct stat sb;
char file_name[WINIX_OS_PATH_SIZE];
if( !wide_to_utf8(file, file_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(file, (char*)file_name, WINIX_OS_PATH_SIZE) )
return false;
return (stat(file_name, &sb) == 0);
@ -877,7 +877,7 @@ char dir_name[WINIX_OS_PATH_SIZE];
if( !IsFile(dir) )
{
if( !wide_to_utf8(dir, dir_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(dir, (char*)dir_name, WINIX_OS_PATH_SIZE) )
return false;
if( mkdir(dir_name, 0777) < 0 )
@ -953,7 +953,7 @@ struct group * result;
char group_name[WINIX_OS_USERNAME_SIZE];
char buffer[512];
if( !wide_to_utf8(name, group_name, WINIX_OS_USERNAME_SIZE) )
if( !pt::wide_to_utf8(name, (char*)group_name, WINIX_OS_USERNAME_SIZE) )
return -1;
if( getgrnam_r(group_name, &gr, buffer, sizeof(buffer)/sizeof(char), &result) != 0 )
@ -989,7 +989,7 @@ bool SetPriv(const wchar_t * name, int priv, int group)
{
char file_name[WINIX_OS_PATH_SIZE];
if( !wide_to_utf8(name, file_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(name, (char*)file_name, WINIX_OS_PATH_SIZE) )
return false;
if( chmod(file_name, priv) < 0 )
@ -1047,10 +1047,10 @@ char src_name[WINIX_OS_PATH_SIZE];
char dst_name[WINIX_OS_PATH_SIZE];
FILE * in, * out;
if( !wide_to_utf8(src, src_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(src, (char*)src_name, WINIX_OS_PATH_SIZE) )
return false;
if( !wide_to_utf8(dst, dst_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(dst, (char*)dst_name, WINIX_OS_PATH_SIZE) )
return false;
in = fopen(src_name, "rb");
@ -1092,7 +1092,7 @@ bool RemoveFile(const wchar_t * file)
{
char file_name[WINIX_OS_PATH_SIZE];
if( !wide_to_utf8(file, file_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(file, (char*)file_name, WINIX_OS_PATH_SIZE) )
return false;
return unlink(file_name) == 0;
@ -1111,10 +1111,10 @@ bool RenameFile(const wchar_t * from, const wchar_t * to)
char from_name[WINIX_OS_PATH_SIZE];
char to_name[WINIX_OS_PATH_SIZE];
if( !wide_to_utf8(from, from_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(from, (char*)from_name, WINIX_OS_PATH_SIZE) )
return false;
if( !wide_to_utf8(to, to_name, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(to, (char*)to_name, WINIX_OS_PATH_SIZE) )
return false;
return rename(from_name, to_name) == 0;
@ -1138,7 +1138,7 @@ std::ifstream get_file_content;
if( clear_content )
content.clear();
if( !wide_to_utf8(file_path, file, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(file_path, (char*)file, WINIX_OS_PATH_SIZE) )
return false;
get_file_content.open(file, std::ios_base::in | std::ios_base::binary);
@ -1170,7 +1170,7 @@ std::ifstream get_file_content;
if( clear_content )
content.clear();
if( !wide_to_utf8(file_path, file, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(file_path, (char*)file, WINIX_OS_PATH_SIZE) )
return false;
get_file_content.open(file, std::ios_base::in | std::ios_base::binary);
@ -1205,7 +1205,7 @@ std::ifstream get_file_content;
if( clear_content )
content.clear();
if( !wide_to_utf8(file_path, file, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(file_path, (char*)file, WINIX_OS_PATH_SIZE) )
return false;
get_file_content.open(file, std::ios_base::in | std::ios_base::binary);
@ -1544,29 +1544,6 @@ void JSONescapeStream(const std::wstring & in, pt::WTextStream & out)
bool wide_to_utf8(const wchar_t * wide_string, char * utf8, size_t utf8_size)
{
bool res = pt::wide_to_utf8(wide_string, utf8, utf8_size);
if( !res )
{
/*
* either the 'utf8' buffer is too small or there was an error when converting
*/
//log << log1 << "Misc: I cannot convert from a wide string to an UTF-8 string, original string was: "
// << wide_string << logend;
}
return res;
}
bool wide_to_utf8(const std::wstring & wide_string, char * utf8, size_t utf8_size)
{
return wide_to_utf8(wide_string.c_str(), utf8, utf8_size);
}
void calculate_timespec_diff(timespec & start, timespec & stop, timespec & result)
{
/*

View File

@ -996,16 +996,6 @@ void JSONescapeStream(const std::wstring & in, pt::WTextStream & out);
/*
* converting from a wide string to an UTF-8 string
* and puts a log if the conversion fails
*
* it uses pt::wide_to_utf8()
*/
bool wide_to_utf8(const wchar_t * wide_string, char * utf8, size_t utf8_size);
bool wide_to_utf8(const std::wstring & wide_string, char * utf8, size_t utf8_size);
/*
* calculate diff between start and stop timespec
*

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2009-2022, Tomasz Sowa
* Copyright (c) 2009-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -35,8 +35,6 @@
#include "mounts.h"
#include "request.h"
#include "log.h"
#include "db/db.h"
#include "cur.h"
#include "dirs.h"
@ -115,12 +113,6 @@ void Mounts::SetDirs(Dirs * pdirs)
}
void Mounts::SetDb(Db * pdb)
{
db = pdb;
}
int Mounts::AddMountType(const wchar_t * type)
{
mount_type_tab.push_back(type);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2009-2022, Tomasz Sowa
* Copyright (c) 2009-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -41,9 +41,6 @@
#include <string>
#include <vector>
#include "mount.h"
#include "error.h"
#include "db/db.h"
#include "request.h"
#include "mountparser.h"
#include "winixmodeldeprecated.h"
@ -51,7 +48,7 @@
namespace Winix
{
class Dirs;
class Request;
class Mounts : public WinixModelDeprecated
@ -113,7 +110,6 @@ public:
int MountParLang() { return mount_par_lang; }
void SetDirs(Dirs * pdirs);
void SetDb(Db * pdb);
// dir_id, mount_point
typedef std::map<long, Mount> MountTab;
@ -142,7 +138,6 @@ public:
private:
Db * db;
Dirs * dirs;
bool skip_static;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2023, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -65,7 +65,6 @@ Plugin::Plugin()
{
current_plugin = -1;
db = nullptr;
cur = nullptr;
system = nullptr;
functions = nullptr;
@ -83,12 +82,6 @@ Plugin::~Plugin()
}
void Plugin::SetDb(Db * pdb)
{
db = pdb;
}
void Plugin::SetSystem(System * psystem)
{
system = psystem;
@ -145,14 +138,13 @@ void Plugin::Unlock()
bool Plugin::SetDependencyForPluginInfo(morm::ModelConnector * pmodel_connector, Log * plog, Cur * pcur, PluginInfo & info)
{
// for safety we call a plugin function only when all our pointers are not null
bool res = (pmodel_connector && plog && pcur && db && config && system && functions && templates && synchro && session_manager && winix_request);
bool res = (pmodel_connector && plog && pcur && config && system && functions && templates && synchro && session_manager && winix_request);
if( !res )
{
log << log1 << "Plugin: cannot call a function - some of the winix pointers are null" << logend;
}
info.db = db;
info.config = config;
info.cur = pcur;
info.system = system;
@ -198,8 +190,8 @@ void * Plugin::LoadInitFun(const wchar_t * filename, Fun1 & fun_init)
{
char file[WINIX_OS_PATH_SIZE];
if( !wide_to_utf8(filename, file, WINIX_OS_PATH_SIZE) )
return 0;
if( !pt::wide_to_utf8(filename, (char*)file, WINIX_OS_PATH_SIZE) )
return nullptr;
void * p = dlopen(file, RTLD_NOW | RTLD_LOCAL);
@ -207,7 +199,7 @@ char file[WINIX_OS_PATH_SIZE];
{
log << log1 << "Plugin: cannot load a plugin: \"" << filename << "\"" << logend;
log << log1 << "Plugin: dlerror: " << dlerror() << logend;
return 0;
return nullptr;
}
fun_init = (Fun1)dlsym(p, "Init");
@ -218,14 +210,14 @@ char file[WINIX_OS_PATH_SIZE];
<< " (there is no Init() function)" << logend;
dlclose(p);
return 0;
return nullptr;
}
log << log2 << "Plugin: plugin loaded"
<< ", file: " << filename
<< ", index: " << plugins.size() << logend;
return p;
return p;
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2023, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -99,7 +99,6 @@ struct PluginInfo
// objects from winix which are accessible from a plugin
Db * db;
Config * config;
Cur * cur;
System * system;
@ -208,7 +207,6 @@ public:
Plugin();
~Plugin();
void SetDb(Db * pdb);
void SetSystem(System * psystem);
void SetCur(Cur * cur);
void SetFunctions(Functions * pfunctions);
@ -253,7 +251,6 @@ public:
private:
Db * db;
Cur * cur;
System * system;
Functions * functions;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2023, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -42,7 +42,6 @@
#include "models/item.h"
#include "error.h"
#include "config.h"
#include "textstream.h"
#include "templates/htmltextstream.h"
#include "date/date.h"
#include "space/space.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -105,7 +105,6 @@ void Session::Clear(bool clear_plugin_data)
start_date.Clear();
last_date.Clear();
log_buffer.Clear();
last_css.clear();
ip_ban = 0;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -43,7 +43,6 @@
#include "models/user.h"
#include "plugindata.h"
#include "rebus.h"
#include "textstream.h"
#include "date/date.h"
#include "ipban.h"
@ -115,9 +114,6 @@ public:
PluginData plugin_data;
// buffer for the session log
TextStream<std::wstring> log_buffer;
// !! IMPROVE ME it is still needed?
// css cannot be taken directly from the mountpoint?
// table with css files

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -35,6 +35,7 @@
#include <sys/stat.h>
#include <limits>
#include "sessionmanager.h"
#include "core/misc.h"
#include "request.h"
#include "log.h"
#include "session.h"
@ -713,7 +714,7 @@ char file_path[WINIX_OS_PATH_SIZE];
return;
}
if( !wide_to_utf8(config->session_file, file_path, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(config->session_file, (char*)file_path, WINIX_OS_PATH_SIZE) )
return;
std::ofstream file(file_path);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2014, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -60,7 +60,7 @@ char file_path[WINIX_OS_PATH_SIZE];
container.Clear();
if( !wide_to_utf8(path, file_path, WINIX_OS_PATH_SIZE) )
if( !pt::wide_to_utf8(path, (char*)file_path, WINIX_OS_PATH_SIZE) )
return false;
file.open(file_path, std::ios_base::in | std::ios_base::binary);

View File

@ -1,257 +0,0 @@
/*
* 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) 2011-2021, 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 "slog.h"
#include "utf8/utf8.h"
namespace Winix
{
SLog::SLog()
{
cur = 0;
locale = 0;
}
void SLog::SetCur(Cur * pcur)
{
cur = pcur;
}
void SLog::SetLocale(Locale * plocale)
{
locale = plocale;
}
SLog & SLog::operator<<(const void * s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const char * s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const std::string * s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const std::string & s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const wchar_t * s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const std::wstring * s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const std::wstring & s)
{
return PutLog(s);
}
SLog & SLog::operator<<(int s)
{
return PutLog(s);
}
SLog & SLog::operator<<(long s)
{
return PutLog(s);
}
SLog & SLog::operator<<(char s)
{
return PutLog(s);
}
SLog & SLog::operator<<(wchar_t s)
{
return PutLog(s);
}
SLog & SLog::operator<<(size_t s)
{
return PutLog(s);
}
SLog & SLog::operator<<(double s)
{
return PutLog(s);
}
SLog & SLog::operator<<(const pt::Date & date)
{
return PutLog(date);
}
SLog & SLog::operator<<(LogManipulators m)
{
if( cur && cur->session )
{
TextStream<std::wstring> & buf = cur->session->log_buffer;
switch(m)
{
case logend:
buf << '\n';
if( buf.Size() > WINIX_SLOG_MAX_LOG_SIZE )
{
buf.Clear();
(*this) << logwarning << T("slog_turn_over") << " " << WINIX_SLOG_MAX_LOG_SIZE << logend;
}
break;
case loginfo:
case logwarning:
case logerror:
buf << (wchar_t)(int)m;
break;
default:
break;
}
}
return *this;
}
SLog & SLog::TranslateText(const char * str)
{
pt::utf8_to_wide(str, key_temp);
return TranslateText(key_temp.c_str());
}
SLog & SLog::TranslateText(const wchar_t * str)
{
if( cur && cur->session )
{
const std::wstring * trans = 0;
if( locale )
trans = &locale->Get(str);
// !! IMPROVE ME "Not translated" add to locale
if( !trans || trans->empty() )
cur->session->log_buffer << "Not translated: " << str;
else
cur->session->log_buffer << trans;
}
return *this;
}
SLog & SLog::operator<<(const TranslateTextHelper<const char*> & raw)
{
return TranslateText(raw.par);
}
SLog & SLog::operator<<(const TranslateTextHelper<const wchar_t*> & raw)
{
return TranslateText(raw.par);
}
SLog & SLog::operator<<(TranslateTextHelper<const std::string*> raw)
{
return TranslateText(raw.par->c_str());
}
SLog & SLog::operator<<(TranslateTextHelper<const std::wstring*> raw)
{
return TranslateText(raw.par->c_str());
}
SLog & SLog::operator<<(TranslateTextHelper<std::string> raw)
{
return TranslateText(raw.par.c_str());
}
SLog & SLog::operator<<(TranslateTextHelper<std::wstring> raw)
{
return TranslateText(raw.par.c_str());
}
} // namespace Winix

View File

@ -1,173 +0,0 @@
/*
* 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) 2011-2014, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_core_slog
#define headerfile_winix_core_slog
#include "cur.h"
#include "logmanipulators.h"
#include "templates/locale.h"
#include "textstream/textstream.h"
namespace Winix
{
#define WINIX_SLOG_MAX_LOG_SIZE 10240
/*
session logger
sample:
#include "log.h" (or slog.h)
slog << logerror << "message" << "something" << logend;
slog << logwarning << T("message_to_translate") << x << logend;
if the latter example "message_to_translate" will be taken from locales
currently following manipulators are taken into account:
loginfo - the message in a normal info
logwarning - this is a warning
logerror - this is an error
logend - end of a line -- we have one kind of a message (info, warning, error) per line
loginfo, logwarning, logerror should be specified at the beginning of a line
(other manipulators are skipped)
*/
class SLog
{
public:
SLog();
void SetCur(Cur * pcur);
void SetLocale(Locale * plocale);
template<class RawType>
struct TranslateTextHelper
{
const RawType & par;
TranslateTextHelper(const TranslateTextHelper<RawType> & p) : par(p.par) {}
TranslateTextHelper(const RawType & p) : par(p) {}
};
SLog & operator<<(const void * s);
SLog & operator<<(const char * s);
SLog & operator<<(const std::string * s);
SLog & operator<<(const std::string & s);
SLog & operator<<(const wchar_t * s);
SLog & operator<<(const std::wstring * s);
SLog & operator<<(const std::wstring & s);
SLog & operator<<(int s);
SLog & operator<<(long s);
SLog & operator<<(char s);
SLog & operator<<(wchar_t s);
SLog & operator<<(size_t s);
SLog & operator<<(double s);
SLog & operator<<(LogManipulators m);
SLog & operator<<(const pt::Date & date);
template<typename char_type, size_t stack_size, size_t heap_block_size>
SLog & operator<<(const pt::TextStreamBase<char_type, stack_size, heap_block_size> & buf);
SLog & TranslateText(const char * str);
SLog & TranslateText(const wchar_t * str);
template<size_t str_size>
SLog & operator<<(const TranslateTextHelper<const char [str_size]> & raw) { return TranslateText(raw.par); }
template<size_t str_size>
SLog & operator<<(const TranslateTextHelper<const wchar_t [str_size]> & raw){ return TranslateText(raw.par); }
template<size_t str_size>
SLog & operator<<(const TranslateTextHelper<char [str_size]> & raw) { return TranslateText(raw.par); }
template<size_t str_size>
SLog & operator<<(const TranslateTextHelper<wchar_t [str_size]> & raw){ return TranslateText(raw.par); }
SLog & operator<<(const TranslateTextHelper<const char*> & raw);
SLog & operator<<(const TranslateTextHelper<const wchar_t*> & raw);
SLog & operator<<(TranslateTextHelper<const std::string*> raw);
SLog & operator<<(TranslateTextHelper<const std::wstring*> raw);
SLog & operator<<(TranslateTextHelper<std::string> raw);
SLog & operator<<(TranslateTextHelper<std::wstring> raw);
private:
template<class LogParam>
SLog & PutLog(const LogParam & par);
Cur * cur;
Locale * locale;
std::wstring key_temp;
};
template<class RawType>
SLog::TranslateTextHelper<RawType> T(const RawType & par)
{
return SLog::TranslateTextHelper<RawType>(par);
}
template<typename char_type, size_t stack_size, size_t heap_block_size>
SLog & SLog::operator<<(const pt::TextStreamBase<char_type, stack_size, heap_block_size> & buf)
{
return PutLog(buf);
}
template<class LogParam>
SLog & SLog::PutLog(const LogParam & par)
{
if( cur && cur->session )
cur->session->log_buffer << par;
return *this;
}
} // namespace Winix
#endif

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -58,12 +58,6 @@ void System::SetCur(Cur * pcur)
//}
void System::SetDb(Db * pdb)
{
db = pdb;
}
//void System::SetSynchro(Synchro * psynchro)
//{
// synchro = psynchro;
@ -129,23 +123,21 @@ bool System::Init()
//thread_manager.SetSynchro(synchro);
thread_manager.Init();
dirs.SetDb(db);
dirs.SetCur(cur); // only one method is using cur, can be passed as a parameter to the method
dirs.SetNotify(&notify);
dirs.ReadDirs();
mounts.SkipStaticDirs(config->dont_use_static_dirs);
mounts.SetDirs(&dirs);
mounts.SetDb(db);
mounts.CreateMounts();
mounts.ReadMounts();
// users.SetCur(cur);
// users.SetSessionManager(session_manager);
users.set_connector(model_connector);
users.ReadUsers(db);
users.ReadUsers();
groups.ReadGroups(db); // !! chwilowe przekazanie argumentu, db bedzie zmienione
groups.ReadGroups();
rebus.SetCur(cur);
rebus.Init();
@ -160,7 +152,6 @@ bool System::Init()
if( !notify.Init() )
return false;
image.SetDb(db);
image.SetConfig(config);
image.SetSystem(this);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -39,7 +39,6 @@
#include "job.h"
#include "dirs.h"
#include "mounts.h"
#include "db/db.h"
#include "request.h"
#include "config.h"
#include "crypt.h"
@ -116,7 +115,6 @@ public:
void SetCur(Cur * pcur);
//void SetConfig(Config * pconfig);
void SetDb(Db * pdb);
//void SetSynchro(Synchro * psynchro);
void SetFunctions(Functions * pfunctions);
void SetSessionManager(SessionManager * sm);
@ -229,7 +227,6 @@ public:
private:
Cur * cur;
Db * db;
//Config * config;
//Synchro * synchro;
Functions * functions;

View File

@ -1,666 +0,0 @@
/*
* 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) 2010-2021, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_core_textstream
#define headerfile_winix_core_textstream
#include <string>
#include <ctime>
#include "misc.h"
#include "space/space.h"
#include "date/date.h"
#include "textstream/textstream.h"
#include "utf8/utf8.h"
namespace Winix
{
/*
a special class representing a stream buffer
similar to std::ostringstream
StringType can be either std::string or std::wstring
this class uses UTF-8 <-> wide characters conversions:
if StringType is std::string:
operator<<(const char*) only copies the input string
operator<<(const wchar_t*) converts from wide characters to UTF-8
(similary for an operator with std::string and std::wstring)
if StringType is std::wstring:
operator<<(const char*) converts from UTF-8 to wide characters
operator<<(const wchar_t*) only copies the input string
(similary for an operator with std::string and std::wstring)
*/
template<class StringType>
class TextStream
{
public:
typedef typename StringType::value_type CharType;
typedef typename StringType::value_type char_type;
typedef typename StringType::iterator iterator;
typedef typename StringType::const_iterator const_iterator;
void Clear();
void clear(); // utf8 methods call clear(), in the future Clear() will be renamed to clear()
bool Empty() const;
size_t Size() const;
void Reserve(size_t len);
iterator begin();
iterator end();
const_iterator begin() const;
const_iterator end() const;
const StringType & Str() const;
const CharType * CStr() const;
void Str(const StringType & str);
void Str(const StringType && str);
void to_str(std::string & str, bool clear_string = true) const;
void to_str(std::wstring & str, bool clear_string = true) const;
void to_string(std::string & str, bool clear_string = true) const;
void to_string(std::wstring & str, bool clear_string = true) const;
CharType operator[](size_t index);
TextStream & operator<<(const char * str);
TextStream & operator<<(const std::string * str);
TextStream & operator<<(const std::string & str);
TextStream & operator<<(const wchar_t * str);
TextStream & operator<<(const std::wstring * str);
TextStream & operator<<(const std::wstring & str);
TextStream & operator<<(char);
TextStream & operator<<(wchar_t);
TextStream & operator<<(int);
TextStream & operator<<(long);
TextStream & operator<<(unsigned int);
TextStream & operator<<(unsigned long);
TextStream & operator<<(double);
TextStream & operator<<(const void *);// printing a pointer
TextStream & operator<<(const pt::Space & space);
TextStream & operator<<(const pt::Date & date);
TextStream & operator<<(const TextStream & stream);
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
TextStream & operator<<(const pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> & arg);
TextStream & Write(const char * buf, size_t len);
TextStream & Write(const wchar_t * buf, size_t len);
TextStream & write(const char * buf, size_t len); // for compatibility with standard library (Ezc uses it)
TextStream & write(const wchar_t * buf, size_t len);
protected:
StringType buffer;
void Convert(wchar_t c, std::string & dst);
void Convert(wchar_t c, std::wstring & dst);
void Convert(const char * src, size_t len, std::wstring & dst);
void Convert(const char * src, std::wstring & dst);
void Convert(const std::string & src, std::wstring & dst);
void Convert(const wchar_t * src, size_t len, std::string & dst);
void Convert(const wchar_t * src, std::string & dst);
void Convert(const std::wstring & src, std::string & dst);
void Convert(const char * src, size_t len, std::string & dst);
void Convert(const char * src, std::string & dst);
void Convert(const std::string & src, std::string & dst);
void Convert(const wchar_t * src, size_t len, std::wstring & dst);
void Convert(const wchar_t * src, std::wstring & dst);
void Convert(const std::wstring & src, std::wstring & dst);
};
template<class StringType>
void TextStream<StringType>::Clear()
{
buffer.clear();
}
template<class StringType>
void TextStream<StringType>::clear()
{
Clear();
}
template<class StringType>
bool TextStream<StringType>::Empty() const
{
return buffer.empty();
}
template<class StringType>
size_t TextStream<StringType>::Size() const
{
return buffer.size();
}
template<class StringType>
void TextStream<StringType>::Reserve(size_t len)
{
buffer.reserve(len);
}
template<class StringType>
typename TextStream<StringType>::iterator TextStream<StringType>::begin()
{
return buffer.begin();
}
template<class StringType>
typename TextStream<StringType>::iterator TextStream<StringType>::end()
{
return buffer.end();
}
template<class StringType>
typename TextStream<StringType>::const_iterator TextStream<StringType>::begin() const
{
return buffer.begin();
}
template<class StringType>
typename TextStream<StringType>::const_iterator TextStream<StringType>::end() const
{
return buffer.end();
}
template<class StringType>
const StringType & TextStream<StringType>::Str() const
{
return buffer;
}
template<class StringType>
const typename TextStream<StringType>::CharType * TextStream<StringType>::CStr() const
{
return buffer.c_str();
}
template<class StringType>
void TextStream<StringType>::Str(const StringType & str)
{
buffer = str;
}
template<class StringType>
void TextStream<StringType>::Str(const StringType && str)
{
buffer = std::move(str);
}
template<class StringType>
void TextStream<StringType>::to_str(std::string & str, bool clear_string) const
{
return to_string(str, clear_string);
}
template<class StringType>
void TextStream<StringType>::to_str(std::wstring & str, bool clear_string) const
{
return to_string(str, clear_string);
}
template<class StringType>
void TextStream<StringType>::to_string(std::string & str, bool clear_string) const
{
if( clear_string )
str.clear();
if constexpr (sizeof(typename StringType::value_type) == sizeof(char))
{
str.append(buffer);
}
else
{
pt::wide_to_utf8(buffer, str, false);
}
}
template<class StringType>
void TextStream<StringType>::to_string(std::wstring & str, bool clear_string) const
{
if( clear_string )
str.clear();
if constexpr (sizeof(typename StringType::value_type) == sizeof(wchar_t))
{
str.append(buffer);
}
else
{
pt::utf8_to_wide(buffer, str, false);
}
}
template<class StringType>
typename TextStream<StringType>::CharType TextStream<StringType>::operator[](size_t index)
{
return buffer[index];
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const char * str)
{
Convert(str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const std::string * str)
{
Convert(*str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const std::string & str)
{
Convert(str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const wchar_t * str)
{
Convert(str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const std::wstring * str)
{
Convert(*str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const std::wstring & str)
{
Convert(str, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(char v)
{
/*
* there is no any possibility to treat 'v' as UTF-8 character if we have got
* only one character so we only copy it
*/
buffer += v;
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(wchar_t v)
{
Convert(v, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(int v)
{
wchar_t buf[50];
size_t len = sizeof(buf) / sizeof(wchar_t);
Toa(v, buf, len);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(long v)
{
wchar_t buf[50];
size_t len = sizeof(buf) / sizeof(wchar_t);
Toa(v, buf, len);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(unsigned int v)
{
wchar_t buf[50];
size_t len = sizeof(buf) / sizeof(wchar_t);
Toa(v, buf, len);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(unsigned long v)
{
wchar_t buf[50];
size_t len = sizeof(buf) / sizeof(wchar_t);
Toa(v, buf, len);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(double v)
{
char buf[50];
sprintf(buf, "%f", v);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const void * v)
{
wchar_t buf[50];
size_t len = sizeof(buf) / sizeof(wchar_t);
buf[0] = '0';
buf[1] = 'x';
Toa(reinterpret_cast<unsigned long>(v), buf+2, len-2, 16);
Convert(buf, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::Write(const char * buf, size_t len)
{
Convert(buf, len, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::write(const char * buf, size_t len)
{
return Write(buf, len);
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::Write(const wchar_t * buf, size_t len)
{
Convert(buf, len, buffer);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::write(const wchar_t * buf, size_t len)
{
return Write(buf, len);
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const pt::Space & space)
{
space.serialize_to_space_stream(*this, true);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const pt::Date & date)
{
date.Serialize(*this);
return *this;
}
template<class StringType>
TextStream<StringType> & TextStream<StringType>::operator<<(const TextStream<StringType> & stream)
{
buffer.append(stream.buffer);
return *this;
}
template<class StringType>
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
TextStream<StringType> & TextStream<StringType>::operator<<(
const pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> & arg)
{
typename pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size>::const_iterator i;
for(i=arg.begin() ; i != arg.end() ; ++i)
buffer += static_cast<char_type>(*i);
return *this;
}
template<class StringType>
void TextStream<StringType>::Convert(wchar_t c, std::string & dst)
{
pt::int_to_utf8((int)c, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(wchar_t c, std::wstring & dst)
{
dst += c;
}
template<class StringType>
void TextStream<StringType>::Convert(const char * src, size_t len, std::wstring & dst)
{
pt::utf8_to_wide(src, len, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const char * src, std::wstring & dst)
{
pt::utf8_to_wide(src, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const std::string & src, std::wstring & dst)
{
pt::utf8_to_wide(src, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const wchar_t * src, size_t len, std::string & dst)
{
pt::wide_to_utf8(src, len, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const wchar_t * src, std::string & dst)
{
pt::wide_to_utf8(src, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const std::wstring & src, std::string & dst)
{
pt::wide_to_utf8(src, dst, false);
}
template<class StringType>
void TextStream<StringType>::Convert(const char * src, size_t len, std::string & dst)
{
// we suppose that append is smart enough and we don't have to use reserve()
dst.append(src, len);
}
template<class StringType>
void TextStream<StringType>::Convert(const char * src, std::string & dst)
{
size_t len;
for(len=0 ; src[len] ; ++len){}
Convert(src, len, dst);
}
template<class StringType>
void TextStream<StringType>::Convert(const std::string & src, std::string & dst)
{
dst.append(src);
}
template<class StringType>
void TextStream<StringType>::Convert(const wchar_t * src, size_t len, std::wstring & dst)
{
// we suppose that append is smart enough and we don't have to use reserve()
dst.append(src, len);
}
template<class StringType>
void TextStream<StringType>::Convert(const wchar_t * src, std::wstring & dst)
{
size_t len;
for(len=0 ; src[len] ; ++len){}
Convert(src, len, dst);
}
template<class StringType>
void TextStream<StringType>::Convert(const std::wstring & src, std::wstring & dst)
{
dst.append(src);
}
} // namespace Winix
#endif

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2022, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -114,7 +114,6 @@ bool ThreadManager::Add(BaseThread * pbase, const wchar_t * thread_name)
data.model_connector.set_winix_mounts(nullptr);
data.model_connector.set_winix_users(nullptr);
data.model_connector.set_winix_groups(nullptr);
data.model_connector.set_winix_session_logger(nullptr);
data.model_connector.set_winix_session(nullptr);
data.model_connector.set_winix_locale(nullptr); // null for a moment, may will be changed
data.model_connector.set_winix_session_manager(nullptr);// null for a moment, may will be changed

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -35,7 +35,6 @@
#include <arpa/inet.h>
#include "users.h"
#include "sessionmanager.h"
#include "slog.h"
namespace Winix
@ -87,7 +86,7 @@ void Users::Clear()
void Users::ReadUsers(Db * db)
void Users::ReadUsers()
{
Clear();
@ -195,11 +194,10 @@ return result;
// private
bool Users::LoginUserCheckSession(bool use_ses_log)
bool Users::LoginUserCheckSession()
{
Session * session = get_session();
Log * log = get_logger();
SLog * slog = get_session_logger();
if( !session )
return false;
@ -209,8 +207,8 @@ bool Users::LoginUserCheckSession(bool use_ses_log)
if( log )
(*log) << log1 << "Users: I cannot login a user on a temporary session" << logend;
if( slog && use_ses_log )
(*slog) << logerror << T(L"service_unavailable") << logend;
// if( slog && use_ses_log )
// (*slog) << logerror << T(L"service_unavailable") << logend;
return false;
}
@ -220,19 +218,18 @@ return true;
// private
User * Users::LoginUserCheckStatus(long user_id, bool use_ses_log)
User * Users::LoginUserCheckStatus(long user_id)
{
User * puser = GetUser(user_id);
Log * log = get_logger();
SLog * slog = get_session_logger();
if( !puser )
{
if( log )
(*log) << log1 << "Users: user id: " << user_id << " is not in system.users table" << logend;
if( slog && use_ses_log )
(*slog) << logerror << T(L"service_unavailable") << logend;
// if( slog && use_ses_log )
// (*slog) << logerror << T(L"service_unavailable") << logend;
return 0;
}
@ -242,17 +239,17 @@ User * Users::LoginUserCheckStatus(long user_id, bool use_ses_log)
(*log) << log1 << "Users: user id: " << user_id << " is not ready for logging in (status: "
<< puser->status << ")" << logend;
if( slog && use_ses_log )
{
if( puser->status == WINIX_ACCOUNT_NOT_ACTIVATED )
(*slog) << logerror << T(L"account_not_activated") << logend;
else
if( puser->status == WINIX_ACCOUNT_SUSPENDED )
(*slog) << logerror << T(L"account_suspended") << logend;
else
if( puser->status == WINIX_ACCOUNT_BLOCKED )
(*slog) << logerror << T(L"account_banned") << logend;
}
// if( slog && use_ses_log )
// {
// if( puser->status == WINIX_ACCOUNT_NOT_ACTIVATED )
// (*slog) << logerror << T(L"account_not_activated") << logend;
// else
// if( puser->status == WINIX_ACCOUNT_SUSPENDED )
// (*slog) << logerror << T(L"account_suspended") << logend;
// else
// if( puser->status == WINIX_ACCOUNT_BLOCKED )
// (*slog) << logerror << T(L"account_banned") << logend;
// }
return 0;
}
@ -262,17 +259,17 @@ return puser;
bool Users::LoginUser(long user_id, bool remember_me, bool use_ses_log)
bool Users::LoginUser(long user_id, bool remember_me)
{
Config * config = get_config();
if( !config || !config->use_internal_loggin_mechanism )
return false;
if( !LoginUserCheckSession(use_ses_log) )
if( !LoginUserCheckSession() )
return false;
User * puser = LoginUserCheckStatus(user_id, use_ses_log);
User * puser = LoginUserCheckStatus(user_id);
Log * log = get_logger();
Session * session = get_session();
SessionManager * session_manager = get_session_manager();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -40,7 +40,6 @@
#include "ugcontainer.h"
#include "lastcontainer.h"
#include "cur.h"
#include "db/db.h"
#include "models/winixmodel.h"
@ -73,7 +72,7 @@ public:
// void SetSessionManager(SessionManager * sm);
void Clear();
void ReadUsers(Db * db);
void ReadUsers();
bool AddUser(const User & user);
bool IsUser(const std::wstring & name);
User * GetUser(long user_id);
@ -84,7 +83,7 @@ public:
SizeType Size();
bool Remove(long user_id);
bool LoginUser(long user_id, bool remember_me, bool use_ses_log = false);
bool LoginUser(long user_id, bool remember_me);
size_t LogoutUser(long user_id);
void LogoutCurrentUser();
@ -104,8 +103,8 @@ private:
//SessionManager * session_manager;
long how_many_logged;
bool LoginUserCheckSession(bool use_ses_log);
User * LoginUserCheckStatus(long user_id, bool use_ses_log);
bool LoginUserCheckSession();
User * LoginUserCheckStatus(long user_id);
};

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2018, Tomasz Sowa
* Copyright (c) 2018-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -55,7 +55,6 @@ WinixRequest::~WinixRequest()
void WinixRequest::set_cur(Cur * cur)
{
this->cur = cur;
slog.SetCur(cur);
}
@ -68,7 +67,6 @@ void WinixRequest::set_session_manager(SessionManager * session_manager)
void WinixRequest::set_locale(Locale * locale)
{
this->locale = locale;
slog.SetLocale(locale);
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2018, Tomasz Sowa
* Copyright (c) 2018-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -38,7 +38,6 @@
#include "core/winixsystem.h"
#include "core/cur.h"
#include "core/sessionmanager.h"
#include "core/slog.h"
#include "templates/locale.h"
@ -66,8 +65,6 @@ public:
protected:
SLog slog;
Cur * cur;
Locale * locale; // locales can be used not only in templates -- should be moved to a better place
SessionManager * session_manager; // may it should be moved to WinixSystem or System?

View File

@ -1,413 +0,0 @@
/*
* 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) 2008-2021, 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 "db.h"
#include "core/log.h"
#include "core/misc.h"
namespace Winix
{
//void Db::PostgreSQLsmallerThan10(bool is_smaller_than_10)
//{
// is_postgresql_smaller_than_10 = is_smaller_than_10;
//
// if( is_postgresql_smaller_than_10 )
// {
// postgrsql_row_statement.clear();
// }
// else
// {
// postgrsql_row_statement = L"ROW";
// }
//}
/*
bool Db::GetUserPass(const std::wstring & login, long & user_id, UserPass & up)
{
PGresult * r = 0;
bool user_ok = false;
user_id = -1;
try
{
query.Clear();
query << R("select id, has_pass, password, pass_encrypted, pass_type, pass_hash_salted from core.user where login=")
<< login
<< R(";");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
int rows = Rows(r);
if( rows == 0 )
throw Error(WINIX_ERR_DB_INCORRECT_LOGIN);
if( rows > 1 )
{
log << log1 << "Db: there is more than one user: " << login << logend;
throw Error(WINIX_ERR_DB_MORE_THAN_ONE_LOGIN);
}
int cuser_id = AssertColumn(r, "id");
int chas_pass = AssertColumn(r, "has_pass");
int cpass_type = AssertColumn(r, "pass_type");
int csalted = AssertColumn(r, "pass_hash_salted");
int cpassword = AssertColumn(r, "password");
int cpass_encrypted = AssertColumn(r, "pass_encrypted");
user_ok = true;
user_id = AssertValueLong(r, 0, cuser_id);
up.has_pass = AssertValueBool(r, 0, chas_pass);
up.pass_type = AssertValueInt(r, 0, cpass_type);
up.pass_hash_salted = AssertValueBool(r, 0, csalted);
AssertValueWide(r, 0, cpassword, up.pass);
AssertValueBin(r, 0, cpass_encrypted, up.pass_encrypted);
}
catch(const Error &)
{
}
ClearResult(r);
return user_ok;
}
Error Db::AddUser(User & user, const UserPass & up)
{
PGresult * r = 0;
Error status = WINIX_ERR_OK;
try
{
query.Clear();
query << R("insert into core.user (login, has_pass, password, pass_encrypted, super_user, email,"
"notify, pass_type, pass_hash_salted, env, aenv, status, locale_id, time_zone_id) values (")
<< user.name
<< up.has_pass;
// for safety we put up.pass only if there is not an encrypted version
// someone could have forgotten to clear up.pass
if( up.pass_encrypted.empty() )
query << up.pass;
else
query << "";
query.EPutBin(up.pass_encrypted);
query << user.super_user
<< user.email
<< user.notify
<< up.pass_type
<< up.pass_hash_salted
<< user.env
<< user.aenv
<< user.status
<< user.locale_id
<< user.time_zone_id
<< R(");");
r = AssertQuery(query);
AssertResult(r, PGRES_COMMAND_OK);
user.id = AssertCurrval("core.user_id_seq");
}
catch(const Error & e)
{
status = e;
}
ClearResult(r);
return status;
}
Error Db::ChangeUserPass(long user_id, const UserPass & up)
{
query.Clear();
query << R("update core.user set(has_pass, password, pass_encrypted,"
"pass_type, pass_hash_salted) = ") << R(postgrsql_row_statement) << R("(")
<< up.has_pass;
// for safety
if( up.pass_encrypted.empty() )
query << up.pass;
else
query << "";
query.EPutBin(up.pass_encrypted);
query << up.pass_type
<< up.pass_hash_salted
<< R(") where id=")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserEnv(long user_id, const PT::Space & space)
{
query.Clear();
query << R("update core.user set(env) = ") << R(postgrsql_row_statement) << R("(")
<< space
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserAdminEnv(long user_id, const PT::Space & space)
{
query.Clear();
query << R("update core.user set(aenv) = ") << R(postgrsql_row_statement) << R("(")
<< space
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserStatus(long user_id, int status)
{
query.Clear();
query << R("update core.user set(status) = ") << R(postgrsql_row_statement) << R("(")
<< status
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserEmail(long user_id, const std::wstring & email)
{
query.Clear();
query << R("update core.user set(email) = ") << R(postgrsql_row_statement) << R("(")
<< email
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserLocale(long user_id, size_t locale_id)
{
query.Clear();
query << R("update core.user set(locale_id) = ") << R(postgrsql_row_statement) << R("(")
<< locale_id
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::ChangeUserTimeZone(long user_id, size_t time_zone_id)
{
query.Clear();
query << R("update core.user set(time_zone_id) = ") << R(postgrsql_row_statement) << R("(")
<< time_zone_id
<< R(") where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
Error Db::RemoveUser(long user_id)
{
query.Clear();
query << R("delete from core.user where id = ")
<< user_id
<< R(";");
return DoCommand(query);
}
void Db::GetUsers(UGContainer<User> & user_tab)
{
PGresult * r = 0;
try
{
query.Clear();
query << R("select id, login, super_user, group_id, email, notify,"
" env, aenv, status, locale_id, time_zone_id"
" from core.user left outer join core.group_mem on"
" core.user.id = core.group_mem.user_id order by id asc;");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
int rows = Rows(r);
int cid = AssertColumn(r, "id");
int cname = AssertColumn(r, "login");
int csuper_user = AssertColumn(r, "super_user");
int cgroup_id = AssertColumn(r, "group_id");
int cemail = AssertColumn(r, "email");
int cnotify = AssertColumn(r, "notify");
int cenv = AssertColumn(r, "env");
int caenv = AssertColumn(r, "aenv");
int cstatus = AssertColumn(r, "status");
int clocale_id = AssertColumn(r, "locale_id");
int ctzone_id = AssertColumn(r, "time_zone_id");
User u;
long last_id = -1;
UGContainer<User>::Iterator iter = user_tab.End();
for(int i=0 ; i<rows ; ++i)
{
u.id = AssertValueLong(r, i, cid);
if( u.id != last_id )
{
u.name = AssertValueWide(r, i, cname);
u.super_user = AssertValueBool(r, i, csuper_user);
u.email = AssertValueWide(r, i, cemail);
u.notify = AssertValueInt(r, i, cnotify);
u.status = AssertValueInt(r, i, cstatus);
u.locale_id = (size_t)AssertValueInt(r, i, clocale_id);
u.time_zone_id = (size_t)AssertValueInt(r, i, ctzone_id);
AssertValueSpace(r, i, cenv, u.env);
AssertValueSpace(r, i, caenv, u.aenv);
log << log2 << "Db: user: id: " << u.id << ", name: " << u.name << ", super_user: " << u.super_user << logend;
iter = user_tab.PushBack(u);
if( iter == user_tab.End() )
log << log1 << "Db: can't add a user: " << u.name << logend;
last_id = u.id;
}
long group_id = AssertValueLong(r, i, cgroup_id);
if( !IsNull(r, i, cgroup_id) && group_id!=-1 && iter!=user_tab.End() )
{
iter->groups.push_back(group_id);
log << log3 << "Db: user:" << iter->name << " is a member of group_id: " << group_id << logend;
}
}
}
catch(const Error &)
{
}
ClearResult(r);
}
void Db::GetGroups(UGContainer<Group> & group_tab)
{
PGresult * r = 0;
try
{
query.Clear();
query << R("select id, core.group.group, user_id from core.group left outer join"
" core.group_mem on core.group.id = core.group_mem.group_id order by id asc;");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
int rows = Rows(r);
int cid = AssertColumn(r, "id");
int cname = AssertColumn(r, "group");
int cuser_id = AssertColumn(r, "user_id");
Group g;
long last_id = -1;
UGContainer<Group>::Iterator iter;
for(int i = 0 ; i<rows ; ++i)
{
g.id = AssertValueLong(r, i, cid);
if( g.id != last_id )
{
g.name = AssertValueWide(r, i, cname);
log << log3 << "Db: get group, id: " << g.id << ", group: " << g.name << logend;
iter = group_tab.PushBack( g );
last_id = g.id;
}
long user_id = AssertValueLong(r, i, cuser_id);
if( !IsNull(r, i, cuser_id) && user_id!=-1 && !group_tab.Empty() )
{
iter->members.push_back(user_id);
log << log3 << "Db: get group member: user_id: " << user_id << logend;
}
}
}
catch(const Error &)
{
}
ClearResult(r);
}
*/
} // namespace Winix

View File

@ -1,622 +0,0 @@
/*
* 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) 2010-2021, 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 <stdlib.h>
#include <limits.h>
#include <limits>
#include "dbbase.h"
#include "core/log.h"
#include "core/error.h"
#include "core/misc.h"
#include "utf8/utf8.h"
namespace Winix
{
DbBase::DbBase()
{
db_conn = 0;
log_queries = false;
}
void DbBase::SetConn(DbConn * conn)
{
db_conn = conn;
}
void DbBase::SetConn(DbConn & conn)
{
db_conn = &conn;
}
DbConn * DbBase::GetConn()
{
return db_conn;
}
void DbBase::LogQueries(bool log_q)
{
log_queries = log_q;
}
PGresult * DbBase::AssertQuery(const char * q)
{
if( log_queries )
log << log1 << "Db: executing query: " << q << logend;
bool bad_query = false;
PGresult * r = PQexec(db_conn->GetPgConn(), q);
if( !r )
{
bad_query = true;
if( PQstatus(db_conn->GetPgConn()) != CONNECTION_OK )
{
db_conn->AssertConnection();
r = PQexec(db_conn->GetPgConn(), q);
if( r )
bad_query = false;
}
}
if( bad_query )
{
log << log1 << "Db: Problem with this query: \"" << q << '\"' << logend;
log << log1 << "Db: " << PQerrorMessage(db_conn->GetPgConn()) << logend;
throw Error(WINIX_ERR_DB_INCORRECT_QUERY);
}
return r;
}
PGresult * DbBase::AssertQuery(const DbTextStream & query)
{
return AssertQuery(query.CStr());
}
PGresult * DbBase::AssertQuery(const char * q, ExecStatusType t)
{
PGresult * r = AssertQuery(q);
AssertResult(r, t);
return r;
}
PGresult * DbBase::AssertQuery(const DbTextStream & query, ExecStatusType t)
{
return AssertQuery(query.CStr(), t);
}
void DbBase::AssertResult(PGresult * r, ExecStatusType t)
{
if( PQresultStatus(r) != t )
{
log << log1 << "Db: Incorrect result status: " << PQerrorMessage(db_conn->GetPgConn()) << logend;
throw Error(WINIX_ERR_DB_INCORRENT_RESULT_STATUS);
}
}
int DbBase::AssertColumn(PGresult * r, const char * column_name)
{
int c = PQfnumber(r, column_name);
if( c == -1 )
{
log << log1 << "Db: there is no column: " << column_name << logend;
throw Error(WINIX_ERR_DB_NO_COLUMN);
}
return c;
}
const char * DbBase::AssertValue(PGresult * r, int row, int col)
{
const char * res = PQgetvalue(r, row, col);
if( !res )
{
log << log1 << "Db: there is no such an item in the result, row:" << row << ", col:" << col << logend;
throw Error(WINIX_ERR_NO_ITEM);
}
return res;
}
const std::wstring & DbBase::AssertValueWide(PGresult * r, int row, int col)
{
const char * res = AssertValue(r, row, col);
static std::wstring temp_wide_value; // !! IMPROVE ME add as a class field (nonstatic)
pt::utf8_to_wide(res, temp_wide_value);
return temp_wide_value;
}
void DbBase::AssertValueBin(PGresult * r, int row, int col, std::string & result)
{
result.clear();
const char * res = AssertValue(r, row, col);
int len = PQgetlength(r, row, col);
if( len <= 0 )
return;
UnescapeBin(res, len, result);
}
void DbBase::AssertValueWide(PGresult * r, int row, int col, std::wstring & result)
{
const char * res = AssertValue(r, row, col);
pt::utf8_to_wide(res, result);
}
long DbBase::AssertValueLong(PGresult * r, int row, int col)
{
return strtol( AssertValue(r, row, col), 0, 10 );
}
int DbBase::AssertValueInt(PGresult * r, int row, int col)
{
return (int)strtol( AssertValue(r, row, col), 0, 10 );
}
bool DbBase::AssertValueBool(PGresult * r, int row, int col)
{
const char * s = AssertValue(r, row, col);
return (s[0]=='t' || s[0]=='y' || s[0]=='1');
}
unsigned long DbBase::AssertValueULong(PGresult * r, int row, int col)
{
return strtoul( AssertValue(r, row, col), 0, 10 );
}
unsigned int DbBase::AssertValueUInt(PGresult * r, int row, int col)
{
return (unsigned int)strtoul( AssertValue(r, row, col), 0, 10 );
}
pt::Date DbBase::AssertValueDate(PGresult * r, int row, int col)
{
pt::Date date = AssertValue(r, row, col);
return date;
}
bool DbBase::AssertValueSpace(PGresult * r, int row, int col, pt::Space & space)
{
const char * res = AssertValue(r, row, col);
pt::SpaceParser::Status status = conf_parser.parse_space(res, space);
if( status != pt::SpaceParser::ok )
{
log << log1 << "Db: a problem with parsing a PT::Space";
if( status == pt::SpaceParser::syntax_error )
log << ", syntax error at line: " << conf_parser.get_last_parsed_line();
log << logend;
space.clear();
return false;
}
return true;
}
void DbBase::ClearResult(PGresult * r)
{
if( r )
PQclear(r);
}
bool DbBase::IsNull(PGresult * r, int row, int col)
{
return PQgetisnull(r, row, col) == 1;
}
int DbBase::Rows(PGresult * r)
{
// PQntuples - Returns the number of rows (tuples) in the query result. Because it returns
// an integer result, large result sets might overflow the return value on 32-bit operating systems.
return PQntuples(r);
}
int DbBase::Cols(PGresult * r)
{
// PQnfields - Returns the number of columns (fields) in each row of the query result.
return PQnfields(r);
}
long DbBase::AffectedRows(PGresult * r)
{
// PQcmdTuples - This function returns a string containing the number of rows affected by the SQL
// statement that generated the PGresult. This function can only be used following the execution
// of an INSERT, UPDATE, DELETE, MOVE, FETCH, or COPY statement, or [...]
char * rows_str = PQcmdTuples(r); // can be an empty string
long rows = 0;
if( rows_str )
{
rows = strtol(rows_str, 0, 10);
// strtol - If an overflow or underflow occurs, errno is set to ERANGE
// and the function return value is clamped according to the following table:
// Function underflow overflow
// strtol() LONG_MIN LONG_MAX
if( rows < 0 )
rows = 0;
}
return rows;
}
long DbBase::AssertCurrval(const char * table)
{
PGresult * r;
bquery.Clear();
bquery << R("select currval(")
<< table
<< R(");");
r = AssertQuery(bquery);
AssertResult(r, PGRES_TUPLES_OK);
if( Rows(r) != 1 )
{
log << log1 << "Db: error (currval) for table: " << table << ", " << PQerrorMessage(db_conn->GetPgConn()) << logend;
throw Error(WINIX_ERR_DB_ERR_CURRVAL);
}
return AssertValueLong(r, 0, 0);
}
void DbBase::CreateIdList(const std::vector<long> & id_tab, std::wstring & list, bool add_parentheses)
{
wchar_t buffer[50];
size_t buffer_len = sizeof(buffer) / sizeof(wchar_t);
list.clear();
if( add_parentheses )
list += '(';
for(size_t i=0 ; i<id_tab.size() ; ++i)
{
Toa((unsigned long)id_tab[i], buffer, buffer_len);
list += buffer;
if( i+1 < id_tab.size() )
list += ',';
}
if( add_parentheses )
list += ')';
}
Error DbBase::DoCommand(const DbTextStream & command)
{
PGresult * r = 0;
Error status = WINIX_ERR_OK;
try
{
r = AssertQuery(command);
AssertResult(r, PGRES_COMMAND_OK);
}
catch(const Error & e)
{
status = e;
}
ClearResult(r);
return status;
}
Error DbBase::DoCommand(const char * command)
{
PGresult * r = 0;
Error status = WINIX_ERR_OK;
try
{
r = AssertQuery(command);
AssertResult(r, PGRES_COMMAND_OK);
}
catch(const Error & e)
{
status = e;
}
ClearResult(r);
return status;
}
Error DbBase::BeginTrans()
{
return DoCommand("BEGIN;");
}
Error DbBase::RollbackTrans()
{
return DoCommand("ROLLBACK;");
}
Error DbBase::CommitTrans()
{
return DoCommand("COMMIT;");
}
bool DbBase::EndTrans(bool everything_ok)
{
bool result;
if( everything_ok )
{
result = (CommitTrans() == WINIX_ERR_OK);
}
else
{
RollbackTrans();
// we return the old err code
result = false;
}
return result;
}
Error DbBase::EndTrans(Error err)
{
if( err == WINIX_ERR_OK )
{
err = CommitTrans();
}
else
{
// we return the old err code
RollbackTrans();
}
return err;
}
/*
converting from a bytea
the old way (escape format)
*/
/*
int DbBase::CharToInt(char c)
{
return (int)(unsigned char)(c-'0');
}
bool DbBase::IsCorrectOctalDigit(char c)
{
return c>='0' && c<='7';
}
// moves 'i' at least once
// return -1 if there is en error
int DbBase::UnescapeBin(const char * str, size_t & i, size_t len)
{
if( str[i] != '\\' )
return str[i++];
i += 1;
if( i >= len )
return -1;
if( str[i] == '\\' )
return str[i++];
if( i+2 >= len )
{
i = len;
return -1;
}
if( !IsCorrectOctalDigit(str[i]) ||
!IsCorrectOctalDigit(str[i+1]) ||
!IsCorrectOctalDigit(str[i+2]) )
{
i += 3;
return -1;
}
int c = 8*8*CharToInt(str[i]) + 8*CharToInt(str[i+1]) + CharToInt(str[i+2]);
i += 3;
if( c<0 || c>255 )
return -1;
return c;
}
void DbBase::UnescapeBin(const char * str, size_t len, std::string & out, bool clear_out)
{
int c;
size_t i = 0;
if( clear_out )
out.clear();
while( i < len )
{
c = UnescapeBin(str, i, len);
if( c != -1 )
out += c;
}
}
*/
/*
converting from a bytea
the new way (hex format)
*/
char DbBase::UnescapeBinHexToDigit(char hex)
{
if( hex>='0' && hex<='9' )
return hex - '0';
if( hex>='a' && hex<='z' )
return hex - 'a' + 10;
if( hex>='A' && hex<='Z' )
return hex - 'A' + 10;
return 0;
}
void DbBase::UnescapeBin(const char * str, size_t len, std::string & out, bool clear_out)
{
if( clear_out )
out.clear();
if( len < 2 || str[0]!='\\' || str[1]!='x' )
{
log << log1 << "Db: unsupported binary format (skipping)" << logend;
return;
}
for(size_t i=2 ; i + 1 < len ; i+=2 )
{
int c1 = UnescapeBinHexToDigit(str[i]);
int c2 = UnescapeBinHexToDigit(str[i+1]);
out += ((c1 << 4) | c2);
}
}
/*
end of converting from bytea
*/
} // namespace Winix

View File

@ -1,143 +0,0 @@
/*
* 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) 2010-2018, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_db_dbbase
#define headerfile_winix_db_dbbase
#include "dbconn.h"
#include "dbtextstream.h"
#include <vector>
#include <string>
#include "core/error.h"
#include "space/spaceparser.h"
#include "date/date.h"
#include "core/winixbase.h"
namespace Winix
{
class DbBase : public WinixBase
{
public:
DbBase();
void SetConn(DbConn * conn);
void SetConn(DbConn & conn);
DbConn * GetConn();
void LogQueries(bool log_q);
PGresult * AssertQuery(const char * query);
PGresult * AssertQuery(const DbTextStream & query);
PGresult * AssertQuery(const char * q, ExecStatusType t);
PGresult * AssertQuery(const DbTextStream & query, ExecStatusType t);
void AssertResult(PGresult * r, ExecStatusType t);
int AssertColumn(PGresult * r, const char * column_name);
const char * AssertValue(PGresult * r, int row, int col);
const std::wstring & AssertValueWide(PGresult * r, int row, int col); // warning: this method uses a static buffer
void AssertValueWide(PGresult * r, int row, int col, std::wstring & result);
void AssertValueBin(PGresult * r, int row, int col, std::string & result);
long AssertValueLong(PGresult * r, int row, int col);
int AssertValueInt(PGresult * r, int row, int col);
bool AssertValueBool(PGresult * r, int row, int col);
unsigned long AssertValueULong(PGresult * r, int row, int col);
unsigned int AssertValueUInt(PGresult * r, int row, int col);
pt::Date AssertValueDate(PGresult * r, int row, int col);
bool AssertValueSpace(PGresult * r, int row, int col, pt::Space & space);
void ClearResult(PGresult * r);
long AssertCurrval(const char * table);
bool IsNull(PGresult * r, int row, int col);
int Rows(PGresult * r);
int Cols(PGresult * r);
long AffectedRows(PGresult * r);
void CreateIdList(const std::vector<long> & id_tab, std::wstring & list, bool add_parentheses = true);
Error DoCommand(const DbTextStream & command);
Error DoCommand(const char * command);
Error BeginTrans();
Error RollbackTrans();
Error CommitTrans();
Error EndTrans(Error err);
// new API (returns only bool)
bool EndTrans(bool everything_ok);
void UnescapeBin(const char * str, size_t len, std::string & out, bool clear_out = true);
protected:
// a helper method for escaping strings
template<class RawType>
DbTextStream::RawText<RawType> R(const RawType & par)
{
return DbTextStream::RawText<RawType>(par);
}
DbConn * db_conn;
bool log_queries;
private:
// static int CharToInt(char c);
// static bool IsCorrectOctalDigit(char c);
// static int UnescapeBin(const char * str, size_t & i, size_t len);
char UnescapeBinHexToDigit(char hex);
DbTextStream bquery;
pt::SpaceParser conf_parser;
};
} // namespace Winix
#endif

View File

@ -1,261 +0,0 @@
/*
* 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) 2010-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 <unistd.h>
#include "dbconn.h"
#include "core/log.h"
#include "core/error.h"
namespace Winix
{
DbConn::DbConn()
{
pg_conn = 0;
}
DbConn::~DbConn()
{
Close();
}
PGconn * DbConn::GetPgConn()
{
return pg_conn;
}
void DbConn::SetConnParam(const std::wstring & conn_string)
{
db_conn_string = conn_string;
db_host.clear();
db_hostaddr.clear();
db_port.clear();
db_database.clear();
db_user.clear();
db_pass.clear();
}
void DbConn::SetConnParam(const std::wstring & host, const std::wstring & hostaddr, const std::wstring & port,
const std::wstring & database, const std::wstring & user, const std::wstring & pass)
{
db_conn_string.clear();
db_host = host;
db_hostaddr = hostaddr;
db_port = port;
db_database = database;
db_user = user;
db_pass = pass;
}
void DbConn::Connect()
{
Close();
conn_info.Clear();
conn_info.SetExtented(false);
if( !db_conn_string.empty() )
{
conn_info << R(db_conn_string);
}
else
{
conn_info << R("dbname=") << db_database
<< R(" user=") << db_user
<< R(" password=") << db_pass;
if( !db_host.empty() )
{
conn_info << R(L" host=") << db_host;
}
if( !db_hostaddr.empty() )
{
conn_info << R(L" hostaddr=") << db_hostaddr;
}
if( !db_port.empty() )
{
conn_info << R(L" port=") << db_port;
}
}
pg_conn = PQconnectdb(conn_info.CStr());
// warning! pg_conn can be not null but there cannnot be a connection established
// use PQstatus(pg_conn) to check whether the connection works fine
}
void DbConn::LogNoConnection(size_t attempts)
{
log << log2 << "Db: connection to the database cannot be established";
log << ", (" << attempts << " attempt(s))" << logend;
log << logsave;
}
void DbConn::LogConnectionSocket()
{
log << log2 << "Db: connection to the database works fine" << logend;
log << log3 << "Db: connection socket: " << PQsocket(pg_conn) << logend;
log << logsave;
}
bool DbConn::WaitForConnection(size_t attempts_max, size_t attempt_delay)
{
size_t attempts = 0;
bool attempts_exceeded = false;
if( attempt_delay == 0 )
attempt_delay = 1;
if( attempt_delay > 120 )
attempt_delay = 120;
if( !pg_conn || PQstatus(pg_conn) != CONNECTION_OK )
{
log << log3 << "Db: waiting for the db to be ready...." << logend << logsave;
while( !attempts_exceeded && !AssertConnection(false, false) )
{
if( attempts_max != 0 )
{
attempts += 1;
attempts_exceeded = (attempts >= attempts_max);
}
if( !attempts_exceeded )
{
sleep(attempt_delay);
}
}
}
if( attempts_exceeded )
{
LogNoConnection(attempts);
}
else
{
LogConnectionSocket();
}
return !attempts_exceeded;
}
void DbConn::Close()
{
if( pg_conn )
{
PQfinish(pg_conn);
pg_conn = 0;
}
}
bool DbConn::AssertConnection(bool put_log, bool throw_if_no_connection)
{
bool was_connection = true;
if( !pg_conn )
{
was_connection = false;
Connect();
}
else
if( PQstatus(pg_conn) != CONNECTION_OK )
{
if( put_log )
log << log2 << "Db: connection to the database is lost, trying to recover" << logend;
was_connection = false;
PQreset(pg_conn);
}
if( pg_conn && PQstatus(pg_conn) == CONNECTION_OK )
{
if( !was_connection )
{
if( put_log )
LogConnectionSocket();
SetDbParameters();
}
return true;
}
else
{
if( put_log )
log << log1 << "Db: connection to db server cannot be established" << logend;
if( throw_if_no_connection )
throw Error(WINIX_ERR_DB_FATAL_ERROR_DURING_CONNECTING);
return false;
}
}
void DbConn::SetDbParameters()
{
if( PQsetClientEncoding(pg_conn, "UTF8") == -1 )
log << log1 << "Db: Can't set the proper client encoding" << logend;
}
} // namespace Winix

View File

@ -1,613 +0,0 @@
/*
* 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) 2010-2021, 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 "dbtextstream.h"
#include "utf8/utf8.h"
namespace Winix
{
DbTextStream::DbTextStream()
{
was_param = false;
ext_escape = true;
}
void DbTextStream::SetExtented(bool ext)
{
ext_escape = ext;
}
/*
without escaping
*/
DbTextStream & DbTextStream::PutText(const char * str)
{
TextStream<std::string>::operator<<(str);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::PutText(const std::string * str)
{
return PutText(str->c_str());
}
DbTextStream & DbTextStream::PutText(const std::string & str)
{
return PutText(str.c_str());
}
DbTextStream & DbTextStream::PutText(const wchar_t * str)
{
TextStream<std::string>::operator<<(str);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::PutText(const std::wstring * str)
{
return PutText(str->c_str());
}
DbTextStream & DbTextStream::PutText(const std::wstring & str)
{
return PutText(str.c_str());
}
DbTextStream & DbTextStream::operator<<(RawText<const char*> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<const wchar_t*> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<const std::string*> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<const std::wstring*> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<std::string> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<std::wstring> raw)
{
return PutText(raw.par);
}
DbTextStream & DbTextStream::operator<<(RawText<bool> raw)
{
if( raw.par )
PutText("true");
else
PutText("false");
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<char> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<wchar_t> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<int> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<long> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<unsigned int> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<unsigned long> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<double> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<void*> raw)
{
TextStream<std::string>::operator<<(raw.par);
was_param = false;
return *this;
}
DbTextStream & DbTextStream::operator<<(RawText<pt::Date> date)
{
tmp_stream.Clear();
date.par.Serialize(tmp_stream);
pt::wide_to_utf8(tmp_stream.CStr(), buffer, false);
tmp_stream.Clear();
was_param = false;
return *this;
}
/*
with escaping
*/
// get hex digit for c_ between <0, 15>
char DbTextStream::EBinGetHex(char c)
{
if( c < 10 )
return c + '0';
return c - 10 + 'A';
}
DbTextStream & DbTextStream::EBinPutChar(char c)
{
buffer += EBinGetHex(((unsigned char)c) >> 4);
buffer += EBinGetHex(((unsigned char)c) & 0x0f);
return *this;
}
DbTextStream & DbTextStream::ETextPutChar(char c)
{
if( c == '\\' )
buffer += "\\\\";
else
if( c == '\'' )
buffer += "\\\'"; // don't use "''" because we use the method for PQconnectdb too
else
if( c != 0 )
buffer += c;
return *this;
}
DbTextStream & DbTextStream::ETextPutChar(wchar_t c)
{
if( c == '\\' )
buffer += "\\\\";
else
if( c == '\'' )
buffer += "\\\'"; // don't use "''" because we use the method for PQconnectdb too
else
if( c != 0 )
pt::int_to_utf8(int(c), buffer, false);
return *this;
}
DbTextStream & DbTextStream::EPutText(const char * str)
{
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += '\'';
for( ; *str ; ++str )
ETextPutChar(*str);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::EPutText(const std::string * str)
{
return EPutText(str->c_str());
}
DbTextStream & DbTextStream::EPutText(const std::string & str)
{
return EPutText(str.c_str());
}
DbTextStream & DbTextStream::EPutText(const wchar_t * str)
{
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += '\'';
for( ; *str ; ++str )
ETextPutChar(*str);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::EPutText(const std::wstring * str)
{
return EPutText(str->c_str());
}
DbTextStream & DbTextStream::EPutText(const std::wstring & str)
{
return EPutText(str.c_str());
}
// this method can escaped 0 in the middle of the string
DbTextStream & DbTextStream::EPutBin(const char * str, size_t len)
{
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += "\'\\\\x";
for(size_t i = 0 ; i < len ; ++i)
EBinPutChar(str[i]);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::EPutBin(const std::string * str)
{
return EPutBin(str->c_str(), str->size());
}
DbTextStream & DbTextStream::EPutBin(const std::string & str)
{
return EPutBin(str.c_str(), str.size());
}
DbTextStream & DbTextStream::operator<<(const char * str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(const std::string * str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(const std::string & str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(const wchar_t * str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(const std::wstring * str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(const std::wstring & str)
{
return EPutText(str);
}
DbTextStream & DbTextStream::operator<<(bool v)
{
if( v )
EPutText("true");
else
EPutText("false");
return *this;
}
DbTextStream & DbTextStream::operator<<(char v)
{
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += '\'';
ETextPutChar(v);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(wchar_t v)
{
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += '\'';
ETextPutChar(v);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(int v)
{
if( was_param )
buffer += ", ";
TextStream<std::string>::operator<<(v);
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(long v)
{
if( was_param )
buffer += ", ";
TextStream<std::string>::operator<<(v);
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(unsigned int v)
{
if( was_param )
buffer += ", ";
TextStream<std::string>::operator<<(v);
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(unsigned long v)
{
if( was_param )
buffer += ", ";
TextStream<std::string>::operator<<(v);
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(double v)
{
if( was_param )
buffer += ", ";
TextStream<std::string>::operator<<(v);
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(const void * v)
{
if( was_param )
buffer += ", ";
buffer += '\''; // !! not needed here?
TextStream<std::string>::operator<<(v);
buffer += '\'';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(const std::vector<long> & tabid)
{
if( was_param )
buffer += ", ";
buffer += '(';
for(size_t i=0 ; i<tabid.size(); ++i)
{
TextStream<std::string>::operator<<(tabid[i]);
if( i + 1 < tabid.size() )
buffer += ',';
}
buffer += ')';
was_param = true;
return *this;
}
DbTextStream & DbTextStream::operator<<(const pt::Space & space)
{
tmp_stream.Clear();
// !! IMPROVE ME
// we can calculate how much memory is needed before serializing
space.serialize_to_space_stream(tmp_stream, true);
operator<<(tmp_stream.Str());
tmp_stream.Clear();
return *this;
}
DbTextStream & DbTextStream::operator<<(const pt::Date & date)
{
tmp_stream.Clear();
date.Serialize(tmp_stream);
operator<<(tmp_stream.Str());
tmp_stream.Clear();
return *this;
}
} // namespace Winix

View File

@ -1,241 +0,0 @@
/*
* 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) 2010-2014, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_db_dbtextstream
#define headerfile_winix_db_dbtextstream
#include <ctime>
#include "core/textstream.h"
#include "textstream/textstream.h"
namespace Winix
{
/*
DbTextStream is used as a buffer for creating a database's query
By default all operators<< escape its string artuments. If you don't want
to escape an argument you should use a helper function R() (raw argument)
note: you have to define the function yourself, we do not provide it
because such a short name would make a mess in namespaces
sample:
create a helper function R as follows:
template<class RawType>
DbTextStream::RawText<RawType> R(const RawType & par)
{
return DbTextStream::RawText<RawType>(par);
}
now you can use DbTextStream in an easy way:
DbTextStream query;
std::string key = "some string";
query << R("select * from table where key=") << key << R(";");
in above example only the key is escaped.
Also with escaping operators<< insert commas between parameters, e.g.:
query << R("insert into table (key1, key2, key3) values (")
<< key1
<< key2
<< key3
<< R(");");
between key1 key2 and key3 are commas inserted automatically
*/
class DbTextStream : public TextStream<std::string>
{
public:
/*
a helper struct to select a proper operator<<
(for non-escaping versions of these operators)
*/
template<class RawType>
struct RawText
{
const RawType & par;
RawText(const RawText<RawType> & p) : par(p.par) {}
RawText(const RawType & p) : par(p) {}
};
DbTextStream();
// extented escaping: adding E character before the first quote e.g. E'string'
// default: true
void SetExtented(bool ext);
/*
without escaping
*/
DbTextStream & PutText(const char *);
DbTextStream & PutText(const std::string *);
DbTextStream & PutText(const std::string &);
DbTextStream & PutText(const wchar_t * str);
DbTextStream & PutText(const std::wstring * str);
DbTextStream & PutText(const std::wstring & str);
/*
we need this template operator for such calling:
dbtextstream_object << R("some string");
"some string" is actually a table (not a pointer)
*/
template<size_t str_size>
DbTextStream & operator<<(RawText<char [str_size]> raw) { return PutText(raw.par); }
template<size_t str_size>
DbTextStream & operator<<(RawText<wchar_t [str_size]> raw) { return PutText(raw.par); }
DbTextStream & operator<<(RawText<const char*> raw);
DbTextStream & operator<<(RawText<const wchar_t*> raw);
DbTextStream & operator<<(RawText<const std::string*> raw);
DbTextStream & operator<<(RawText<const std::wstring*> raw);
DbTextStream & operator<<(RawText<std::string> raw);
DbTextStream & operator<<(RawText<std::wstring> raw);
DbTextStream & operator<<(RawText<bool> raw);
DbTextStream & operator<<(RawText<char> raw);
DbTextStream & operator<<(RawText<wchar_t> raw);
DbTextStream & operator<<(RawText<int> raw);
DbTextStream & operator<<(RawText<long> raw);
DbTextStream & operator<<(RawText<unsigned int> raw);
DbTextStream & operator<<(RawText<unsigned long> raw);
DbTextStream & operator<<(RawText<double> raw);
DbTextStream & operator<<(RawText<void*> raw);
DbTextStream & operator<<(RawText<pt::Date> date);
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
DbTextStream & operator<<(RawText<pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> > raw);
/*
with escaping
*/
DbTextStream & EBinPutChar(char c);
DbTextStream & ETextPutChar(char c);
DbTextStream & ETextPutChar(wchar_t c);
DbTextStream & EPutText(const char * str);
DbTextStream & EPutText(const std::string * str);
DbTextStream & EPutText(const std::string & str);
DbTextStream & EPutText(const wchar_t * str);
DbTextStream & EPutText(const std::wstring * str);
DbTextStream & EPutText(const std::wstring & str);
DbTextStream & EPutBin(const char * str, size_t len);
DbTextStream & EPutBin(const std::string * str);
DbTextStream & EPutBin(const std::string & str);
DbTextStream & operator<<(const char * str);
DbTextStream & operator<<(const std::string * str);
DbTextStream & operator<<(const std::string & str);
DbTextStream & operator<<(const wchar_t * str);
DbTextStream & operator<<(const std::wstring * str);
DbTextStream & operator<<(const std::wstring & str);
DbTextStream & operator<<(bool);
DbTextStream & operator<<(char);
DbTextStream & operator<<(wchar_t);
DbTextStream & operator<<(int);
DbTextStream & operator<<(long);
DbTextStream & operator<<(unsigned int);
DbTextStream & operator<<(unsigned long);
DbTextStream & operator<<(double);
DbTextStream & operator<<(const void *);
DbTextStream & operator<<(const std::vector<long> & tabid);
DbTextStream & operator<<(const pt::Space & space);
DbTextStream & operator<<(const pt::Date & date);
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
DbTextStream & operator<<(const pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> & arg);
private:
bool was_param;
bool ext_escape;
TextStream<std::wstring> tmp_stream;
char EBinGetHex(char c);
};
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
DbTextStream & DbTextStream::operator<<(RawText<pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> > raw)
{
TextStream<std::string>::operator<<(raw.par);
return *this;
}
template<typename arg_char_type, size_t arg_stack_size, size_t arg_heap_block_size>
DbTextStream & DbTextStream::operator<<(const pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size> & arg)
{
typename pt::TextStreamBase<arg_char_type, arg_stack_size, arg_heap_block_size>::const_iterator i;
if( was_param )
buffer += ", ";
if( ext_escape )
buffer += 'E';
buffer += '\'';
for(i=arg.begin() ; i != arg.end() ; ++i)
ETextPutChar(*i);
buffer += '\'';
was_param = true;
return *this;
}
} // namespace Winix
#endif

View File

@ -35,7 +35,6 @@
#include "account.h"
#include "core/log.h"
#include "core/misc.h"
#include "functions/functions.h"
@ -53,7 +52,7 @@ Account::Account()
bool Account::ActivateAccount(User * puser, long code, bool use_ses_log)
bool Account::ActivateAccount(User * puser, long code)
{
pt::Space * user_code_space = puser->admin_env.get_space(L"activation_code");
@ -68,8 +67,8 @@ bool Account::ActivateAccount(User * puser, long code, bool use_ses_log)
{
log << log2 << "Account: account: " << puser->login << " activated" << logend;
if( use_ses_log )
slog << loginfo << T(L"account_activated") << logend;
// if( use_ses_log )
// slog << loginfo << T(L"account_activated") << logend;
return true;
}
@ -85,23 +84,23 @@ bool Account::ActivateAccount(User * puser, long code, bool use_ses_log)
log << log2 << "Account: incorrect activation code" << logend;
if( use_ses_log )
slog << logerror << T(L"incorrect_activation_code") << logend;
// if( use_ses_log )
// slog << logerror << T(L"incorrect_activation_code") << logend;
}
}
else
{
log << log1 << "Account: there is no activation_code value in an admin environment" << logend;
if( use_ses_log )
slog << loginfo << T(L"account_cannot_be_activated") << logend;
// if( use_ses_log )
// slog << loginfo << T(L"account_cannot_be_activated") << logend;
}
return false;
}
bool Account::ActivateAccount(const std::wstring & login, long code, bool use_ses_log)
bool Account::ActivateAccount(const std::wstring & login, long code)
{
bool result = false;
User * puser = system->users.GetUser(login);
@ -110,14 +109,14 @@ bool Account::ActivateAccount(const std::wstring & login, long code, bool use_se
{
if( puser->status == WINIX_ACCOUNT_NOT_ACTIVATED )
{
result = ActivateAccount(puser, code, use_ses_log);
result = ActivateAccount(puser, code);
}
else
{
log << log2 << "Account: this account is already activated" << logend;
if( use_ses_log )
slog << loginfo << T(L"account_already_activated") << logend;
// if( use_ses_log )
// slog << loginfo << T(L"account_already_activated") << logend;
}
}
else
@ -137,7 +136,7 @@ void Account::ActivateAccount()
if( !login.empty() )
{
ActivateAccount(login, code, true);
ActivateAccount(login, code);
system->RedirectToLastItem();
}
}

View File

@ -54,11 +54,11 @@ public:
void MakeGet();
void MakePost();
bool ActivateAccount(const std::wstring & login, long code, bool use_ses_log = false);
bool ActivateAccount(const std::wstring & login, long code);
private:
bool ActivateAccount(User * puser, long code, bool use_ses_log);
bool ActivateAccount(User * puser, long code);
void ActivateAccount();
};

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -69,14 +69,14 @@ return true;
bool AddUser::IsLoginCorrect(const std::wstring & login, bool use_ses_log)
bool AddUser::IsLoginCorrect(const std::wstring & login)
{
if( login.empty() )
{
log << log2 << "AddUser: login can't be empty" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_login_empty") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_login_empty") << logend;
return false;
}
@ -85,9 +85,9 @@ bool AddUser::IsLoginCorrect(const std::wstring & login, bool use_ses_log)
{
log << log2 << "AddUser: login can't be longer than: " << WINIX_ACCOUNT_MAX_LOGIN_SIZE << " characters" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_login_too_big") << " " << WINIX_ACCOUNT_MAX_LOGIN_SIZE
<< " " << T("adduser_err_login_too_big2") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_login_too_big") << " " << WINIX_ACCOUNT_MAX_LOGIN_SIZE
// << " " << T("adduser_err_login_too_big2") << logend;
return false;
}
@ -96,8 +96,8 @@ bool AddUser::IsLoginCorrect(const std::wstring & login, bool use_ses_log)
{
log << log2 << "AddUser: incorrect login characters" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_login_incorrect_chars") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_login_incorrect_chars") << logend;
return false;
}
@ -106,8 +106,8 @@ bool AddUser::IsLoginCorrect(const std::wstring & login, bool use_ses_log)
{
log << log2 << "AddUser: such user already exists" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_user_exists") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_user_exists") << logend;
return false;
}
@ -117,15 +117,15 @@ return true;
bool AddUser::IsEmailCorrect(const std::wstring & email, bool use_ses_log)
bool AddUser::IsEmailCorrect(const std::wstring & email)
{
if( email.size() > WINIX_ACCOUNT_MAX_EMAIL_SIZE )
{
log << log2 << "AddUser: email can't be longer than: " << WINIX_ACCOUNT_MAX_EMAIL_SIZE << " characters" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_email_too_big") << " " << WINIX_ACCOUNT_MAX_EMAIL_SIZE
<< " " << T("adduser_err_email_too_big2") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_email_too_big") << " " << WINIX_ACCOUNT_MAX_EMAIL_SIZE
// << " " << T("adduser_err_email_too_big2") << logend;
return false;
}
@ -134,8 +134,8 @@ bool AddUser::IsEmailCorrect(const std::wstring & email, bool use_ses_log)
{
log << log2 << "AddUser: email: " << email << " does not seem to be correct" << logend;
if( use_ses_log )
slog << logerror << T(L"adduser_err_email_incorrect") << logend;
// if( use_ses_log )
// slog << logerror << T(L"adduser_err_email_incorrect") << logend;
return false;
}
@ -210,8 +210,7 @@ bool AddUser::AddNewUser(const std::wstring & login,
const std::wstring & pass,
const std::wstring & email,
bool autoactivate,
bool try_login,
bool use_ses_log)
bool try_login)
{
user.set_connector(model_connector);
user.clear();
@ -248,8 +247,8 @@ bool AddUser::AddNewUser(const std::wstring & login,
{
system->notify.ActivateAccount(user.login, user.email, code);
if( use_ses_log )
slog << loginfo << T(L"account_email_sent") << logend;
// if( use_ses_log )
// slog << loginfo << T(L"account_email_sent") << logend;
}
return true;
@ -272,9 +271,9 @@ void AddUser::MakePost()
// or some other place
functions->fun_passwd.set_dependency(this);
if( !IsLoginCorrect(login, true) ||
!IsEmailCorrect(email, true) ||
!functions->fun_passwd.IsPasswordCorrect(pass, conf_pass, true) )
if( !IsLoginCorrect(login) ||
!IsEmailCorrect(email) ||
!functions->fun_passwd.IsPasswordCorrect(pass, conf_pass) )
return;
if( cur->session->puser && cur->session->puser->is_super_user )
@ -285,7 +284,7 @@ void AddUser::MakePost()
log << log2 << "AddUser: account activated by an admin" << logend;
}
if( AddNewUser(login, pass, email, autoactivate, true, true) )
if( AddNewUser(login, pass, email, autoactivate, true) )
system->RedirectToLastItem();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2021, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -54,8 +54,8 @@ public:
void MakePost();
void MakeGet();
bool IsLoginCorrect(const std::wstring & login, bool use_ses_log = false);
bool IsEmailCorrect(const std::wstring & email, bool use_ses_log = false);
bool IsLoginCorrect(const std::wstring & login);
bool IsEmailCorrect(const std::wstring & email);
bool HasLoginCorrectChars(const std::wstring & login);
bool AddNewUser(User & user, const std::wstring & pass);
@ -64,8 +64,7 @@ public:
const std::wstring & pass,
const std::wstring & email,
bool autoactivate,
bool try_login,
bool use_ses_log = false);
bool try_login);
private:

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -60,7 +60,6 @@ void Chmod::MakePost()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.Change(false, true);
}
@ -70,7 +69,6 @@ void Chmod::MakeGet()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.CheckAccess();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -61,7 +61,6 @@ void Chown::MakePost()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.Change(true, false);
}
@ -71,7 +70,6 @@ void Chown::MakeGet()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.CheckAccess();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "default.h"
#include "core/misc.h"
namespace Winix

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "download.h"
#include "core/misc.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@
#include "env.h"
#include "core/log.h"
#include "core/misc.h"
namespace Winix
@ -73,7 +74,7 @@ bool Env::Parse(const std::wstring & env_str)
}
bool Env::EditAdminEnv(const std::wstring & env_str, bool use_ses_log)
bool Env::EditAdminEnv(const std::wstring & env_str)
{
if( Parse(env_str) )
{
@ -93,15 +94,15 @@ bool Env::EditAdminEnv(const std::wstring & env_str, bool use_ses_log)
{
log << log2 << "Env: Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
if( use_ses_log )
slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
// if( use_ses_log )
// slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
}
return false;
}
bool Env::EditEnv(const std::wstring & env_str, bool use_ses_log)
bool Env::EditEnv(const std::wstring & env_str)
{
if( Parse(env_str) )
{
@ -121,8 +122,8 @@ bool Env::EditEnv(const std::wstring & env_str, bool use_ses_log)
{
log << log2 << "Env: Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
if( use_ses_log )
slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
// if( use_ses_log )
// slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
}
return false;
@ -139,21 +140,21 @@ void Env::SaveEnv()
{
if( cur->session->puser->is_super_user )
{
status = EditAdminEnv(env_str, true);
status = EditAdminEnv(env_str);
if( status )
{
slog << loginfo << T(L"env_admin_changed_successfully") << logend;
//slog << loginfo << T(L"env_admin_changed_successfully") << logend;
}
}
}
else
{
status = EditEnv(env_str, true);
status = EditEnv(env_str);
if( status )
{
slog << loginfo << T(L"env_changed_successfully") << logend;
//slog << loginfo << T(L"env_changed_successfully") << logend;
}
}
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -66,8 +66,8 @@ private:
pt::Space space;
UserWrapper user_wrapper;
bool EditAdminEnv(const std::wstring & env_str, bool use_ses_log = false);
bool EditEnv(const std::wstring & env_str, bool use_ses_log = false);
bool EditAdminEnv(const std::wstring & env_str);
bool EditEnv(const std::wstring & env_str);
bool Parse(const std::wstring & env_str);
void SaveEnv();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2023, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "functionbase.h"
#include "core/misc.h"
#include "functions.h"
#include "templates/templates.h"
@ -60,7 +61,6 @@ FunctionBase::FunctionBase()
fun.id = -1;
fun.type = Item::file;
db = nullptr;
functions = nullptr;
templates = nullptr;
}
@ -85,12 +85,6 @@ FunctionBase::~FunctionBase()
void FunctionBase::SetDb(Db * pdb)
{
db = pdb;
}
//void FunctionBase::SetSystem(System * psystem)
//{
// system = psystem;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2023, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -37,7 +37,6 @@
#include <string>
#include <vector>
#include "db/db.h"
#include "core/request.h"
#include "core/config.h"
#include "core/synchro.h"
@ -160,7 +159,6 @@ public:
//void SetConfig(Config * pconfig);
//void SetCur(Cur * pcur);
void SetDb(Db * pdb);
//void SetSystem(System * psystem);
void SetFunctions(Functions * pfunctions);
void SetTemplates(Templates * ptemplates);
@ -172,7 +170,6 @@ public:
protected:
//Config * config;
Db * db; // depracated
//System * system;
Functions * functions;
Templates * templates;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@
#include "functionparser.h"
#include "core/log.h"
#include "core/winix_const.h"
#include "functions.h"
#include "utf8/utf8.h"
#include "models/item.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -38,7 +38,6 @@
#include <string>
#include "core/winixmodeldeprecated.h"
#include "db/db.h"
#include "core/cur.h"
#include "core/dirs.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -55,13 +55,6 @@ void Functions::SetCur(Cur * pcur)
}
void Functions::SetDb(Db * pdb)
{
db = pdb;
}
void Functions::SetSystem(System * psystem)
{
system = psystem;
@ -190,7 +183,6 @@ void Functions::SetObjects(FunctionBase * fun)
//fun->SetConfig(config);
//fun->SetCur(cur);
fun->SetDb(db);
//fun->SetSystem(system);
fun->SetFunctions(this);
fun->SetTemplates(templates);
@ -661,17 +653,17 @@ bool Functions::CheckAntispamCounter()
// !!uwaga zwracana wartosc zmieniona (true/false)
// !! IMPROVE ME in emacs.cpp there is a similar function
bool Functions::CheckAbuse(SLog * slog)
bool Functions::CheckAbuse()
{
if( !system->rebus.CheckRebus() )
{
cur->request->status = WINIX_ERR_INCORRECT_REBUS;
if( slog )
{
// put to locale
(*slog) << logerror << T(L"rebus_need_to_solve") << logend;
}
// if( slog )
// {
// // put to locale
// (*slog) << logerror << T(L"rebus_need_to_solve") << logend;
// }
return true;
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -169,7 +169,6 @@ public:
//void SetConfig(Config * pconfig);
void SetCur(Cur * pcur);
void SetDb(Db * pdb);
void SetSystem(System * psystem);
void SetTemplates(Templates * ptemplates);
//void SetSynchro(Synchro * psynchro);
@ -184,7 +183,7 @@ public:
void CheckGetPostTimes(time_t difference = 10);
bool CheckAbuse(SLog * slog = nullptr);
bool CheckAbuse();
// !! dac lepsze nazwy
void ReadItemFilterHtml(const std::wstring & html, std::wstring & html_filtered);
@ -206,7 +205,6 @@ private:
//Config * config;
Cur * cur;
Db * db;
System * system;
//Synchro * synchro;
Templates * templates;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2013-2022, Tomasz Sowa
* Copyright (c) 2013-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "imgcrop.h"
#include "core/misc.h"
#include "functions.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -89,7 +89,7 @@ size_t tmp_ip_len = sizeof(tmp_ip_str) / sizeof(char);
if( cur->session->ip_ban )
cur_ip = cur->session->ip_ban->ip;
if( wide_to_utf8(cur->request->ParamValue(L"removeip"), tmp_ip_str, tmp_ip_len) )
if( pt::wide_to_utf8(cur->request->ParamValue(L"removeip"), tmp_ip_str, tmp_ip_len) )
{
int ip = (int)inet_addr(tmp_ip_str);
session_manager->RemoveIPBan(ip);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "locale.h"
#include "core/misc.h"
#include "templates/templates.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -270,8 +270,7 @@ return true;
// if you are logging not from a webbrowser but from an application
// then probably you need check_abuse to be false
bool Login::LoginUser(const std::wstring & login, const std::wstring & password, bool remember_me,
bool use_ses_log, bool check_abuse)
bool Login::LoginUser(const std::wstring & login, const std::wstring & password, bool remember_me, bool check_abuse)
{
long user_id;
@ -305,7 +304,7 @@ long user_id;
if( CheckUserPass(login, password, user_id) )
{
if( system->users.LoginUser(user_id, remember_me, use_ses_log) )
if( system->users.LoginUser(user_id, remember_me) )
{
if( cur->session->ip_ban )
cur->session->ip_ban->incorrect_login_events = 0;
@ -328,7 +327,7 @@ void Login::MakePost()
const std::wstring & pass = cur->request->PostVar(L"password");
const std::wstring & remem = cur->request->PostVar(L"rememberme");
if( LoginUser(login, pass, !remem.empty(), true, true) )
if( LoginUser(login, pass, !remem.empty(), true) )
system->RedirectToLastItem();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2021, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -69,8 +69,7 @@ public:
bool CannotLoginFrom(const IPBan & ipban);
bool CheckUserPass(const std::wstring & login, const std::wstring & password, long & user_id);
bool LoginUser(const std::wstring & login, const std::wstring & password, bool remember_me,
bool use_ses_log = false, bool check_abuse = false);
bool LoginUser(const std::wstring & login, const std::wstring & password, bool remember_me, bool check_abuse = false);
private:

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -68,7 +68,7 @@ bool Meta::Parse(const std::wstring & meta_str)
bool Meta::EditAdminMeta(Item & item, const std::wstring & meta_str, bool use_ses_log)
bool Meta::EditAdminMeta(Item & item, const std::wstring & meta_str)
{
if( Parse(meta_str) )
{
@ -90,8 +90,8 @@ bool Meta::EditAdminMeta(Item & item, const std::wstring & meta_str, bool use_se
{
log << log2 << "Meta: Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
if( use_ses_log )
slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
// if( use_ses_log )
// slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
}
return false;
@ -99,7 +99,7 @@ return false;
bool Meta::EditMeta(Item & item, const std::wstring & meta_str, bool use_ses_log)
bool Meta::EditMeta(Item & item, const std::wstring & meta_str)
{
if( Parse(meta_str) )
{
@ -121,8 +121,8 @@ bool Meta::EditMeta(Item & item, const std::wstring & meta_str, bool use_ses_log
{
log << log2 << "Meta: Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
if( use_ses_log )
slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
// if( use_ses_log )
// slog << logerror << T("syntax_error_in_line") << ' ' << conf_parser.get_last_parsed_line() << logend;
}
return false;
@ -138,7 +138,7 @@ void Meta::ChangeAdminMeta()
{
const std::wstring & meta_str = cur->request->PostVar(L"itemmeta");
if( EditAdminMeta(*cur->request->last_item, meta_str, true) )
if( EditAdminMeta(*cur->request->last_item, meta_str) )
{
system->RedirectToLastItem();
}
@ -152,7 +152,7 @@ void Meta::ChangeMeta()
{
const std::wstring & meta_str = cur->request->PostVar(L"itemmeta");
if( EditMeta(*cur->request->last_item, meta_str, true) )
if( EditMeta(*cur->request->last_item, meta_str) )
{
system->RedirectToLastItem();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -55,8 +55,8 @@ public:
bool HasAccess();
void MakePost();
bool EditAdminMeta(Item & item, const std::wstring & meta_str, bool use_ses_log = false);
bool EditMeta(Item & item, const std::wstring & meta_str, bool use_ses_log = false);
bool EditAdminMeta(Item & item, const std::wstring & meta_str);
bool EditMeta(Item & item, const std::wstring & meta_str);
private:

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@
#include <errno.h>
#include "mv.h"
#include "core/misc.h"
#include "functions.h"
@ -155,7 +156,7 @@ bool Mv::ParseDirCheckLastName()
if( out_has_file )
{
log << log1 << "Mv: incorrent path" << logend;
slog << logerror << T("mv_incorrect_path") << logend;
//slog << logerror << T("mv_incorrect_path") << logend;
return false;
}
else
@ -212,7 +213,7 @@ bool Mv::ParseDir(const std::wstring & dst_path, bool check_access)
if( res != 0 && res != 1 )
{
slog << logerror << T("mv_incorrect_dst_path") << logend;
//slog << logerror << T("mv_incorrect_dst_path") << logend;
return false;
}
@ -232,7 +233,7 @@ bool Mv::CanRemoveRenameChild(const Item & child)
if( !parent_dir || !system->CanRemoveRenameChild(*parent_dir, child.item_content.user_id) )
{
log << log1 << "Mv: permission denied to: " << child.url << logend;
slog << logerror << T("mv_permission_denied_to") << ": " << child.url << logend;
//slog << logerror << T("mv_permission_denied_to") << ": " << child.url << logend;
return false;
}
@ -256,7 +257,7 @@ bool Mv::MoveStaticFile(const std::wstring & from, const std::wstring & to)
else
{
log << log1 << "Mv: cannot move a static file from: " << from << ", to: " << to << logend;
slog << logerror << T("internal_error") << logend;
//slog << logerror << T("internal_error") << logend;
return false;
}
}
@ -277,7 +278,7 @@ bool ok = true;
if( !ok )
{
log << log1 << "Mv: cannot create a static path" << logend;
slog << logerror << T("internal_error") << logend;
//slog << logerror << T("internal_error") << logend;
return;
}
@ -289,7 +290,7 @@ bool ok = true;
if( !item.item_content.update() )
{
log << log1 << "Mv: cannot move static file (database problem)" << logend;
slog << logerror << T("internal_error") << logend;
//slog << logerror << T("internal_error") << logend;
return;
}
@ -384,7 +385,7 @@ bool Mv::MoveDir(Item & src_dir, std::vector<Item*> & dst_dir_tab, const std::ws
if( dst_dir_id == src_dir.id || system->dirs.HasParent(dst_dir_id, src_dir.id) )
{
log << log1 << "Mv: cannot move directory to inside it" << logend;
slog << logerror << T("mv_cannot_move_to_inside");
//slog << logerror << T("mv_cannot_move_to_inside");
return false;
}
@ -439,7 +440,7 @@ bool Mv::MoveDir2(Item & src_dir, long dst_dir_id, const std::wstring & new_url,
if( src_dir.parent_id == -1 )
{
log << log1 << "Mv: the root directory cannot be moved anywhere" << logend;
slog << logerror << T("mv_cant_move_root_dir") << logend;
//slog << logerror << T("mv_cant_move_root_dir") << logend;
return false;
}
@ -455,7 +456,7 @@ bool Mv::MoveDir2(Item & src_dir, long dst_dir_id, const std::wstring & new_url,
if( !system->dirs.CreateDirTab(dst_dir_id, out_dir_tab) )
{
log << log1 << "Mv: incorrect directory" << logend;
slog << logerror << T("mv_incorrect_dir") << logend;
//slog << logerror << T("mv_incorrect_dir") << logend;
return false;
}
@ -486,7 +487,7 @@ bool Mv::MoveDir2(Item & src_dir, const std::wstring & dst_path, bool check_acce
if( src_dir.parent_id == -1 )
{
log << log1 << "Mv: the root directory cannot be moved anywhere" << logend;
slog << logerror << T("mv_cant_move_root_dir") << logend;
//slog << logerror << T("mv_cant_move_root_dir") << logend;
return false;
}
@ -499,7 +500,7 @@ bool Mv::MoveDir2(Item & src_dir, const std::wstring & dst_path, bool check_acce
if( out_has_file )
{
log << log1 << "Mv: directory can be moved only to a directory" << logend;
slog << logerror << T("mv_dir_can_be_moved_to_dir") << logend;
//slog << logerror << T("mv_dir_can_be_moved_to_dir") << logend;
return false;
}
@ -623,7 +624,7 @@ bool Mv::MoveFileOrSymlink2(Item & src_file, const std::wstring & dst_path, bool
if( out_has_file )
{
log << log3 << "Mv: such file already exists (skipping)" << logend;
slog << logerror << T("mv_file_exists") << logend;
//slog << logerror << T("mv_file_exists") << logend;
return false;
}
@ -653,7 +654,7 @@ void Mv::MoveAllFilesFromDir(Item & src_dir, std::vector<Item*> & dst_dir_tab, b
if( check_access && !system->CanRemoveRenameChild(src_dir, item_tab[i].item_content.user_id) )
{
log << log1 << "Mv: permission denied to: " << src_dir.url << logend;
slog << logerror << T("mv_permission_denied_to") << ": " << src_dir.url << logend;
//slog << logerror << T("mv_permission_denied_to") << ": " << src_dir.url << logend;
}
else
{
@ -688,14 +689,14 @@ void Mv::MoveDirContent2(Item & src_dir, long dst_dir_id, bool check_access)
if( src_dir.parent_id == -1 )
{
log << log1 << "Mv: the root directory cannot be moved anywhere" << logend;
slog << logerror << T("mv_cant_move_root_dir") << logend;
//slog << logerror << T("mv_cant_move_root_dir") << logend;
return;
}
if( !system->dirs.CreateDirTab(dst_dir_id, out_dir_tab) )
{
log << log1 << "Mv: incorrect directory" << logend;
slog << logerror << T("mv_incorrect_dir") << logend;
//slog << logerror << T("mv_incorrect_dir") << logend;
return;
}
@ -721,7 +722,7 @@ void Mv::MoveDirContent2(Item & src_dir, const std::wstring & dst_dir, bool chec
if( out_has_file || !out_filename.empty() )
{
log << log1 << "Mv: directory content can be moved only to a directory" << logend;
slog << logerror << T("mv_dir_content_can_be_moved_to_dir") << logend;
//slog << logerror << T("mv_dir_content_can_be_moved_to_dir") << logend;
return;
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2014, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "node.h"
#include "core/misc.h"
namespace Winix

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,7 +33,7 @@
*/
#include "passwd.h"
#include "core/slog.h"
#include "core/misc.h"
#include "functions/functions.h"
@ -62,14 +62,14 @@ bool Passwd::HasAccess()
bool Passwd::IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass, bool use_ses_log)
bool Passwd::IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass)
{
if( pass != conf_pass )
{
log << log2 << "Passwd: passwords are different" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_passwords_different") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_passwords_different") << logend;
return false;
}
@ -78,9 +78,9 @@ bool Passwd::IsPasswordCorrect(const std::wstring & pass, const std::wstring & c
{
log << log2 << "Passwd: password is too small" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_password_too_small") << " "
<< config->pass_min_size << " " << T("adduser_err_password_too_small2") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_password_too_small") << " "
// << config->pass_min_size << " " << T("adduser_err_password_too_small2") << logend;
return false;
}
@ -89,9 +89,9 @@ bool Passwd::IsPasswordCorrect(const std::wstring & pass, const std::wstring & c
{
log << log2 << "Passwd: password can't be longer than: " << WINIX_ACCOUNT_MAX_PASSWORD_SIZE << " characters" << logend;
if( use_ses_log )
slog << logerror << T("adduser_err_password_too_big") << " " << WINIX_ACCOUNT_MAX_PASSWORD_SIZE
<< " " << T("adduser_err_password_too_big2") << logend;
// if( use_ses_log )
// slog << logerror << T("adduser_err_password_too_big") << " " << WINIX_ACCOUNT_MAX_PASSWORD_SIZE
// << " " << T("adduser_err_password_too_big2") << logend;
return false;
}
@ -143,16 +143,16 @@ long user_id;
if( !cur->session->puser->is_super_user && !functions->fun_login.CheckUserPass(puser->login, pass_cur, user_id) )
{
log << log3 << "Passwd: incorrect current password" << logend;
slog << logerror << T("passwd_err_bad_current_password") << logend;
//slog << logerror << T("passwd_err_bad_current_password") << logend;
return;
}
if( !IsPasswordCorrect(pass_new, pass_conf, true) )
if( !IsPasswordCorrect(pass_new, pass_conf) )
return;
if( ChangePassword(puser->id, pass_new) )
{
slog << loginfo << T("passwd_password_changed") << logend;
//slog << loginfo << T("passwd_password_changed") << logend;
system->RedirectToLastItem();
}
}
@ -160,26 +160,26 @@ long user_id;
bool Passwd::SetNewPassword(User * puser, bool use_ses_log)
bool Passwd::SetNewPassword(User * puser)
{
bool result = false;
const std::wstring & pass = cur->request->PostVar(L"passwordnew");
const std::wstring & pass_conf = cur->request->PostVar(L"passwordconfirm");
if( IsPasswordCorrect(pass, pass_conf, use_ses_log) )
if( IsPasswordCorrect(pass, pass_conf) )
{
if( ChangePassword(puser->id, pass) )
{
result = true;
if( use_ses_log )
slog << loginfo << T("pw_password_changed") << logend;
// if( use_ses_log )
// slog << loginfo << T("pw_password_changed") << logend;
}
else
{
if( use_ses_log )
slog << logerror << T("service_unavailable") << logend;
// if( use_ses_log )
// slog << logerror << T("service_unavailable") << logend;
}
}
@ -188,7 +188,7 @@ return result;
bool Passwd::ResetPassword(User * puser, long code, bool use_ses_log, bool only_check_access)
bool Passwd::ResetPassword(User * puser, long code, bool only_check_access)
{
std::wstring * user_code_str = puser->admin_env.get_wstr(L"password_change_code");
@ -199,29 +199,29 @@ bool Passwd::ResetPassword(User * puser, long code, bool use_ses_log, bool only_
if( only_check_access )
return true;
else
return SetNewPassword(puser, use_ses_log);
return SetNewPassword(puser);
}
else
{
log << log2 << "Passwd: incorrect change password code" << logend;
if( use_ses_log )
slog << logerror << T(L"incorrect_change_password_code") << logend;
// if( use_ses_log )
// slog << logerror << T(L"incorrect_change_password_code") << logend;
}
}
else
{
log << log1 << "Passwd: there is no change password code in admin environment" << logend;
if( use_ses_log )
slog << loginfo << T(L"password_cannot_be_changed") << logend;
// if( use_ses_log )
// slog << loginfo << T(L"password_cannot_be_changed") << logend;
}
return false;
}
bool Passwd::ResetPassword(const std::wstring & login, long code, bool use_ses_log, bool only_check_access)
bool Passwd::ResetPassword(const std::wstring & login, long code, bool only_check_access)
{
bool result = false;
User * puser = system->users.GetUser(login);
@ -232,14 +232,14 @@ bool Passwd::ResetPassword(const std::wstring & login, long code, bool use_ses_l
if( puser->admin_env.to_long(L"password_change_time") + config->reset_password_code_expiration_time > t )
{
result = ResetPassword(puser, code, use_ses_log, only_check_access);
result = ResetPassword(puser, code, only_check_access);
}
else
{
log << log2 << "Passwd: the code has expired" << logend;
if( use_ses_log )
slog << logerror << T(L"code_expired") << logend;
// if( use_ses_log )
// slog << logerror << T(L"code_expired") << logend;
}
}
else
@ -256,7 +256,7 @@ void Passwd::ResetPassword()
const std::wstring & login = cur->request->PostVar(L"login");
long code = Tol(cur->request->PostVar(L"code"));
if( ResetPassword(login, code, true, false) )
if( ResetPassword(login, code, false) )
system->RedirectToLastItem();
}
@ -268,7 +268,7 @@ void Passwd::ShowResetPasswordForm()
if( !login.empty() )
{
if( !ResetPassword(login, code, true, true) )
if( !ResetPassword(login, code, true) )
system->RedirectToLastItem();
}
else

View File

@ -55,17 +55,17 @@ public:
void MakeGet();
void MakePost();
bool IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass, bool use_ses_log = false);
bool IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass);
bool ChangePassword(long user_id, const std::wstring & new_password);
bool ResetPassword(const std::wstring & login, long code, bool use_ses_log = false, bool only_check_access = false);
bool ResetPassword(const std::wstring & login, long code, bool only_check_access = false);
private:
void ChangePassword(User * puser);
bool ResetPassword(User * puser, long code, bool use_ses_log);
bool SetNewPassword(User * puser, bool use_ses_log);
bool ResetPassword(User * puser, long code, bool use_ses_log, bool only_check_access);
bool ResetPassword(User * puser, long code);
bool SetNewPassword(User * puser);
bool ResetPassword(User * puser, long code, bool only_check_access);
void ResetPassword();
void ShowResetPasswordForm();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -62,7 +62,6 @@ void Priv::MakePost()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.Change(true, true);
}
@ -72,7 +71,6 @@ void Priv::MakeGet()
{
priv_changer.SetCur(cur);
priv_changer.SetSystem(system);
priv_changer.SetDb(db);
priv_changer.CheckAccess();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2021, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -52,11 +52,6 @@ void PrivChanger::SetSystem(System * psystem)
system = psystem;
}
void PrivChanger::SetDb(Db * pdb)
{
db = pdb;
}
bool PrivChanger::CheckAccess()
{

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2021, Tomasz Sowa
* Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,9 +36,7 @@
#define headerfile_winix_functions_privchanger
#include "core/winixmodeldeprecated.h"
#include "core/request.h"
#include "core/system.h"
#include "db/db.h"
namespace Winix
@ -54,13 +52,11 @@ public:
void SetCur(Cur * pcur);
void SetSystem(System * psystem);
void SetDb(Db * pdb);
private:
Cur * cur;
System * system;
Db * db;
long user_id_file, group_id_file, user_id_dir, group_id_dir;
int priv_file, priv_dir;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2021, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -116,7 +116,7 @@ bool res = false;
else
{
log << log3 << "Rm: directories can be removed only with 'r' parameter" << logend;
slog << logerror << T("rm_use_r_option") << logend;
//slog << logerror << T("rm_use_r_option") << logend;
}
}
@ -154,7 +154,7 @@ void Rm::RemoveStaticFile(const std::wstring & path)
else
{
log << log1 << "Rm: I can't remove a static file: " << path << logend;
slog << logerror << T("rm_cannot_remove_static_file") << ": " << path << logend;
//slog << logerror << T("rm_cannot_remove_static_file") << ": " << path << logend;
}
}
@ -174,7 +174,7 @@ void Rm::RemoveStaticFile(const Item & item)
log << log1 << "Rm: I cannot create a path to a static file, url: "
<< item.url << ", id: " << item.id << logend;
slog << logerror << T("rm_cannot_create_static_path") << ": " << item.url << logend;
//slog << logerror << T("rm_cannot_create_static_path") << ": " << item.url << logend;
}
}
@ -234,7 +234,7 @@ bool Rm::RemoveFileOrSymlink(Item & item, bool check_access)
if( !system->CanRemoveRenameChild(*dir, item.item_content.user_id) )
{
log << log1 << "Rm: permission denied to remove: " << item.url << ", id: " << item.id << logend;
slog << logerror << T("rm_permission_denied_to") << ": " << item.url << logend;
//slog << logerror << T("rm_permission_denied_to") << ": " << item.url << logend;
return false;
}
}
@ -392,7 +392,7 @@ void Rm::RemoveCurrentDir(Item * parent_dir, Item * current_dir, bool check_acce
if( !parent_dir || !system->CanRemoveRenameChild(*parent_dir, current_dir->item_content.user_id) )
{
log << log1 << "Rm: permission denied to directory: " << current_dir->url << logend;
slog << logerror << T("rm_permission_denied_to") << ": " << current_dir->url << logend;
//slog << logerror << T("rm_permission_denied_to") << ": " << current_dir->url << logend;
return;
}
}
@ -427,7 +427,7 @@ void Rm::RemoveDirTree(Item * parent_dir, Item * current_dir, bool remove_this_d
if( check_access && !system->HasReadExecAccess(*current_dir) )
{
log << log1 << "Rm: permission denied to directory: " << current_dir->url << logend;
slog << logerror << T("rm_permission_denied_to") << ": " << current_dir->url << logend;
//slog << logerror << T("rm_permission_denied_to") << ": " << current_dir->url << logend;
return;
}
@ -455,7 +455,7 @@ void Rm::RemoveDirTree(Item * parent_dir, Item * current_dir, bool remove_this_d
else
{
log << log1 << "Rm: " << current_dir->url << " directory not empty" << logend;
slog << logerror << current_dir->url << T("rm_directory_not_empty") << logend;
//slog << logerror << current_dir->url << T("rm_directory_not_empty") << logend;
}
}
}
@ -477,7 +477,7 @@ void Rm::RemoveDirContent()
{
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
log << log3 << "Rm: directory content can be removed only with 'r' parameter" << logend;
slog << logerror << T("rm_content_use_r_option") << logend;
//slog << logerror << T("rm_content_use_r_option") << logend;
return;
}
@ -492,7 +492,7 @@ void Rm::RemoveDir()
{
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
log << log3 << "Rm: a directory can be removed only with 'r' parameter" << logend;
slog << logerror << T("rm_use_r_option") << logend;
//slog << logerror << T("rm_use_r_option") << logend;
return;
}
@ -500,7 +500,7 @@ void Rm::RemoveDir()
{
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
log << log1 << "Rm: the root directory cannot be removed" << logend;
slog << logerror << T("rm_cannot_remove_root_dir") << logend;
//slog << logerror << T("rm_cannot_remove_root_dir") << logend;
return;
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2022, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -34,6 +34,7 @@
#include <algorithm>
#include "sort.h"
#include "core/misc.h"
#include "core/plugin.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "timezone.h"
#include "core/misc.h"
namespace Winix

View File

@ -1,27 +0,0 @@
[if slog_tab]
[for slog_tab]
<div class="uk-margin [if slog_tab_is_error] uk-alert-danger[end][if slog_tab_is_warning] uk-alert-warning[end][if slog_tab_is_info] uk-alert-success[end]" data-uk-alert>
<a class="uk-alert-close" data-uk-close></a>
[if slog_tab_is_info]
{slog_info}:
[end]
[if slog_tab_is_warning]
{slog_warning}:
[end]
[if slog_tab_is_error]
{slog_error}:
[end]
[slog_tab_print]
</div>
[end]
[end]

View File

@ -474,9 +474,6 @@ cp_preserve_attr = Preserve attributes: user, group, times
cp_follow_symlinks = Follow symlinks
slog_warning = Warning
slog_error = Error
slog_info = Info
unknown_filesystem = Unknown filesystem
no_such_dir = There is not such a directory
unknown_mount_type = There is not such a mount type

View File

@ -492,9 +492,6 @@ cp_remove_defaults = Usuń atrybut 'default' z kopiowanych katalogów
cp_preserve_attr = Zachowaj atrybuty: użytkownik, grupa, czas
cp_follow_symlinks = Podążaj za linkami symbolicznymi
slog_warning = Ostrzeżenie
slog_error = Błąd
slog_info = Informacja
unknown_filesystem = Nieznany system plików
no_such_dir = Nie ma takiego katalogu
unknown_mount_type = Nieprawidłowy rodzaj punktu montowania

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2021, Tomasz Sowa
* Copyright (c) 2021-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -131,19 +131,6 @@ Groups * WinixModel::get_groups()
}
SLog * WinixModel::get_session_logger()
{
WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_session_logger();
}
return nullptr;
}
Session * WinixModel::get_session()
{
WinixModelConnector * connector = get_winix_model_connector();
@ -314,19 +301,6 @@ const Groups * WinixModel::get_groups() const
}
const SLog * WinixModel::get_session_logger() const
{
const WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_session_logger();
}
return nullptr;
}
const Session * WinixModel::get_session() const
{
const WinixModelConnector * connector = get_winix_model_connector();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2021, Tomasz Sowa
* Copyright (c) 2021-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -49,7 +49,6 @@ class Dirs;
class Mounts;
class Users;
class Groups;
class SLog;
class Session;
class User;
class Locale;
@ -69,7 +68,6 @@ public:
Mounts * get_mounts();
Users * get_users();
Groups * get_groups();
SLog * get_session_logger(); // FIXME always return null at the moment, should be set when a new request is created and clear at the end of a request
Session * get_session();
User * get_current_user();
Locale * get_locale();
@ -84,7 +82,6 @@ public:
const Mounts * get_mounts() const;
const Users * get_users() const;
const Groups * get_groups() const;
const SLog * get_session_logger() const; // FIXME always return null at the moment, should be set when a new request is created and clear at the end of a request
const Session * get_session() const;
const User * get_current_user() const;
const Locale * get_locale() const;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2021, Tomasz Sowa
* Copyright (c) 2021-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -48,7 +48,6 @@ WinixModelConnector::WinixModelConnector()
mounts = nullptr;
users = nullptr;
groups = nullptr;
slog = nullptr;
session = nullptr;
locale = nullptr;
session_manager = nullptr;
@ -99,12 +98,6 @@ Groups * WinixModelConnector::get_winix_groups()
}
SLog * WinixModelConnector::get_winix_session_logger()
{
return slog;
}
Session * WinixModelConnector::get_winix_session()
{
return session;
@ -182,12 +175,6 @@ const Groups * WinixModelConnector::get_winix_groups() const
}
const SLog * WinixModelConnector::get_winix_session_logger() const
{
return slog;
}
const Session * WinixModelConnector::get_winix_session() const
{
return session;
@ -261,12 +248,6 @@ void WinixModelConnector::set_winix_groups(Groups * groups)
}
void WinixModelConnector::set_winix_session_logger(SLog * slog)
{
this->slog = slog;
}
void WinixModelConnector::set_winix_session(Session * session)
{
this->session = session;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2021, Tomasz Sowa
* Copyright (c) 2021-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -47,7 +47,6 @@ class Dirs;
class Mounts;
class Users;
class Groups;
class SLog;
class Session;
class Locale;
class SessionManager;
@ -69,7 +68,6 @@ public:
Mounts * get_winix_mounts();
Users * get_winix_users();
Groups * get_winix_groups();
SLog * get_winix_session_logger();
Session * get_winix_session();
Locale * get_winix_locale();
SessionManager * get_winix_session_manager();
@ -84,7 +82,6 @@ public:
const Mounts * get_winix_mounts() const;
const Users * get_winix_users() const;
const Groups * get_winix_groups() const;
const SLog * get_winix_session_logger() const;
const Session * get_winix_session() const;
const Locale * get_winix_locale() const;
const SessionManager * get_winix_session_manager() const;
@ -98,7 +95,6 @@ public:
void set_winix_mounts(Mounts * mounts);
void set_winix_users(Users * users);
void set_winix_groups(Groups * groups);
void set_winix_session_logger(SLog * slog);
void set_winix_session(Session * session);
void set_winix_locale(Locale * locale);
void set_winix_session_manager(SessionManager * session_manager);
@ -115,7 +111,6 @@ protected:
Mounts * mounts;
Users * users;
Groups * groups;
SLog * slog;
Session * session;
Locale * locale;
SessionManager * session_manager;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "notify.h"
#include "core/misc.h"
#include "templates/templates.h"
#include "core/request.h"
#include "core/config.h"

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2022, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "notifythread.h"
#include "core/misc.h"
namespace Winix
@ -210,7 +211,7 @@ bool queue_end;
// second thread
void NotifyThread::SendMail()
{
notify_stream.Clear();
notify_stream.clear();
size_t lang_id = TemplatesNotifyFunctions::notify_user_msg.lang;
size_t template_index = TemplatesNotifyFunctions::notify_msg.template_index;
@ -250,7 +251,9 @@ void NotifyThread::SendMail()
generator.CanUseCache(false);
generator.Generate(notify_stream);
SendMail(TemplatesNotifyFunctions::notify_user_msg.email, notify_stream.Str());
notify_stream.to_str(msg_str);
SendMail(TemplatesNotifyFunctions::notify_user_msg.email, msg_str);
msg_str.clear();
}
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -80,6 +80,7 @@ private:
Patterns patterns;
TemplatesNotifyFunctions::NotifyStream notify_stream;
Ezc::Generator<TemplatesNotifyFunctions::NotifyStream, true> generator;
std::wstring msg_str;
virtual bool Init();
virtual bool SignalReceived();

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2018, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -50,13 +50,13 @@ Ezc::Functions<NotifyStream> ezc_functions;
NotifyUserMsg notify_user_msg;
NotifyMsg notify_msg;
static std::string qencode_tmp;
static pt::WTextStream qencode_tmp;
void fil_qencode(Info & i)
{
// QEncode can be used in other threads
QEncode(i.in.Str(), qencode_tmp);
q_encode(i.in, qencode_tmp);
i.out << qencode_tmp;
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2008-2014, Tomasz Sowa
* Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,7 +36,6 @@
#define headerfile_winix_notify_templatesnotify
#include "ezc.h"
#include "core/textstream.h"
#include "notifypool.h"
namespace Winix
@ -45,7 +44,7 @@ namespace Winix
namespace TemplatesNotifyFunctions
{
typedef TextStream<std::wstring> NotifyStream;
typedef pt::WTextStream NotifyStream;
typedef Ezc::FunInfo<NotifyStream> Info;
extern NotifyUserMsg notify_user_msg;

View File

@ -1,30 +1,36 @@
# DO NOT DELETE
./edb.o: edb.h ../../../../winix/winixd/db/dbbase.h
./edb.o: ../../../../winix/winixd/db/dbconn.h
./edb.o: ../../../../winix/winixd/db/dbtextstream.h
./edb.o: ../../../../winix/winixd/core/textstream.h
./edb.o: ../../../../winix/winixd/core/misc.h
./edb.o: ../../../../winix/winixd/core/requesttypes.h
./edb.o: edb.h export.h ../../../../morm/src/model.h
./edb.o: ../../../../pikotools/src/textstream/textstream.h
./edb.o: ../../../../pikotools/src/textstream/stream.h
./edb.o: ../../../../pikotools/src/space/space.h
./edb.o: ../../../../pikotools/src/convert/inttostr.h
./edb.o: ../../../../pikotools/src/utf8/utf8.h
./edb.o: ../../../../pikotools/src/convert/misc.h
./edb.o: ../../../../pikotools/src/textstream/stream.h
./edb.o: ../../../../pikotools/src/utf8/utf8.h
./edb.o: ../../../../pikotools/src/date/date.h
./edb.o: ../../../../pikotools/src/membuffer/membuffer.h
./edb.o: ../../../../pikotools/src/textstream/types.h
./edb.o: ../../../../pikotools/src/textstream/stream_private.h
./edb.o: ../../../../winix/winixd/core/winix_const.h
./edb.o: ../../../../pikotools/src/convert/convert.h
./edb.o: ../../../../pikotools/src/convert/inttostr.h
./edb.o: ../../../../pikotools/src/convert/patternreplacer.h
./edb.o: ../../../../pikotools/src/convert/strtoint.h
./edb.o: ../../../../pikotools/src/convert/text.h
./edb.o: ../../../../pikotools/src/convert/misc.h
./edb.o: ../../../../pikotools/src/textstream/types.h
./edb.o: ../../../../pikotools/src/convert/double.h
./edb.o: ../../../../morm/src/modelconnector.h ../../../../morm/src/clearer.h
./edb.o: ../../../../morm/src/ft.h ../../../../morm/src/dbconnector.h
./edb.o: ../../../../pikotools/src/log/log.h
./edb.o: ../../../../pikotools/src/log/filelog.h
./edb.o: ../../../../morm/src/queryresult.h
./edb.o: ../../../../morm/src/flatconnector.h
./edb.o: ../../../../morm/src/dbexpression.h
./edb.o: ../../../../morm/src/baseexpression.h
./edb.o: ../../../../morm/src/morm_types.h ../../../../morm/src/modelenv.h
./edb.o: ../../../../morm/src/modeldata.h ../../../../morm/src/cursorhelper.h
./edb.o: ../../../../morm/src/finderhelper.h
./edb.o: ../../../../morm/src/fieldvaluehelper.h
./edb.o: ../../../../morm/src/wrapper.h ../../../../morm/src/spacewrapper.h
./edb.o: ../../../../morm/src/baseobjectwrapper.h
./edb.o: ../../../../morm/src/modelcontainerwrapper.h
./edb.o: ../../../../morm/src/select.h ../../../../morm/src/flatexpression.h
./edb.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h exportftp.h
./edb.o: exportdir.h ../../../../winix/winixd/core/dirs.h
./edb.o: ../../../../winix/winixd/core/dircontainer.h
./edb.o: ../../../../winix/winixd/core/winixbase.h
./edb.o: ../../../../winix/winixd/core/config.h
./edb.o: ../../../../pikotools/src/space/spaceparser.h
@ -32,29 +38,10 @@
./edb.o: ../../../../pikotools/src/convert/baseparser.h
./edb.o: ../../../../winix/winixd/core/log.h
./edb.o: ../../../../winix/winixd/core/logmanipulators.h
./edb.o: ../../../../pikotools/src/log/log.h
./edb.o: ../../../../pikotools/src/log/filelog.h
./edb.o: ../../../../winix/winixd/core/filelog.h
./edb.o: ../../../../winix/winixd/core/synchro.h ../../../../morm/src/morm.h
./edb.o: ../../../../morm/src/version.h ../../../../morm/src/morm_types.h
./edb.o: ../../../../morm/src/model.h ../../../../morm/src/modelconnector.h
./edb.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./edb.o: ../../../../morm/src/dbconnector.h
./edb.o: ../../../../morm/src/queryresult.h
./edb.o: ../../../../morm/src/flatconnector.h export.h
./edb.o: ../../../../morm/src/dbexpression.h
./edb.o: ../../../../morm/src/baseexpression.h
./edb.o: ../../../../morm/src/modelenv.h ../../../../morm/src/modeldata.h
./edb.o: ../../../../morm/src/cursorhelper.h
./edb.o: ../../../../morm/src/finderhelper.h
./edb.o: ../../../../morm/src/fieldvaluehelper.h
./edb.o: ../../../../morm/src/wrapper.h ../../../../morm/src/spacewrapper.h
./edb.o: ../../../../morm/src/baseobjectwrapper.h
./edb.o: ../../../../morm/src/modelcontainerwrapper.h
./edb.o: ../../../../morm/src/select.h ../../../../morm/src/flatexpression.h
./edb.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./edb.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./edb.o: ../../../../morm/src/jsonexpression.h
./edb.o: ../../../../morm/src/version.h ../../../../morm/src/finder.h
./edb.o: ../../../../morm/src/cursor.h ../../../../morm/src/jsonexpression.h
./edb.o: ../../../../morm/src/postgresqlexpression.h
./edb.o: ../../../../morm/src/xmlexpression.h
./edb.o: ../../../../morm/src/jsonconnector.h
@ -66,10 +53,6 @@
./edb.o: ../../../../winix/winixd/core/filelog.h
./edb.o: ../../../../winix/winixd/core/lock.h
./edb.o: ../../../../winix/winixd/core/synchro.h
./edb.o: ../../../../winix/winixd/core/error.h
./edb.o: ../../../../winix/winixd/core/dirs.h
./edb.o: ../../../../winix/winixd/core/dircontainer.h
./edb.o: ../../../../winix/winixd/core/winixbase.h
./edb.o: ../../../../winix/winixd/models/item.h
./edb.o: ../../../../winix/winixd/models/winixmodel.h
./edb.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -78,25 +61,22 @@
./edb.o: ../../../../winix/winixd/templates/misc.h
./edb.o: ../../../../winix/winixd/templates/localefilter.h
./edb.o: ../../../../winix/winixd/templates/locale.h
./edb.o: ../../../../winix/winixd/core/winixbase.h
./edb.o: ../../../../pikotools/src/convert/patternreplacer.h
./edb.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./edb.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./edb.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./edb.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./edb.o: ../../../../ezc/src/outstreams.h
./edb.o: ../../../../pikotools/src/convert/strtoint.h
./edb.o: ../../../../pikotools/src/convert/text.h
./edb.o: ../../../../pikotools/src/convert/misc.h ../../../../ezc/src/ezc.h
./edb.o: ../../../../ezc/src/version.h ../../../../ezc/src/generator.h
./edb.o: ../../../../ezc/src/blocks.h ../../../../ezc/src/cache.h
./edb.o: ../../../../ezc/src/functions.h ../../../../ezc/src/objects.h
./edb.o: ../../../../ezc/src/pattern.h ../../../../ezc/src/outstreams.h
./edb.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./edb.o: ../../../../ezc/src/patternparser.h
./edb.o: ../../../../winix/winixd/templates/htmltextstream.h
./edb.o: ../../../../winix/winixd/db/db.h
./edb.o: ../../../../winix/winixd/db/dbbase.h
./edb.o: ../../../../winix/winixd/models/user.h
./edb.o: ../../../../winix/winixd/models/group.h
./edb.o: ../../../../winix/winixd/core/dircontainer.h
./edb.o: ../../../../winix/winixd/core/ugcontainer.h
./edb.o: ../../../../winix/winixd/core/request.h
./edb.o: ../../../../winix/winixd/core/requesttypes.h
./edb.o: ../../../../winix/winixd/core/error.h
./edb.o: ../../../../winix/winixd/core/config.h
./edb.o: ../../../../winix/winixd/core/textstream.h
./edb.o: ../../../../winix/winixd/models/winixmodel.h
./edb.o: ../../../../winix/winixd/core/header.h
./edb.o: ../../../../winix/winixd/core/compress.h
@ -115,34 +95,27 @@
./exportinfo.o: ../../../../winix/winixd/core/synchro.h
./exportinfo.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./exportinfo.o: ../../../../winix/winixd/core/winixbase.h
./exportinfo.o: ../../../../winix/winixd/core/config.h
./exportinfo.o: ../../../../pikotools/src/space/spaceparser.h
./exportinfo.o: ../../../../pikotools/src/space/space.h
./exportinfo.o: ../../../../pikotools/src/convert/baseparser.h
./exportinfo.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./exportinfo.o: ../../../../morm/src/morm_types.h
./exportinfo.o: ../../../../morm/src/model.h
./exportinfo.o: ../../../../pikotools/src/textstream/textstream.h
./exportinfo.o: ../../../../pikotools/src/textstream/stream.h
./exportinfo.o: ../../../../pikotools/src/space/space.h
./exportinfo.o: ../../../../pikotools/src/convert/inttostr.h
./exportinfo.o: ../../../../pikotools/src/utf8/utf8.h
./exportinfo.o: ../../../../pikotools/src/convert/misc.h
./exportinfo.o: ../../../../pikotools/src/textstream/stream.h
./exportinfo.o: ../../../../pikotools/src/utf8/utf8.h
./exportinfo.o: ../../../../pikotools/src/date/date.h
./exportinfo.o: ../../../../pikotools/src/membuffer/membuffer.h
./exportinfo.o: ../../../../pikotools/src/textstream/types.h
./exportinfo.o: ../../../../pikotools/src/textstream/stream_private.h
./exportinfo.o: ../../../../winix/winixd/core/log.h
./exportinfo.o: ../../../../winix/winixd/core/logmanipulators.h
./exportinfo.o: ../../../../pikotools/src/log/log.h
./exportinfo.o: ../../../../pikotools/src/log/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/synchro.h
./exportinfo.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./exportinfo.o: ../../../../morm/src/morm_types.h
./exportinfo.o: ../../../../morm/src/model.h
./exportinfo.o: ../../../../morm/src/modelconnector.h
./exportinfo.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./exportinfo.o: ../../../../morm/src/dbconnector.h
./exportinfo.o: ../../../../pikotools/src/log/log.h
./exportinfo.o: ../../../../pikotools/src/log/filelog.h
./exportinfo.o: ../../../../morm/src/queryresult.h
./exportinfo.o: ../../../../morm/src/flatconnector.h export.h
./exportinfo.o: ../../../../morm/src/flatconnector.h export.h exportftp.h
./exportinfo.o: ../../../../morm/src/dbexpression.h
./exportinfo.o: ../../../../morm/src/baseexpression.h
./exportinfo.o: ../../../../morm/src/modelenv.h
@ -166,8 +139,6 @@
./exportinfo.o: ../../../../morm/src/postgresqlqueryresult.h
./exportinfo.o: ../../../../morm/src/xmlconnector.h
./exportinfo.o: ../../../../morm/src/transaction.h
./exportinfo.o: ../../../../winix/winixd/core/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/lock.h
./exportinfo.o: ../../../../winix/winixd/core/jobtask.h
./exportinfo.o: ../../../../winix/winixd/core/cur.h
./exportinfo.o: ../../../../winix/winixd/core/request.h
@ -180,7 +151,13 @@
./exportinfo.o: ../../../../winix/winixd/templates/misc.h
./exportinfo.o: ../../../../winix/winixd/templates/localefilter.h
./exportinfo.o: ../../../../winix/winixd/templates/locale.h
./exportinfo.o: ../../../../pikotools/src/space/spaceparser.h
./exportinfo.o: ../../../../pikotools/src/space/space.h
./exportinfo.o: ../../../../pikotools/src/convert/baseparser.h
./exportinfo.o: ../../../../pikotools/src/convert/patternreplacer.h
./exportinfo.o: ../../../../pikotools/src/convert/strtoint.h
./exportinfo.o: ../../../../pikotools/src/convert/text.h
./exportinfo.o: ../../../../pikotools/src/convert/misc.h
./exportinfo.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./exportinfo.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./exportinfo.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -192,24 +169,25 @@
./exportinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./exportinfo.o: ../../../../winix/winixd/core/error.h
./exportinfo.o: ../../../../winix/winixd/core/config.h
./exportinfo.o: ../../../../winix/winixd/core/textstream.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodel.h
./exportinfo.o: ../../../../winix/winixd/core/header.h
./exportinfo.o: ../../../../winix/winixd/core/log.h
./exportinfo.o: ../../../../winix/winixd/core/logmanipulators.h
./exportinfo.o: ../../../../winix/winixd/core/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/synchro.h
./exportinfo.o: ../../../../winix/winixd/core/compress.h
./exportinfo.o: ../../../../winix/winixd/core/winixbase.h
./exportinfo.o: ../../../../winix/winixd/core/config.h
./exportinfo.o: ../../../../winix/winixd/core/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/lock.h
./exportinfo.o: ../../../../winix/winixd/core/plugin.h
./exportinfo.o: ../../../../winix/winixd/core/pluginmsg.h
./exportinfo.o: ../../../../winix/winixd/core/plugindata.h
./exportinfo.o: ../../../../winix/winixd/core/mount.h
./exportinfo.o: ../../../../winix/winixd/core/mounts.h
./exportinfo.o: ../../../../winix/winixd/db/db.h
./exportinfo.o: ../../../../winix/winixd/db/dbbase.h
./exportinfo.o: ../../../../winix/winixd/models/user.h
./exportinfo.o: ../../../../winix/winixd/models/group.h
./exportinfo.o: ../../../../winix/winixd/core/dircontainer.h
./exportinfo.o: ../../../../winix/winixd/core/ugcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/mountparser.h
./exportinfo.o: ../../../../winix/winixd/core/session.h
./exportinfo.o: ../../../../winix/winixd/models/user.h
./exportinfo.o: ../../../../winix/winixd/core/rebus.h
./exportinfo.o: ../../../../winix/winixd/core/ipban.h
./exportinfo.o: ../../../../winix/winixd/core/loadavg.h
@ -224,6 +202,7 @@
./exportinfo.o: ../../../../winix/winixd/core/ugcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/lastcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/groups.h
./exportinfo.o: ../../../../winix/winixd/models/group.h
./exportinfo.o: ../../../../winix/winixd/core/image.h
./exportinfo.o: ../../../../winix/winixd/core/threadmanager.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -235,24 +214,9 @@
./exportinfo.o: ../../../../winix/winixd/notify/notifythread.h
./exportinfo.o: ../../../../winix/winixd/core/basethread.h
./exportinfo.o: ../../../../winix/winixd/notify/templatesnotify.h
./exportinfo.o: ../../../../winix/winixd/core/textstream.h
./exportinfo.o: ../../../../winix/winixd/core/misc.h
./exportinfo.o: ../../../../winix/winixd/core/winix_const.h
./exportinfo.o: ../../../../pikotools/src/convert/convert.h
./exportinfo.o: ../../../../pikotools/src/convert/inttostr.h
./exportinfo.o: ../../../../pikotools/src/convert/patternreplacer.h
./exportinfo.o: ../../../../pikotools/src/convert/strtoint.h
./exportinfo.o: ../../../../pikotools/src/convert/text.h
./exportinfo.o: ../../../../pikotools/src/convert/misc.h
./exportinfo.o: ../../../../pikotools/src/textstream/types.h
./exportinfo.o: ../../../../pikotools/src/convert/double.h
./exportinfo.o: ../../../../winix/winixd/core/users.h
./exportinfo.o: ../../../../winix/winixd/core/timezones.h
./exportinfo.o: ../../../../winix/winixd/core/timezone.h edb.h
./exportinfo.o: ../../../../winix/winixd/db/dbbase.h
./exportinfo.o: ../../../../winix/winixd/db/dbconn.h
./exportinfo.o: ../../../../winix/winixd/db/dbtextstream.h
./exportinfo.o: ../../../../winix/winixd/core/error.h
./exportinfo.o: ../../../../winix/winixd/core/timezone.h edb.h exportdir.h
./exportinfo.o: ../../../../winix/winixd/core/dirs.h message.h exportthread.h
./exportinfo.o: ../../../../pikotools/src/convert/text.h
./exportthread.o: exportthread.h ../../../../winix/winixd/core/basethread.h
@ -263,8 +227,9 @@
./exportthread.o: ../../../../pikotools/src/textstream/stream.h
./exportthread.o: ../../../../pikotools/src/space/space.h
./exportthread.o: ../../../../pikotools/src/convert/inttostr.h
./exportthread.o: ../../../../pikotools/src/utf8/utf8.h
./exportthread.o: ../../../../pikotools/src/convert/misc.h
./exportthread.o: ../../../../pikotools/src/textstream/stream.h
./exportthread.o: ../../../../pikotools/src/utf8/utf8.h
./exportthread.o: ../../../../pikotools/src/date/date.h
./exportthread.o: ../../../../pikotools/src/membuffer/membuffer.h
./exportthread.o: ../../../../pikotools/src/textstream/types.h
@ -276,34 +241,40 @@
./exportthread.o: ../../../../pikotools/src/convert/strtoint.h
./exportthread.o: ../../../../pikotools/src/convert/text.h
./exportthread.o: ../../../../pikotools/src/convert/misc.h
./exportthread.o: ../../../../pikotools/src/textstream/types.h
./exportthread.o: ../../../../pikotools/src/convert/double.h
./exportthread.o: ../../../../pikotools/src/convert/text.h
./funexport.o: funexport.h ../../../../winix/winixd/functions/functionbase.h
./funexport.o: ../../../../winix/winixd/db/db.h
./funexport.o: ../../../../winix/winixd/db/dbbase.h
./funexport.o: ../../../../winix/winixd/models/user.h
./funexport.o: ../../../../morm/src/model.h
./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/core/config.h
./funexport.o: ../../../../pikotools/src/space/spaceparser.h
./funexport.o: ../../../../pikotools/src/space/space.h
./funexport.o: ../../../../pikotools/src/convert/baseparser.h
./funexport.o: ../../../../pikotools/src/textstream/textstream.h
./funexport.o: ../../../../pikotools/src/textstream/stream.h
./funexport.o: ../../../../pikotools/src/space/space.h
./funexport.o: ../../../../pikotools/src/convert/inttostr.h
./funexport.o: ../../../../pikotools/src/utf8/utf8.h
./funexport.o: ../../../../pikotools/src/convert/misc.h
./funexport.o: ../../../../pikotools/src/textstream/stream.h
./funexport.o: ../../../../pikotools/src/utf8/utf8.h
./funexport.o: ../../../../pikotools/src/date/date.h
./funexport.o: ../../../../pikotools/src/membuffer/membuffer.h
./funexport.o: ../../../../pikotools/src/textstream/types.h
./funexport.o: ../../../../pikotools/src/textstream/stream_private.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/core/logmanipulators.h
./funexport.o: ../../../../pikotools/src/log/log.h
./funexport.o: ../../../../pikotools/src/log/filelog.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./funexport.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./funexport.o: ../../../../morm/src/modelconnector.h
./funexport.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./funexport.o: ../../../../morm/src/dbconnector.h
./funexport.o: ../../../../pikotools/src/log/log.h
./funexport.o: ../../../../pikotools/src/log/filelog.h
./funexport.o: ../../../../morm/src/queryresult.h
./funexport.o: ../../../../morm/src/flatconnector.h export.h
./funexport.o: ../../../../morm/src/flatconnector.h export.h exportftp.h
./funexport.o: ../../../../morm/src/dbexpression.h
./funexport.o: ../../../../morm/src/baseexpression.h
./funexport.o: ../../../../morm/src/morm_types.h
./funexport.o: ../../../../morm/src/modelenv.h
./funexport.o: ../../../../morm/src/modeldata.h
./funexport.o: ../../../../morm/src/cursorhelper.h
@ -316,19 +287,6 @@
./funexport.o: ../../../../morm/src/select.h
./funexport.o: ../../../../morm/src/flatexpression.h
./funexport.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/templates/localefilter.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../pikotools/src/space/spaceparser.h
./funexport.o: ../../../../pikotools/src/space/space.h
./funexport.o: ../../../../pikotools/src/convert/baseparser.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../winix/winixd/core/config.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/core/logmanipulators.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./funexport.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./funexport.o: ../../../../morm/src/jsonexpression.h
./funexport.o: ../../../../morm/src/postgresqlexpression.h
@ -338,11 +296,18 @@
./funexport.o: ../../../../morm/src/postgresqlqueryresult.h
./funexport.o: ../../../../morm/src/xmlconnector.h
./funexport.o: ../../../../morm/src/transaction.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/lock.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../winix/winixd/notify/notify.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/notify/notifypool.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/templates/patterns.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../pikotools/src/convert/patternreplacer.h
./funexport.o: ../../../../pikotools/src/convert/strtoint.h
./funexport.o: ../../../../pikotools/src/convert/text.h
./funexport.o: ../../../../pikotools/src/convert/misc.h
./funexport.o: ../../../../winix/winixd/templates/localefilter.h
./funexport.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./funexport.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./funexport.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -351,54 +316,38 @@
./funexport.o: ../../../../ezc/src/expressionparser.h
./funexport.o: ../../../../ezc/src/models.h
./funexport.o: ../../../../ezc/src/patternparser.h
./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h
./funexport.o: ../../../../winix/winixd/models/winixmodel.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funexport.o: ../../../../winix/winixd/models/group.h
./funexport.o: ../../../../winix/winixd/core/dircontainer.h
./funexport.o: ../../../../winix/winixd/core/ugcontainer.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/notify/notify.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/notify/notifypool.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/templates/patterns.h
./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/notify/notifythread.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/notify/templatesnotify.h
./funexport.o: ../../../../winix/winixd/core/textstream.h
./funexport.o: ../../../../winix/winixd/core/misc.h
./funexport.o: ../../../../winix/winixd/core/requesttypes.h
./funexport.o: ../../../../winix/winixd/core/winix_const.h
./funexport.o: ../../../../pikotools/src/convert/convert.h
./funexport.o: ../../../../pikotools/src/convert/inttostr.h
./funexport.o: ../../../../pikotools/src/convert/patternreplacer.h
./funexport.o: ../../../../pikotools/src/convert/strtoint.h
./funexport.o: ../../../../pikotools/src/convert/text.h
./funexport.o: ../../../../pikotools/src/convert/misc.h
./funexport.o: ../../../../pikotools/src/textstream/types.h
./funexport.o: ../../../../pikotools/src/convert/double.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/winixrequest.h
./funexport.o: ../../../../winix/winixd/core/winixsystem.h
./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../winix/winixd/core/job.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/jobtask.h
./funexport.o: ../../../../winix/winixd/core/cur.h
./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/core/requesttypes.h
./funexport.o: ../../../../winix/winixd/models/item.h
./funexport.o: ../../../../winix/winixd/models/winixmodel.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funexport.o: ../../../../winix/winixd/models/itemcontent.h
./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h
./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h
./funexport.o: ../../../../winix/winixd/core/error.h
./funexport.o: ../../../../winix/winixd/core/config.h
./funexport.o: ../../../../winix/winixd/core/textstream.h
./funexport.o: ../../../../winix/winixd/models/winixmodel.h
./funexport.o: ../../../../winix/winixd/core/header.h
./funexport.o: ../../../../winix/winixd/core/compress.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../winix/winixd/core/lock.h
./funexport.o: ../../../../winix/winixd/core/plugin.h
./funexport.o: ../../../../winix/winixd/core/pluginmsg.h
./funexport.o: ../../../../winix/winixd/core/plugindata.h
@ -406,6 +355,7 @@
./funexport.o: ../../../../winix/winixd/core/mounts.h
./funexport.o: ../../../../winix/winixd/core/mountparser.h
./funexport.o: ../../../../winix/winixd/core/session.h
./funexport.o: ../../../../winix/winixd/models/user.h
./funexport.o: ../../../../winix/winixd/core/rebus.h
./funexport.o: ../../../../winix/winixd/core/ipban.h
./funexport.o: ../../../../winix/winixd/core/loadavg.h
@ -418,6 +368,7 @@
./funexport.o: ../../../../winix/winixd/core/ugcontainer.h
./funexport.o: ../../../../winix/winixd/core/lastcontainer.h
./funexport.o: ../../../../winix/winixd/core/groups.h
./funexport.o: ../../../../winix/winixd/models/group.h
./funexport.o: ../../../../winix/winixd/core/image.h
./funexport.o: ../../../../winix/winixd/core/threadmanager.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -429,11 +380,7 @@
./funexport.o: ../../../../winix/winixd/core/ipbancontainer.h
./funexport.o: ../../../../winix/winixd/core/sessionidmanager.h
./funexport.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./funexport.o: ../../../../winix/winixd/core/slog.h exportinfo.h edb.h
./funexport.o: ../../../../winix/winixd/db/dbbase.h
./funexport.o: ../../../../winix/winixd/db/dbconn.h
./funexport.o: ../../../../winix/winixd/db/dbtextstream.h
./funexport.o: ../../../../winix/winixd/core/error.h
./funexport.o: exportinfo.h edb.h exportdir.h
./funexport.o: ../../../../winix/winixd/core/dirs.h message.h exportthread.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/plugin.h
@ -441,32 +388,26 @@
./init.o: ../../../../winix/winixd/core/plugindata.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./init.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/date/date.h
./init.o: ../../../../pikotools/src/membuffer/membuffer.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/textstream/stream_private.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/synchro.h ../../../../morm/src/morm.h
./init.o: ../../../../morm/src/version.h ../../../../morm/src/morm_types.h
./init.o: ../../../../morm/src/model.h ../../../../morm/src/modelconnector.h
./init.o: ../../../../morm/src/modelconnector.h
./init.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./init.o: ../../../../morm/src/dbconnector.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../morm/src/queryresult.h
./init.o: ../../../../morm/src/flatconnector.h export.h
./init.o: ../../../../morm/src/flatconnector.h export.h exportftp.h
./init.o: ../../../../morm/src/dbexpression.h
./init.o: ../../../../morm/src/baseexpression.h
./init.o: ../../../../morm/src/modelenv.h ../../../../morm/src/modeldata.h
@ -487,14 +428,12 @@
./init.o: ../../../../morm/src/postgresqlqueryresult.h
./init.o: ../../../../morm/src/xmlconnector.h
./init.o: ../../../../morm/src/transaction.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/mount.h exportthread.h
./init.o: ../../../../winix/winixd/core/basethread.h message.h exportinfo.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
@ -507,32 +446,38 @@
./init.o: ../../../../winix/winixd/templates/misc.h
./init.o: ../../../../winix/winixd/templates/localefilter.h
./init.o: ../../../../winix/winixd/templates/locale.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./init.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./init.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./init.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./init.o: ../../../../ezc/src/outstreams.h
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h ../../../../ezc/src/ezc.h
./init.o: ../../../../ezc/src/version.h ../../../../ezc/src/generator.h
./init.o: ../../../../ezc/src/blocks.h ../../../../ezc/src/cache.h
./init.o: ../../../../ezc/src/functions.h ../../../../ezc/src/objects.h
./init.o: ../../../../ezc/src/pattern.h ../../../../ezc/src/outstreams.h
./init.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./init.o: ../../../../ezc/src/patternparser.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/compress.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/db/db.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/loadavg.h
@ -547,6 +492,7 @@
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -557,24 +503,9 @@
./init.o: ../../../../winix/winixd/templates/misc.h
./init.o: ../../../../winix/winixd/notify/notifythread.h
./init.o: ../../../../winix/winixd/notify/templatesnotify.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/core/misc.h
./init.o: ../../../../winix/winixd/core/winix_const.h
./init.o: ../../../../pikotools/src/convert/convert.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/convert/double.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/timezones.h
./init.o: ../../../../winix/winixd/core/timezone.h edb.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/db/dbconn.h
./init.o: ../../../../winix/winixd/db/dbtextstream.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/timezone.h edb.h exportdir.h
./init.o: ../../../../winix/winixd/core/dirs.h funexport.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/core/winixrequest.h
@ -585,7 +516,6 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/core/slog.h
./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/functions/functionparser.h
@ -638,3 +568,72 @@
./init.o: ../../../../winix/winixd/functions/who.h
./init.o: ../../../../winix/winixd/functions/vim.h
./init.o: ../../../../pikotools/src/html/htmlparser.h
./init.o: ../../../../winix/winixd/models/migration.h
./export.o: export.h ../../../../morm/src/model.h
./export.o: ../../../../pikotools/src/textstream/textstream.h
./export.o: ../../../../pikotools/src/textstream/stream.h
./export.o: ../../../../pikotools/src/space/space.h
./export.o: ../../../../pikotools/src/convert/inttostr.h
./export.o: ../../../../pikotools/src/convert/misc.h
./export.o: ../../../../pikotools/src/textstream/stream.h
./export.o: ../../../../pikotools/src/utf8/utf8.h
./export.o: ../../../../pikotools/src/date/date.h
./export.o: ../../../../pikotools/src/membuffer/membuffer.h
./export.o: ../../../../pikotools/src/textstream/types.h
./export.o: ../../../../pikotools/src/textstream/stream_private.h
./export.o: ../../../../morm/src/modelconnector.h
./export.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./export.o: ../../../../morm/src/dbconnector.h
./export.o: ../../../../pikotools/src/log/log.h
./export.o: ../../../../pikotools/src/log/filelog.h
./export.o: ../../../../morm/src/queryresult.h
./export.o: ../../../../morm/src/flatconnector.h
./export.o: ../../../../morm/src/dbexpression.h
./export.o: ../../../../morm/src/baseexpression.h
./export.o: ../../../../morm/src/morm_types.h ../../../../morm/src/modelenv.h
./export.o: ../../../../morm/src/modeldata.h
./export.o: ../../../../morm/src/cursorhelper.h
./export.o: ../../../../morm/src/finderhelper.h
./export.o: ../../../../morm/src/fieldvaluehelper.h
./export.o: ../../../../morm/src/wrapper.h
./export.o: ../../../../morm/src/spacewrapper.h
./export.o: ../../../../morm/src/baseobjectwrapper.h
./export.o: ../../../../morm/src/modelcontainerwrapper.h
./export.o: ../../../../morm/src/select.h
./export.o: ../../../../morm/src/flatexpression.h
./export.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./export.o: exportftp.h
./exportftp.o: exportftp.h ../../../../morm/src/model.h
./exportftp.o: ../../../../pikotools/src/textstream/textstream.h
./exportftp.o: ../../../../pikotools/src/textstream/stream.h
./exportftp.o: ../../../../pikotools/src/space/space.h
./exportftp.o: ../../../../pikotools/src/convert/inttostr.h
./exportftp.o: ../../../../pikotools/src/convert/misc.h
./exportftp.o: ../../../../pikotools/src/textstream/stream.h
./exportftp.o: ../../../../pikotools/src/utf8/utf8.h
./exportftp.o: ../../../../pikotools/src/date/date.h
./exportftp.o: ../../../../pikotools/src/membuffer/membuffer.h
./exportftp.o: ../../../../pikotools/src/textstream/types.h
./exportftp.o: ../../../../pikotools/src/textstream/stream_private.h
./exportftp.o: ../../../../morm/src/modelconnector.h
./exportftp.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./exportftp.o: ../../../../morm/src/dbconnector.h
./exportftp.o: ../../../../pikotools/src/log/log.h
./exportftp.o: ../../../../pikotools/src/log/filelog.h
./exportftp.o: ../../../../morm/src/queryresult.h
./exportftp.o: ../../../../morm/src/flatconnector.h export.h
./exportftp.o: ../../../../morm/src/dbexpression.h
./exportftp.o: ../../../../morm/src/baseexpression.h
./exportftp.o: ../../../../morm/src/morm_types.h
./exportftp.o: ../../../../morm/src/modelenv.h
./exportftp.o: ../../../../morm/src/modeldata.h
./exportftp.o: ../../../../morm/src/cursorhelper.h
./exportftp.o: ../../../../morm/src/finderhelper.h
./exportftp.o: ../../../../morm/src/fieldvaluehelper.h
./exportftp.o: ../../../../morm/src/wrapper.h
./exportftp.o: ../../../../morm/src/spacewrapper.h
./exportftp.o: ../../../../morm/src/baseobjectwrapper.h
./exportftp.o: ../../../../morm/src/modelcontainerwrapper.h
./exportftp.o: ../../../../morm/src/select.h
./exportftp.o: ../../../../morm/src/flatexpression.h
./exportftp.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2014, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -35,203 +35,63 @@
#include "edb.h"
#include "core/log.h"
namespace Winix
{
namespace Export
{
void EDb::SetDirs(Dirs * pdirs)
{
dirs = pdirs;
}
void EDb::SetExportCols(PGresult * r)
void EDb::GetExport(morm::ModelConnector * model_connector, long user_id, std::vector<Export> & export_tab)
{
cid = AssertColumn(r, "id");
cuser_id = AssertColumn(r, "user_id");
cdir = AssertColumn(r, "dir");
cftp_id = AssertColumn(r, "ftp_id");
cftp_dir = AssertColumn(r, "ftp_dir");
cname = AssertColumn(r, "name");
cserver = AssertColumn(r, "server");
clogin = AssertColumn(r, "login");
cpass = AssertColumn(r, "pass");
cpass_type = AssertColumn(r, "pass_type");
morm::Finder<Export> finder(model_connector);
ccan_change_ftp_params = AssertColumn(r, "can_change_ftp_params");
ccan_change_dir = AssertColumn(r, "can_change_dir");
chttp_server = AssertColumn(r, "http_server");
finder.select().where().eq(L"user_id", user_id).get_vector(export_tab);
}
void EDb::SetExportValues(PGresult * r, int row, Export & exp)
void EDb::GetExport(morm::ModelConnector * model_connector, long id, Export & exp)
{
exp.Clear();
morm::Finder<Export> finder(model_connector);
exp.id = AssertValueLong(r, row, cid);
exp.user_id = AssertValueLong(r, row, cuser_id);
exp.ftp_id = AssertValueLong(r, row, cftp_id);
exp.ftp_pass_type = AssertValueInt(r, row, cpass_type);
AssertValueWide(r, row, cdir, exp.dir);
AssertValueWide(r, row, cftp_dir, exp.ftp_dir);
AssertValueWide(r, row, cname, exp.ftp_name);
AssertValueWide(r, row, cserver, exp.ftp_server);
AssertValueWide(r, row, clogin, exp.ftp_login);
AssertValueWide(r, row, chttp_server, exp.http_server);
AssertValueWide(r, row, cpass, exp.ftp_pass);
exp.can_change_ftp_params = AssertValueBool(r, row, ccan_change_ftp_params);
exp.can_change_dir = AssertValueBool(r, row, ccan_change_dir);
finder.select().where().eq(L"id", id).get(exp);
}
bool EDb::GetExport(long user_id, std::vector<Export> & export_tab, bool clear_tab)
void EDb::GetExportDirs(morm::ModelConnector * model_connector, std::vector<ExportDir> & export_tab, bool clear_tab)
{
if( clear_tab )
export_tab.clear();
PGresult * r = 0;
bool result = true;
std::vector<Export> exports;
morm::Finder<Export> finder(model_connector);
finder.select().get_vector(exports);
try
for(size_t i=0 ; i < exports.size() ; ++i)
{
query.Clear();
query << R( "select export.id, user_id, dir, ftp_id, ftp_dir, can_change_ftp_params, can_change_dir, "
"http_server, name, server, login, pass, pass_type from plugins.export "
"left join plugins.export_ftp on ftp_id = export_ftp.id where user_id = ")
<< user_id
<< R(";");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
Item * pdir = dirs->GetDir(exports[i].dir);
SetExportCols(r);
int rows = Rows(r);
for(int i=0 ; i<rows ; ++i)
if( pdir )
{
SetExportValues(r, i, exp);
export_tab.push_back(exp);
exp_dir.id = exports[i].id;
exp_dir.dir_id = pdir->id;
export_tab.push_back(exp_dir);
}
else
{
//slog << "There is not such a directory: " << dir_temp << " (skipping)" << logend;
}
}
catch(const Error &)
{
result = false;
}
ClearResult(r);
return result;
}
bool EDb::GetExport(long id, Export & exp)
{
exp.Clear();
PGresult * r = 0;
bool result = false;
try
{
query.Clear();
query << R( "select export.id, user_id, dir, ftp_id, ftp_dir, can_change_ftp_params, can_change_dir, "
"http_server, name, server, login, pass, pass_type from plugins.export "
"left join plugins.export_ftp on ftp_id = export_ftp.id where export.id = ")
<< id
<< R(";");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
SetExportCols(r);
if( Rows(r) == 1 )
{
SetExportValues(r, 0, exp);
result = true;
}
}
catch(const Error &)
{
}
ClearResult(r);
return result;
}
bool EDb::GetExportDirs(std::vector<ExportDir> & export_tab, bool clear_tab)
{
if( clear_tab )
export_tab.clear();
PGresult * r = 0;
bool result = true;
try
{
query.Clear();
query << R( "select export.id, dir from plugins.export;");
r = AssertQuery(query);
AssertResult(r, PGRES_TUPLES_OK);
int rows = Rows(r);
cid = AssertColumn(r, "id");
cdir = AssertColumn(r, "dir");
for(int i=0 ; i<rows ; ++i)
{
exp_dir.id = AssertValueLong(r, i, cid);
AssertValueWide(r, i, cdir, dir_temp);
Item * pdir = dirs->GetDir(dir_temp);
if( pdir )
{
exp_dir.dir_id = pdir->id;
export_tab.push_back(exp_dir);
}
else
{
//slog << "There is not such a directory: " << dir_temp << " (skipping)" << logend;
}
}
}
catch(const Error &)
{
result = false;
}
ClearResult(r);
return result;
}
}
} // namespace Winix

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2014, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,28 +36,24 @@
#define headerfile_winix_plugins_export_edb
#include <vector>
#include "db/dbbase.h"
#include "export.h"
#include "exportdir.h"
#include "core/dirs.h"
namespace Winix
namespace Winix::Export
{
namespace Export
{
class EDb : public DbBase
class EDb
{
public:
void SetDirs(Dirs * pdirs);
bool GetExport(long user_id, std::vector<Export> & export_tab, bool clear_tab = true);
bool GetExport(long id, Export & exp);
bool GetExportDirs(std::vector<ExportDir> & export_tab, bool clear_tab = true);
void GetExport(morm::ModelConnector * model_connector, long user_id, std::vector<Export> & export_tab);
void GetExport(morm::ModelConnector * model_connector, long id, Export & exp);
void GetExportDirs(morm::ModelConnector * model_connector, std::vector<ExportDir> & export_tab, bool clear_tab = true);
private:
@ -65,31 +61,11 @@ private:
Export exp;
ExportDir exp_dir;
DbTextStream query;
std::wstring dir_temp;
int cid;
int cuser_id;
int cdir;
int cftp_id;
int cftp_dir;
int cname;
int cserver;
int clogin;
int cpass;
int cpass_type;
int ccan_change_ftp_params;
int ccan_change_dir;
int chttp_server;
void SetExportCols(PGresult * r);
void SetExportValues(PGresult * r, int row, Export & exp);
};
}
} // namespace Winix
#endif

View File

@ -0,0 +1,122 @@
/*
* 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) 2024, 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 "export.h"
namespace Winix::Export
{
void Export::fields()
{
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"user_id", user_id);
field(L"dir", dir);
field(L"ftp_id", export_ftp, morm::FT::foreign_key);
field(L"ftp_dir", ftp_dir);
field(L"can_change_ftp_params", can_change_ftp_params);
field(L"can_change_dir", can_change_dir);
field(L"http_server", http_server);
}
void Export::after_insert()
{
get_last_sequence_for_primary_key(L"plugins.export_id_seq", id);
}
void Export::table()
{
table_name(L"plugins", L"export");
}
bool Export::do_migration(int & current_table_version)
{
bool ok = true;
ok = ok && morm::Model::do_migration(current_table_version, 1, this, &Export::do_migration_to_1);
ok = ok && morm::Model::do_migration(current_table_version, 2, this, &Export::do_migration_to_2);
return ok;
}
bool Export::do_migration_to_1()
{
const char * str = R"sql(
CREATE SEQUENCE plugins.export_id_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807
START WITH 1
CACHE 1
NO CYCLE
OWNED BY NONE;
)sql";
return db_query(str);
}
bool Export::do_migration_to_2()
{
const char * str = R"sql(
CREATE TABLE plugins.export (
id integer NOT NULL DEFAULT nextval('export_id_seq'::regclass),
user_id bigint,
dir character varying(1024),
ftp_id bigint,
ftp_dir character varying(1024),
can_change_ftp_params boolean,
can_change_dir boolean,
http_server character varying(1024),
CONSTRAINT export_pkey PRIMARY KEY (id)
);
)sql";
return db_query(str);
}
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2014, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,67 +36,43 @@
#define headerfile_winix_plugins_export_export
#include <string>
#include "model.h"
#include "exportftp.h"
namespace Winix
{
namespace Export
{
struct ExportDir
class Export : public morm::Model
{
long id;
long dir_id;
};
public:
struct Export
{
long id;
long user_id;
std::wstring dir;
long ftp_id;
ExportFtp export_ftp;
std::wstring ftp_dir;
std::wstring ftp_name;
std::wstring ftp_server;
std::wstring ftp_login;
std::wstring ftp_pass;
int ftp_pass_type;
bool can_change_ftp_params;
bool can_change_dir;
std::wstring http_server;
Export()
{
Clear();
}
void table();
void Clear()
{
id = user_id = ftp_id = -1;
ftp_pass_type = 0;
dir.clear();
ftp_dir.clear();
ftp_name.clear();
ftp_server.clear();
ftp_login.clear();
ftp_pass.clear();
protected:
can_change_ftp_params = false;
can_change_dir = false;
void fields();
void after_insert();
bool do_migration(int & current_table_version);
bool do_migration_to_1();
bool do_migration_to_2();
http_server.clear();
}
};

View File

@ -0,0 +1,54 @@
/*
* 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) 2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_plugins_export_exportdir
#define headerfile_winix_plugins_export_exportdir
namespace Winix::Export
{
struct ExportDir
{
long id;
long dir_id;
};
}
#endif

View File

@ -0,0 +1,113 @@
/*
* 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) 2024, 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 "exportftp.h"
namespace Winix::Export
{
void ExportFtp::fields()
{
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"name", name);
field(L"server", server);
field(L"login", login);
field(L"pass", pass);
field(L"pass_type", pass_type);
}
void ExportFtp::after_insert()
{
get_last_sequence_for_primary_key(L"plugins.export_ftp_id_seq", id);
}
void ExportFtp::table()
{
table_name(L"plugins", L"export_ftp");
}
bool ExportFtp::do_migration(int & current_table_version)
{
bool ok = true;
ok = ok && morm::Model::do_migration(current_table_version, 1, this, &ExportFtp::do_migration_to_1);
ok = ok && morm::Model::do_migration(current_table_version, 2, this, &ExportFtp::do_migration_to_2);
return ok;
}
bool ExportFtp::do_migration_to_1()
{
const char * str = R"sql(
CREATE SEQUENCE plugins.export_ftp_id_seq
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9223372036854775807
START WITH 1
CACHE 1
NO CYCLE
OWNED BY NONE;
)sql";
return db_query(str);
}
bool ExportFtp::do_migration_to_2()
{
const char * str = R"sql(
CREATE TABLE plugins.export_ftp (
id integer NOT NULL DEFAULT nextval('export_ftp_id_seq'::regclass),
name character varying(256),
server character varying(1024),
login character varying(1024),
pass character varying(1024),
pass_type integer,
CONSTRAINT export_ftp_pkey PRIMARY KEY (id)
);
)sql";
return db_query(str);
}
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2010-2022, Tomasz Sowa
* Copyright (c) 2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -31,59 +31,48 @@
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_db_dbconn
#define headerfile_winix_db_dbconn
#ifndef headerfile_winix_plugins_export_exportftp
#define headerfile_winix_plugins_export_exportftp
#include <string>
#include <libpq-fe.h>
#include "dbtextstream.h"
#include "core/winixbase.h"
#include "model.h"
namespace Winix
namespace Winix::Export
{
class DbConn : public WinixBase
class ExportFtp : public morm::Model
{
public:
DbConn();
~DbConn();
long id;
std::wstring name;
std::wstring server;
std::wstring login;
std::wstring pass;
int pass_type;
void SetConnParam(const std::wstring & conn_string);
void SetConnParam(const std::wstring & host, const std::wstring & hostaddr, const std::wstring & port,
const std::wstring & database, const std::wstring & user, const std::wstring & pass);
void Connect();
bool WaitForConnection(size_t attempts_max, size_t attempt_delay);
void Close();
bool AssertConnection(bool put_log = true, bool throw_if_no_connection = true);
void SetDbParameters();
PGconn * GetPgConn();
private:
void table();
void LogNoConnection(size_t attempts);
void LogConnectionSocket();
PGconn * pg_conn;
std::wstring db_conn_string;
std::wstring db_host, db_hostaddr, db_port, db_database, db_user, db_pass;
DbTextStream conn_info;
protected:
void fields();
void after_insert();
bool do_migration(int & current_table_version);
bool do_migration_to_1();
bool do_migration_to_2();
// a helper method for escaping strings
template<class RawType>
DbTextStream::RawText<RawType> R(const RawType & par)
{
return DbTextStream::RawText<RawType>(par);
}
};
} // namespace Winix
}
#endif

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -72,12 +72,6 @@ void ExportInfo::SetEDb(EDb * pdb)
}
void ExportInfo::SetDb(Db * pdb)
{
db = pdb;
}
void ExportInfo::SetExportThread(ExportThread * pexport_thread)
{
export_thread = pexport_thread;
@ -87,7 +81,7 @@ void ExportInfo::SetExportThread(ExportThread * pexport_thread)
void ExportInfo::ReadExportDirs()
{
edb->GetExportDirs(export_dirs);
edb->GetExportDirs(model_connector, export_dirs);
}
@ -114,7 +108,7 @@ return 0;
bool ExportInfo::DecodePass(Export & exp)
{
if( exp.ftp_pass_type == 0 )
if( exp.export_ftp.pass_type == 0 )
{
}
@ -210,13 +204,15 @@ void ExportInfo::SendFile(const Item & item, bool thumb, bool put_to_recurrence_
msg.errors = 0;
if( SkipDir(exp_dir->dir_id, msg.path) && edb->GetExport(exp_dir->id, exp) )
if( SkipDir(exp_dir->dir_id, msg.path) )
{
if( DecodePass(exp) )
edb->GetExport(model_connector, exp_dir->id, exp);
if( exp.found() && DecodePass(exp) )
{
msg.ftp_login = exp.ftp_login;
msg.ftp_pass = exp.ftp_pass;
msg.ftp_server = exp.ftp_server;
msg.ftp_login = exp.export_ftp.login;
msg.ftp_pass = exp.export_ftp.pass;
msg.ftp_server = exp.export_ftp.server;
msg.http_server = exp.http_server;
system->dirs.MakePath(exp_dir->dir_id, msg.src_dir);
@ -262,13 +258,15 @@ void ExportInfo::SendDir(const Item & item)
msg.errors = 0;
if( SkipDir(exp_dir->dir_id, msg.path) && edb->GetExport(exp_dir->id, exp) )
if( SkipDir(exp_dir->dir_id, msg.path) )
{
if( DecodePass(exp) )
edb->GetExport(model_connector, exp_dir->id, exp);
if( exp.found() && DecodePass(exp) )
{
msg.ftp_login = exp.ftp_login;
msg.ftp_pass = exp.ftp_pass;
msg.ftp_server = exp.ftp_server;
msg.ftp_login = exp.export_ftp.login;
msg.ftp_pass = exp.export_ftp.pass;
msg.ftp_server = exp.export_ftp.server;
msg.http_server = exp.http_server;
system->dirs.MakePath(exp_dir->dir_id, msg.src_dir);

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,7 +36,6 @@
#define headerfile_winix_plugins_export_exportinfo
#include "core/system.h"
#include "db/db.h"
#include "export.h"
#include "edb.h"
#include "message.h"
@ -61,7 +60,6 @@ public:
void SetSystem(System * psystem);
void SetConfig(Config * pconfig);
void SetEDb(EDb * pdb);
void SetDb(Db * pdb);
void SetExportThread(ExportThread * pexport_thread);
void ReadExportDirs();
@ -83,7 +81,6 @@ private:
System * system;
Config * config;
EDb * edb;
Db * db;
ExportThread * export_thread;
bool use_rsa;

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2012-2021, Tomasz Sowa
* Copyright (c) 2012-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -36,7 +36,6 @@
#define headerfile_winix_plugins_export_funexport
#include "functions/functionbase.h"
#include "db/db.h"
#include "exportinfo.h"
namespace Winix

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2022, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -40,6 +40,7 @@
#include "edb.h"
#include "funexport.h"
#include "functions/functions.h"
#include "models/migration.h"
namespace Winix
@ -239,6 +240,20 @@ void ProcessRequest(PluginInfo & info)
}
void DatabaseMigration(PluginInfo & info)
{
bool ok = true;
Export export_model;
ExportFtp export_ftp;
ok = ok && Migration::do_migration(info.model_connector, export_model);
ok = ok && Migration::do_migration(info.model_connector, export_ftp);
info.res = ok;
}
void AddEzcFunctions(PluginInfo & info);
} // namespace
@ -251,36 +266,33 @@ void Init(PluginInfo & info)
{
using namespace Export;
edb.set_dependency(info.functions);
edb.SetConn(info.db->GetConn());
edb.LogQueries(info.config->log_db_query);
edb.SetDirs(&info.system->dirs);
export_info.set_dependency((WinixModelDeprecated*)info.functions);
export_info.SetSystem(info.system);
export_info.SetConfig(info.config);
export_info.SetEDb(&edb);
export_info.SetDb(info.db);
export_info.SetExportThread(&export_thread);
fun_export.SetExportInfo(&export_info);
// info.plugin->Assign(WINIX_TEMPLATES_CREATEFUNCTIONS, AddEzcFunctions);
info.plugin->Assign(WINIX_ADD_MOUNTS, AddMountParams);
// info.plugin->Assign(WINIX_FSTAB_CHANGED, FstabChanged);
// info.plugin->Assign(WINIX_TEMPLATES_CREATEFUNCTIONS, AddEzcFunctions);
info.plugin->Assign(WINIX_MAKE_DATABASE_MIGRATION, DatabaseMigration);
info.plugin->Assign(WINIX_ADD_MOUNTS, AddMountParams);
// info.plugin->Assign(WINIX_FSTAB_CHANGED, FstabChanged);
info.plugin->Assign(WINIX_CREATE_FUNCTIONS, AddWinixFunctions);
info.plugin->Assign(WINIX_FILE_ADDED, SendFileAdded);
info.plugin->Assign(WINIX_FILE_ADDED, SendFileAdded);
info.plugin->Assign(WINIX_FILE_CHANGED, SendFileChanged);
info.plugin->Assign(WINIX_CREATED_THUMB, SendFileThumb);
info.plugin->Assign(WINIX_IMAGE_RESIZED, SendFileResized);
info.plugin->Assign(WINIX_CREATED_THUMB, SendFileThumb);
info.plugin->Assign(WINIX_IMAGE_RESIZED, SendFileResized);
info.plugin->Assign(WINIX_FILE_PREPARE_TO_MOVE, SendFilePrepareMove);
info.plugin->Assign(WINIX_FILE_MOVED, SendFileCopied);
info.plugin->Assign(WINIX_FILE_MOVED, SendFileCopied);
info.plugin->Assign(WINIX_FILE_COPIED, SendFileCopied);
info.plugin->Assign(WINIX_DIR_CONTENT_SORTED, SendDir);
info.plugin->Assign(WINIX_DIR_CONTENT_SORTED, SendDir);
info.plugin->Assign(WINIX_FILE_REMOVED, FileRemoved);
info.plugin->Assign(WINIX_PROCESS_REQUEST, ProcessRequest);

View File

@ -1,53 +1,33 @@
# DO NOT DELETE
./gallery.o: gallery.h ../../../../winix/winixd/functions/functionbase.h
./gallery.o: ../../../../winix/winixd/db/db.h
./gallery.o: ../../../../winix/winixd/db/dbbase.h
./gallery.o: ../../../../winix/winixd/db/dbconn.h
./gallery.o: ../../../../winix/winixd/db/dbtextstream.h
./gallery.o: ../../../../winix/winixd/core/textstream.h
./gallery.o: ../../../../winix/winixd/core/misc.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/requesttypes.h
./gallery.o: ../../../../pikotools/src/textstream/textstream.h
./gallery.o: ../../../../pikotools/src/textstream/stream.h
./gallery.o: ../../../../pikotools/src/space/space.h
./gallery.o: ../../../../pikotools/src/convert/inttostr.h
./gallery.o: ../../../../pikotools/src/utf8/utf8.h
./gallery.o: ../../../../pikotools/src/convert/misc.h
./gallery.o: ../../../../pikotools/src/textstream/stream.h
./gallery.o: ../../../../pikotools/src/utf8/utf8.h
./gallery.o: ../../../../pikotools/src/date/date.h
./gallery.o: ../../../../pikotools/src/membuffer/membuffer.h
./gallery.o: ../../../../pikotools/src/textstream/types.h
./gallery.o: ../../../../pikotools/src/textstream/stream_private.h
./gallery.o: ../../../../winix/winixd/core/winix_const.h
./gallery.o: ../../../../pikotools/src/convert/convert.h
./gallery.o: ../../../../pikotools/src/convert/inttostr.h
./gallery.o: ../../../../pikotools/src/convert/patternreplacer.h
./gallery.o: ../../../../pikotools/src/convert/strtoint.h
./gallery.o: ../../../../pikotools/src/convert/text.h
./gallery.o: ../../../../pikotools/src/convert/misc.h
./gallery.o: ../../../../pikotools/src/textstream/types.h
./gallery.o: ../../../../pikotools/src/convert/double.h
./gallery.o: ../../../../winix/winixd/core/winixbase.h
./gallery.o: ../../../../winix/winixd/core/config.h
./gallery.o: ../../../../pikotools/src/space/spaceparser.h
./gallery.o: ../../../../pikotools/src/space/space.h
./gallery.o: ../../../../pikotools/src/convert/baseparser.h
./gallery.o: ../../../../winix/winixd/core/log.h
./gallery.o: ../../../../winix/winixd/core/logmanipulators.h
./gallery.o: ../../../../pikotools/src/log/log.h
./gallery.o: ../../../../pikotools/src/log/filelog.h
./gallery.o: ../../../../winix/winixd/core/filelog.h
./gallery.o: ../../../../winix/winixd/core/synchro.h
./gallery.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./gallery.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./gallery.o: ../../../../winix/winixd/models/item.h
./gallery.o: ../../../../winix/winixd/models/winixmodel.h
./gallery.o: ../../../../morm/src/model.h
./gallery.o: ../../../../morm/src/modelconnector.h
./gallery.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./gallery.o: ../../../../morm/src/dbconnector.h
./gallery.o: ../../../../pikotools/src/log/log.h
./gallery.o: ../../../../pikotools/src/log/filelog.h
./gallery.o: ../../../../morm/src/queryresult.h
./gallery.o: ../../../../morm/src/flatconnector.h
./gallery.o: ../../../../morm/src/export.h
./gallery.o: ../../../../morm/src/dbexpression.h
./gallery.o: ../../../../morm/src/baseexpression.h
./gallery.o: ../../../../morm/src/morm_types.h
./gallery.o: ../../../../morm/src/modelenv.h ../../../../morm/src/modeldata.h
./gallery.o: ../../../../morm/src/cursorhelper.h
./gallery.o: ../../../../morm/src/finderhelper.h
@ -59,6 +39,11 @@
./gallery.o: ../../../../morm/src/select.h
./gallery.o: ../../../../morm/src/flatexpression.h
./gallery.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./gallery.o: ../../../../winix/winixd/core/log.h
./gallery.o: ../../../../winix/winixd/core/logmanipulators.h
./gallery.o: ../../../../winix/winixd/core/filelog.h
./gallery.o: ../../../../winix/winixd/core/synchro.h
./gallery.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./gallery.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./gallery.o: ../../../../morm/src/jsonexpression.h
./gallery.o: ../../../../morm/src/postgresqlexpression.h
@ -68,16 +53,25 @@
./gallery.o: ../../../../morm/src/postgresqlqueryresult.h
./gallery.o: ../../../../morm/src/xmlconnector.h
./gallery.o: ../../../../morm/src/transaction.h
./gallery.o: ../../../../winix/winixd/models/winixmodelconnector.h
./gallery.o: ../../../../winix/winixd/models/itemcontent.h
./gallery.o: ../../../../winix/winixd/templates/htmltextstream.h
./gallery.o: ../../../../winix/winixd/templates/misc.h
./gallery.o: ../../../../winix/winixd/templates/localefilter.h
./gallery.o: ../../../../winix/winixd/templates/locale.h
./gallery.o: ../../../../pikotools/src/space/spaceparser.h
./gallery.o: ../../../../pikotools/src/space/space.h
./gallery.o: ../../../../pikotools/src/convert/baseparser.h
./gallery.o: ../../../../winix/winixd/core/winixbase.h
./gallery.o: ../../../../winix/winixd/core/config.h
./gallery.o: ../../../../winix/winixd/core/log.h
./gallery.o: ../../../../winix/winixd/core/filelog.h
./gallery.o: ../../../../winix/winixd/core/lock.h
./gallery.o: ../../../../winix/winixd/core/synchro.h
./gallery.o: ../../../../winix/winixd/core/error.h
./gallery.o: ../../../../winix/winixd/models/user.h
./gallery.o: ../../../../winix/winixd/templates/misc.h
./gallery.o: ../../../../winix/winixd/templates/localefilter.h
./gallery.o: ../../../../winix/winixd/templates/locale.h
./gallery.o: ../../../../pikotools/src/convert/patternreplacer.h
./gallery.o: ../../../../pikotools/src/convert/strtoint.h
./gallery.o: ../../../../pikotools/src/convert/text.h
./gallery.o: ../../../../pikotools/src/convert/misc.h
./gallery.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./gallery.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./gallery.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -86,29 +80,18 @@
./gallery.o: ../../../../ezc/src/expressionparser.h
./gallery.o: ../../../../ezc/src/models.h ../../../../ezc/src/patternparser.h
./gallery.o: ../../../../winix/winixd/templates/htmltextstream.h
./gallery.o: ../../../../winix/winixd/models/winixmodel.h
./gallery.o: ../../../../winix/winixd/models/winixmodelconnector.h
./gallery.o: ../../../../winix/winixd/models/group.h
./gallery.o: ../../../../winix/winixd/core/dircontainer.h
./gallery.o: ../../../../winix/winixd/core/winixbase.h
./gallery.o: ../../../../winix/winixd/models/item.h
./gallery.o: ../../../../winix/winixd/models/itemcontent.h
./gallery.o: ../../../../winix/winixd/templates/htmltextstream.h
./gallery.o: ../../../../winix/winixd/core/ugcontainer.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/error.h
./gallery.o: ../../../../winix/winixd/core/config.h
./gallery.o: ../../../../winix/winixd/core/textstream.h
./gallery.o: ../../../../winix/winixd/models/winixmodel.h
./gallery.o: ../../../../winix/winixd/core/header.h
./gallery.o: ../../../../winix/winixd/core/compress.h
./gallery.o: ../../../../winix/winixd/core/winixbase.h
./gallery.o: ../../../../winix/winixd/core/plugin.h
./gallery.o: ../../../../winix/winixd/core/pluginmsg.h
./gallery.o: ../../../../winix/winixd/core/plugindata.h
./gallery.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./gallery.o: ../../../../winix/winixd/core/mount.h
./gallery.o: ../../../../winix/winixd/core/mounts.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/mountparser.h
./gallery.o: ../../../../winix/winixd/core/jobtask.h
./gallery.o: ../../../../winix/winixd/notify/notify.h
@ -121,9 +104,11 @@
./gallery.o: ../../../../winix/winixd/core/basethread.h
./gallery.o: ../../../../winix/winixd/notify/templatesnotify.h
./gallery.o: ../../../../winix/winixd/core/users.h
./gallery.o: ../../../../winix/winixd/models/user.h
./gallery.o: ../../../../winix/winixd/core/ugcontainer.h
./gallery.o: ../../../../winix/winixd/core/lastcontainer.h
./gallery.o: ../../../../winix/winixd/core/cur.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/session.h
./gallery.o: ../../../../winix/winixd/core/rebus.h
./gallery.o: ../../../../winix/winixd/core/ipban.h
@ -140,6 +125,7 @@
./gallery.o: ../../../../winix/winixd/core/run.h
./gallery.o: ../../../../winix/winixd/core/users.h
./gallery.o: ../../../../winix/winixd/core/groups.h
./gallery.o: ../../../../winix/winixd/models/group.h
./gallery.o: ../../../../winix/winixd/core/image.h
./gallery.o: ../../../../winix/winixd/core/threadmanager.h
./gallery.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -151,7 +137,7 @@
./gallery.o: ../../../../winix/winixd/core/ipbancontainer.h
./gallery.o: ../../../../winix/winixd/core/sessionidmanager.h
./gallery.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./gallery.o: ../../../../winix/winixd/core/slog.h galleryinfo.h
./gallery.o: galleryinfo.h
./galleryinfo.o: galleryinfo.h ../../../../winix/winixd/models/item.h
./galleryinfo.o: ../../../../winix/winixd/models/winixmodel.h
./galleryinfo.o: ../../../../morm/src/model.h
@ -159,8 +145,9 @@
./galleryinfo.o: ../../../../pikotools/src/textstream/stream.h
./galleryinfo.o: ../../../../pikotools/src/space/space.h
./galleryinfo.o: ../../../../pikotools/src/convert/inttostr.h
./galleryinfo.o: ../../../../pikotools/src/utf8/utf8.h
./galleryinfo.o: ../../../../pikotools/src/convert/misc.h
./galleryinfo.o: ../../../../pikotools/src/textstream/stream.h
./galleryinfo.o: ../../../../pikotools/src/utf8/utf8.h
./galleryinfo.o: ../../../../pikotools/src/date/date.h
./galleryinfo.o: ../../../../pikotools/src/membuffer/membuffer.h
./galleryinfo.o: ../../../../pikotools/src/textstream/types.h
@ -189,18 +176,6 @@
./galleryinfo.o: ../../../../morm/src/flatexpression.h
./galleryinfo.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./galleryinfo.o: ../../../../winix/winixd/core/log.h
./galleryinfo.o: ../../../../winix/winixd/models/winixmodelconnector.h
./galleryinfo.o: ../../../../winix/winixd/models/itemcontent.h
./galleryinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./galleryinfo.o: ../../../../winix/winixd/templates/misc.h
./galleryinfo.o: ../../../../winix/winixd/templates/localefilter.h
./galleryinfo.o: ../../../../winix/winixd/templates/locale.h
./galleryinfo.o: ../../../../pikotools/src/space/spaceparser.h
./galleryinfo.o: ../../../../pikotools/src/space/space.h
./galleryinfo.o: ../../../../pikotools/src/convert/baseparser.h
./galleryinfo.o: ../../../../winix/winixd/core/winixbase.h
./galleryinfo.o: ../../../../winix/winixd/core/config.h
./galleryinfo.o: ../../../../winix/winixd/core/log.h
./galleryinfo.o: ../../../../winix/winixd/core/logmanipulators.h
./galleryinfo.o: ../../../../winix/winixd/core/filelog.h
./galleryinfo.o: ../../../../winix/winixd/core/synchro.h
@ -214,10 +189,25 @@
./galleryinfo.o: ../../../../morm/src/postgresqlqueryresult.h
./galleryinfo.o: ../../../../morm/src/xmlconnector.h
./galleryinfo.o: ../../../../morm/src/transaction.h
./galleryinfo.o: ../../../../winix/winixd/models/winixmodelconnector.h
./galleryinfo.o: ../../../../winix/winixd/models/itemcontent.h
./galleryinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./galleryinfo.o: ../../../../winix/winixd/templates/misc.h
./galleryinfo.o: ../../../../winix/winixd/templates/localefilter.h
./galleryinfo.o: ../../../../winix/winixd/templates/locale.h
./galleryinfo.o: ../../../../pikotools/src/space/spaceparser.h
./galleryinfo.o: ../../../../pikotools/src/space/space.h
./galleryinfo.o: ../../../../pikotools/src/convert/baseparser.h
./galleryinfo.o: ../../../../winix/winixd/core/winixbase.h
./galleryinfo.o: ../../../../winix/winixd/core/config.h
./galleryinfo.o: ../../../../winix/winixd/core/log.h
./galleryinfo.o: ../../../../winix/winixd/core/filelog.h
./galleryinfo.o: ../../../../winix/winixd/core/lock.h
./galleryinfo.o: ../../../../winix/winixd/core/synchro.h
./galleryinfo.o: ../../../../pikotools/src/convert/patternreplacer.h
./galleryinfo.o: ../../../../pikotools/src/convert/strtoint.h
./galleryinfo.o: ../../../../pikotools/src/convert/text.h
./galleryinfo.o: ../../../../pikotools/src/convert/misc.h
./galleryinfo.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./galleryinfo.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./galleryinfo.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -228,52 +218,32 @@
./galleryinfo.o: ../../../../ezc/src/patternparser.h
./galleryinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: gallery.h ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/db/db.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/db/dbconn.h
./init.o: ../../../../winix/winixd/db/dbtextstream.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/core/misc.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/requesttypes.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/date/date.h
./init.o: ../../../../pikotools/src/membuffer/membuffer.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/textstream/stream_private.h
./init.o: ../../../../winix/winixd/core/winix_const.h
./init.o: ../../../../pikotools/src/convert/convert.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/convert/double.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/synchro.h ../../../../morm/src/morm.h
./init.o: ../../../../morm/src/version.h ../../../../morm/src/morm_types.h
./init.o: ../../../../winix/winixd/models/item.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../morm/src/model.h ../../../../morm/src/modelconnector.h
./init.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./init.o: ../../../../morm/src/dbconnector.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../morm/src/queryresult.h
./init.o: ../../../../morm/src/flatconnector.h ../../../../morm/src/export.h
./init.o: ../../../../morm/src/dbexpression.h
./init.o: ../../../../morm/src/baseexpression.h
./init.o: ../../../../morm/src/modelenv.h ../../../../morm/src/modeldata.h
./init.o: ../../../../morm/src/morm_types.h ../../../../morm/src/modelenv.h
./init.o: ../../../../morm/src/modeldata.h
./init.o: ../../../../morm/src/cursorhelper.h
./init.o: ../../../../morm/src/finderhelper.h
./init.o: ../../../../morm/src/fieldvaluehelper.h
@ -282,8 +252,12 @@
./init.o: ../../../../morm/src/modelcontainerwrapper.h
./init.o: ../../../../morm/src/select.h ../../../../morm/src/flatexpression.h
./init.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./init.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./init.o: ../../../../morm/src/jsonexpression.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/synchro.h ../../../../morm/src/morm.h
./init.o: ../../../../morm/src/version.h ../../../../morm/src/finder.h
./init.o: ../../../../morm/src/cursor.h ../../../../morm/src/jsonexpression.h
./init.o: ../../../../morm/src/postgresqlexpression.h
./init.o: ../../../../morm/src/xmlexpression.h
./init.o: ../../../../morm/src/jsonconnector.h
@ -291,47 +265,44 @@
./init.o: ../../../../morm/src/postgresqlqueryresult.h
./init.o: ../../../../morm/src/xmlconnector.h
./init.o: ../../../../morm/src/transaction.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/models/itemcontent.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/templates/misc.h
./init.o: ../../../../winix/winixd/templates/localefilter.h
./init.o: ../../../../winix/winixd/templates/locale.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/templates/misc.h
./init.o: ../../../../winix/winixd/templates/localefilter.h
./init.o: ../../../../winix/winixd/templates/locale.h
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./init.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./init.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./init.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./init.o: ../../../../ezc/src/outstreams.h
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h ../../../../ezc/src/ezc.h
./init.o: ../../../../ezc/src/version.h ../../../../ezc/src/generator.h
./init.o: ../../../../ezc/src/blocks.h ../../../../ezc/src/cache.h
./init.o: ../../../../ezc/src/functions.h ../../../../ezc/src/objects.h
./init.o: ../../../../ezc/src/pattern.h ../../../../ezc/src/outstreams.h
./init.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./init.o: ../../../../ezc/src/patternparser.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/models/item.h
./init.o: ../../../../winix/winixd/models/itemcontent.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/compress.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/pluginmsg.h
./init.o: ../../../../winix/winixd/core/plugindata.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/mount.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/notify/notify.h
@ -344,9 +315,11 @@
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/notify/templatesnotify.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
@ -363,6 +336,7 @@
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -374,8 +348,7 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/core/slog.h galleryinfo.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: galleryinfo.h ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/functions/functionparser.h
@ -430,53 +403,33 @@
./init.o: ../../../../winix/winixd/functions/vim.h
./init.o: ../../../../pikotools/src/html/htmlparser.h
./templates.o: gallery.h ../../../../winix/winixd/functions/functionbase.h
./templates.o: ../../../../winix/winixd/db/db.h
./templates.o: ../../../../winix/winixd/db/dbbase.h
./templates.o: ../../../../winix/winixd/db/dbconn.h
./templates.o: ../../../../winix/winixd/db/dbtextstream.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/requesttypes.h
./templates.o: ../../../../pikotools/src/textstream/textstream.h
./templates.o: ../../../../pikotools/src/textstream/stream.h
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/utf8/utf8.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../pikotools/src/textstream/stream.h
./templates.o: ../../../../pikotools/src/utf8/utf8.h
./templates.o: ../../../../pikotools/src/date/date.h
./templates.o: ../../../../pikotools/src/membuffer/membuffer.h
./templates.o: ../../../../pikotools/src/textstream/types.h
./templates.o: ../../../../pikotools/src/textstream/stream_private.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/strtoint.h
./templates.o: ../../../../pikotools/src/convert/text.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../pikotools/src/textstream/types.h
./templates.o: ../../../../pikotools/src/convert/double.h
./templates.o: ../../../../winix/winixd/core/winixbase.h
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../pikotools/src/space/spaceparser.h
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/baseparser.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/logmanipulators.h
./templates.o: ../../../../pikotools/src/log/log.h
./templates.o: ../../../../pikotools/src/log/filelog.h
./templates.o: ../../../../winix/winixd/core/filelog.h
./templates.o: ../../../../winix/winixd/core/synchro.h
./templates.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./templates.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./templates.o: ../../../../winix/winixd/models/item.h
./templates.o: ../../../../winix/winixd/models/winixmodel.h
./templates.o: ../../../../morm/src/model.h
./templates.o: ../../../../morm/src/modelconnector.h
./templates.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./templates.o: ../../../../morm/src/dbconnector.h
./templates.o: ../../../../pikotools/src/log/log.h
./templates.o: ../../../../pikotools/src/log/filelog.h
./templates.o: ../../../../morm/src/queryresult.h
./templates.o: ../../../../morm/src/flatconnector.h
./templates.o: ../../../../morm/src/export.h
./templates.o: ../../../../morm/src/dbexpression.h
./templates.o: ../../../../morm/src/baseexpression.h
./templates.o: ../../../../morm/src/morm_types.h
./templates.o: ../../../../morm/src/modelenv.h
./templates.o: ../../../../morm/src/modeldata.h
./templates.o: ../../../../morm/src/cursorhelper.h
@ -489,6 +442,11 @@
./templates.o: ../../../../morm/src/select.h
./templates.o: ../../../../morm/src/flatexpression.h
./templates.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/logmanipulators.h
./templates.o: ../../../../winix/winixd/core/filelog.h
./templates.o: ../../../../winix/winixd/core/synchro.h
./templates.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./templates.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./templates.o: ../../../../morm/src/jsonexpression.h
./templates.o: ../../../../morm/src/postgresqlexpression.h
@ -498,16 +456,25 @@
./templates.o: ../../../../morm/src/postgresqlqueryresult.h
./templates.o: ../../../../morm/src/xmlconnector.h
./templates.o: ../../../../morm/src/transaction.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
./templates.o: ../../../../winix/winixd/models/itemcontent.h
./templates.o: ../../../../winix/winixd/templates/htmltextstream.h
./templates.o: ../../../../winix/winixd/templates/misc.h
./templates.o: ../../../../winix/winixd/templates/localefilter.h
./templates.o: ../../../../winix/winixd/templates/locale.h
./templates.o: ../../../../pikotools/src/space/spaceparser.h
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/baseparser.h
./templates.o: ../../../../winix/winixd/core/winixbase.h
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/filelog.h
./templates.o: ../../../../winix/winixd/core/lock.h
./templates.o: ../../../../winix/winixd/core/synchro.h
./templates.o: ../../../../winix/winixd/core/error.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/templates/misc.h
./templates.o: ../../../../winix/winixd/templates/localefilter.h
./templates.o: ../../../../winix/winixd/templates/locale.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/strtoint.h
./templates.o: ../../../../pikotools/src/convert/text.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./templates.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./templates.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -517,29 +484,18 @@
./templates.o: ../../../../ezc/src/models.h
./templates.o: ../../../../ezc/src/patternparser.h
./templates.o: ../../../../winix/winixd/templates/htmltextstream.h
./templates.o: ../../../../winix/winixd/models/winixmodel.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/dircontainer.h
./templates.o: ../../../../winix/winixd/core/winixbase.h
./templates.o: ../../../../winix/winixd/models/item.h
./templates.o: ../../../../winix/winixd/models/itemcontent.h
./templates.o: ../../../../winix/winixd/templates/htmltextstream.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/error.h
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/models/winixmodel.h
./templates.o: ../../../../winix/winixd/core/header.h
./templates.o: ../../../../winix/winixd/core/compress.h
./templates.o: ../../../../winix/winixd/core/winixbase.h
./templates.o: ../../../../winix/winixd/core/plugin.h
./templates.o: ../../../../winix/winixd/core/pluginmsg.h
./templates.o: ../../../../winix/winixd/core/plugindata.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/core/mount.h
./templates.o: ../../../../winix/winixd/core/mounts.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/mountparser.h
./templates.o: ../../../../winix/winixd/core/jobtask.h
./templates.o: ../../../../winix/winixd/notify/notify.h
@ -552,9 +508,11 @@
./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/notify/templatesnotify.h
./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/lastcontainer.h
./templates.o: ../../../../winix/winixd/core/cur.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/session.h
./templates.o: ../../../../winix/winixd/core/rebus.h
./templates.o: ../../../../winix/winixd/core/ipban.h
@ -571,6 +529,7 @@
./templates.o: ../../../../winix/winixd/core/run.h
./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/groups.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -582,8 +541,12 @@
./templates.o: ../../../../winix/winixd/core/ipbancontainer.h
./templates.o: ../../../../winix/winixd/core/sessionidmanager.h
./templates.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./templates.o: ../../../../winix/winixd/core/slog.h galleryinfo.h
./templates.o: ../../../../winix/winixd/core/misc.h
./templates.o: galleryinfo.h ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/double.h
./templates.o: ../../../../winix/winixd/core/plugin.h
./templates.o: ../../../../winix/winixd/templates/templates.h
./templates.o: ../../../../winix/winixd/templates/patterncacher.h

View File

@ -19,12 +19,16 @@
./groupinfo.o: ../../../../pikotools/src/space/space.h
# ../../../../pikotools/src/space/space.h includes:
# convert/inttostr.h
# convert/misc.h
# utf8/utf8.h
./groupinfo.o: ../../../../pikotools/src/convert/inttostr.h
./groupinfo.o: ../../../../pikotools/src/convert/misc.h
# ../../../../pikotools/src/convert/misc.h includes:
# textstream/stream.h
./groupinfo.o: ../../../../pikotools/src/textstream/stream.h
./groupinfo.o: ../../../../pikotools/src/utf8/utf8.h
# ../../../../pikotools/src/utf8/utf8.h includes:
# textstream/stream.h
./groupinfo.o: ../../../../pikotools/src/textstream/stream.h
./groupinfo.o: ../../../../pikotools/src/convert/baseparser.h
# ../../../../pikotools/src/convert/baseparser.h includes:
# textstream/textstream.h
@ -51,7 +55,6 @@
# core/winixsystem.h
# core/cur.h
# core/sessionmanager.h
# core/slog.h
# templates/locale.h
./groupinfo.o: ../../../../winix/winixd/core/winixsystem.h
# ../../../../winix/winixd/core/winixsystem.h includes:
@ -62,7 +65,6 @@
# job.h
# dirs.h
# mounts.h
# db/db.h
# request.h
# config.h
# crypt.h
@ -182,7 +184,6 @@
./groupinfo.o: ../../../../morm/src/dbexpression.h
# ../../../../morm/src/dbexpression.h includes:
# baseexpression.h
# morm_types.h
./groupinfo.o: ../../../../morm/src/baseexpression.h
# ../../../../morm/src/baseexpression.h includes:
# textstream/stream.h
@ -289,7 +290,6 @@
# models/item.h
# error.h
# config.h
# textstream.h
# templates/htmltextstream.h
# date/date.h
# space/space.h
@ -359,11 +359,6 @@
# misc.h
./groupinfo.o: ../../../../pikotools/src/convert/text.h
./groupinfo.o: ../../../../pikotools/src/convert/misc.h
# ../../../../pikotools/src/convert/misc.h includes:
# text.h
# textstream/stream.h
# textstream/types.h
./groupinfo.o: ../../../../pikotools/src/textstream/types.h
./groupinfo.o: ../../../../ezc/src/ezc.h
# ../../../../ezc/src/ezc.h includes:
# version.h
@ -420,32 +415,6 @@
./groupinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./groupinfo.o: ../../../../winix/winixd/core/error.h
./groupinfo.o: ../../../../winix/winixd/core/config.h
./groupinfo.o: ../../../../winix/winixd/core/textstream.h
# ../../../../winix/winixd/core/textstream.h includes:
# misc.h
# space/space.h
# date/date.h
# textstream/textstream.h
# utf8/utf8.h
./groupinfo.o: ../../../../winix/winixd/core/misc.h
# ../../../../winix/winixd/core/misc.h includes:
# requesttypes.h
# date/date.h
# textstream/textstream.h
# utf8/utf8.h
# winix_const.h
# convert/convert.h
./groupinfo.o: ../../../../winix/winixd/core/winix_const.h
./groupinfo.o: ../../../../pikotools/src/convert/convert.h
# ../../../../pikotools/src/convert/convert.h includes:
# inttostr.h
# patternreplacer.h
# strtoint.h
# text.h
# double.h
./groupinfo.o: ../../../../pikotools/src/convert/inttostr.h
./groupinfo.o: ../../../../pikotools/src/convert/patternreplacer.h
./groupinfo.o: ../../../../pikotools/src/convert/double.h
./groupinfo.o: ../../../../winix/winixd/models/winixmodel.h
./groupinfo.o: ../../../../winix/winixd/core/header.h
# ../../../../winix/winixd/core/header.h includes:
@ -469,53 +438,8 @@
./groupinfo.o: ../../../../winix/winixd/core/mounts.h
# ../../../../winix/winixd/core/mounts.h includes:
# mount.h
# error.h
# db/db.h
# request.h
# mountparser.h
# winixmodeldeprecated.h
./groupinfo.o: ../../../../winix/winixd/db/db.h
# ../../../../winix/winixd/db/db.h includes:
# dbbase.h
# models/user.h
# models/group.h
# core/dircontainer.h
# core/ugcontainer.h
./groupinfo.o: ../../../../winix/winixd/db/dbbase.h
# ../../../../winix/winixd/db/dbbase.h includes:
# dbconn.h
# dbtextstream.h
# core/error.h
# space/spaceparser.h
# date/date.h
# core/winixbase.h
./groupinfo.o: ../../../../winix/winixd/db/dbconn.h
# ../../../../winix/winixd/db/dbconn.h includes:
# dbtextstream.h
# core/winixbase.h
./groupinfo.o: ../../../../winix/winixd/db/dbtextstream.h
# ../../../../winix/winixd/db/dbtextstream.h includes:
# core/textstream.h
# textstream/textstream.h
./groupinfo.o: ../../../../winix/winixd/core/textstream.h
./groupinfo.o: ../../../../winix/winixd/core/error.h
./groupinfo.o: ../../../../winix/winixd/models/user.h
# ../../../../winix/winixd/models/user.h includes:
# model.h
# space/space.h
# date/date.h
# templates/misc.h
# winixmodel.h
./groupinfo.o: ../../../../winix/winixd/models/group.h
# ../../../../winix/winixd/models/group.h includes:
# model.h
./groupinfo.o: ../../../../winix/winixd/core/dircontainer.h
# ../../../../winix/winixd/core/dircontainer.h includes:
# winixbase.h
# models/item.h
./groupinfo.o: ../../../../winix/winixd/core/ugcontainer.h
# ../../../../winix/winixd/core/ugcontainer.h includes:
# winixbase.h
./groupinfo.o: ../../../../winix/winixd/core/mountparser.h
# ../../../../winix/winixd/core/mountparser.h includes:
# mount.h
@ -527,9 +451,15 @@
# models/user.h
# plugindata.h
# rebus.h
# textstream.h
# date/date.h
# ipban.h
./groupinfo.o: ../../../../winix/winixd/models/user.h
# ../../../../winix/winixd/models/user.h includes:
# model.h
# space/space.h
# date/date.h
# templates/misc.h
# winixmodel.h
./groupinfo.o: ../../../../winix/winixd/core/rebus.h
# ../../../../winix/winixd/core/rebus.h includes:
# winixbase.h
@ -547,11 +477,13 @@
./groupinfo.o: ../../../../winix/winixd/core/dirs.h
# ../../../../winix/winixd/core/dirs.h includes:
# dircontainer.h
# db/db.h
# request.h
# models/item.h
# winixmodeldeprecated.h
./groupinfo.o: ../../../../winix/winixd/core/dircontainer.h
# ../../../../winix/winixd/core/dircontainer.h includes:
# winixbase.h
# models/item.h
./groupinfo.o: ../../../../winix/winixd/core/crypt.h
# ../../../../winix/winixd/core/crypt.h includes:
# run.h
@ -567,9 +499,10 @@
# ugcontainer.h
# lastcontainer.h
# cur.h
# db/db.h
# models/winixmodel.h
./groupinfo.o: ../../../../winix/winixd/core/ugcontainer.h
# ../../../../winix/winixd/core/ugcontainer.h includes:
# winixbase.h
./groupinfo.o: ../../../../winix/winixd/core/lastcontainer.h
# ../../../../winix/winixd/core/lastcontainer.h includes:
# date/date.h
@ -577,8 +510,6 @@
./groupinfo.o: ../../../../winix/winixd/core/image.h
# ../../../../winix/winixd/core/image.h includes:
# basethread.h
# textstream.h
# db/db.h
# core/config.h
# models/item.h
./groupinfo.o: ../../../../winix/winixd/core/threadmanager.h
@ -618,7 +549,6 @@
./groupinfo.o: ../../../../winix/winixd/notify/templatesnotify.h
# ../../../../winix/winixd/notify/templatesnotify.h includes:
# ezc.h
# core/textstream.h
# notifypool.h
./groupinfo.o: ../../../../winix/winixd/core/users.h
./groupinfo.o: ../../../../winix/winixd/core/timezones.h
@ -660,17 +590,12 @@
./groupinfo.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
# ../../../../tito/src/aes.h includes:
# log/log.h
./groupinfo.o: ../../../../winix/winixd/core/slog.h
# ../../../../winix/winixd/core/slog.h includes:
# cur.h
# logmanipulators.h
# templates/locale.h
# textstream/textstream.h
./groups.o: groups.h ../../../../pikotools/src/space/spaceparser.h
./groups.o: ../../../../pikotools/src/space/space.h
./groups.o: ../../../../pikotools/src/convert/inttostr.h
./groups.o: ../../../../pikotools/src/utf8/utf8.h
./groups.o: ../../../../pikotools/src/convert/misc.h
./groups.o: ../../../../pikotools/src/textstream/stream.h
./groups.o: ../../../../pikotools/src/utf8/utf8.h
./groups.o: ../../../../pikotools/src/convert/baseparser.h
./groups.o: ../../../../pikotools/src/textstream/textstream.h
./groups.o: ../../../../pikotools/src/textstream/stream.h
@ -742,7 +667,6 @@
./groups.o: ../../../../pikotools/src/convert/strtoint.h
./groups.o: ../../../../pikotools/src/convert/text.h
./groups.o: ../../../../pikotools/src/convert/misc.h
./groups.o: ../../../../pikotools/src/textstream/types.h
./groups.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./groups.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./groups.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
@ -753,13 +677,6 @@
./groups.o: ../../../../winix/winixd/templates/htmltextstream.h
./groups.o: ../../../../winix/winixd/core/error.h
./groups.o: ../../../../winix/winixd/core/config.h
./groups.o: ../../../../winix/winixd/core/textstream.h
./groups.o: ../../../../winix/winixd/core/misc.h
./groups.o: ../../../../winix/winixd/core/winix_const.h
./groups.o: ../../../../pikotools/src/convert/convert.h
./groups.o: ../../../../pikotools/src/convert/inttostr.h
./groups.o: ../../../../pikotools/src/convert/patternreplacer.h
./groups.o: ../../../../pikotools/src/convert/double.h
./groups.o: ../../../../winix/winixd/models/winixmodel.h
./groups.o: ../../../../winix/winixd/core/header.h
./groups.o: ../../../../winix/winixd/core/compress.h
@ -769,18 +686,9 @@
./groups.o: ../../../../winix/winixd/core/plugindata.h
./groups.o: ../../../../winix/winixd/core/mount.h
./groups.o: ../../../../winix/winixd/core/mounts.h
./groups.o: ../../../../winix/winixd/db/db.h
./groups.o: ../../../../winix/winixd/db/dbbase.h
./groups.o: ../../../../winix/winixd/db/dbconn.h
./groups.o: ../../../../winix/winixd/db/dbtextstream.h
./groups.o: ../../../../winix/winixd/core/textstream.h
./groups.o: ../../../../winix/winixd/core/error.h
./groups.o: ../../../../winix/winixd/models/user.h
./groups.o: ../../../../winix/winixd/models/group.h
./groups.o: ../../../../winix/winixd/core/dircontainer.h
./groups.o: ../../../../winix/winixd/core/ugcontainer.h
./groups.o: ../../../../winix/winixd/core/mountparser.h
./groups.o: ../../../../winix/winixd/core/session.h
./groups.o: ../../../../winix/winixd/models/user.h
./groups.o: ../../../../winix/winixd/core/rebus.h
./groups.o: ../../../../winix/winixd/core/ipban.h
./groups.o: ../../../../winix/winixd/core/loadavg.h
@ -814,7 +722,6 @@
./groups.o: ../../../../winix/winixd/core/ipbancontainer.h
./groups.o: ../../../../winix/winixd/core/sessionidmanager.h
./groups.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./groups.o: ../../../../winix/winixd/core/slog.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/plugin.h
# ../../../../winix/winixd/core/plugin.h includes:
@ -831,8 +738,9 @@
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
@ -897,43 +805,25 @@
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./init.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./init.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./init.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./init.o: ../../../../ezc/src/outstreams.h
./init.o: ../../../../pikotools/src/convert/misc.h ../../../../ezc/src/ezc.h
./init.o: ../../../../ezc/src/version.h ../../../../ezc/src/generator.h
./init.o: ../../../../ezc/src/blocks.h ../../../../ezc/src/cache.h
./init.o: ../../../../ezc/src/functions.h ../../../../ezc/src/objects.h
./init.o: ../../../../ezc/src/pattern.h ../../../../ezc/src/outstreams.h
./init.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./init.o: ../../../../ezc/src/patternparser.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/core/misc.h
./init.o: ../../../../winix/winixd/core/winix_const.h
./init.o: ../../../../pikotools/src/convert/convert.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/convert/patternreplacer.h
./init.o: ../../../../pikotools/src/convert/double.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/compress.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/db/db.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/db/dbconn.h
./init.o: ../../../../winix/winixd/db/dbtextstream.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/loadavg.h
@ -967,7 +857,6 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/core/slog.h
./init.o: ../../../../winix/winixd/functions/functions.h
# ../../../../winix/winixd/functions/functions.h includes:
# functionbase.h
@ -1021,7 +910,6 @@
# core/winixrequest.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
# ../../../../winix/winixd/functions/functionbase.h includes:
# db/db.h
# core/request.h
# core/config.h
# core/synchro.h
@ -1031,7 +919,6 @@
./init.o: ../../../../winix/winixd/functions/functionparser.h
# ../../../../winix/winixd/functions/functionparser.h includes:
# core/winixmodeldeprecated.h
# db/db.h
# core/cur.h
# core/dirs.h
./init.o: ../../../../winix/winixd/core/dirs.h
@ -1052,9 +939,7 @@
./init.o: ../../../../winix/winixd/functions/privchanger.h
# ../../../../winix/winixd/functions/privchanger.h includes:
# core/winixmodeldeprecated.h
# core/request.h
# core/system.h
# db/db.h
./init.o: ../../../../winix/winixd/functions/chown.h
# ../../../../winix/winixd/functions/chown.h includes:
# functionbase.h
@ -1210,7 +1095,6 @@
# core/system.h
# core/sessionmanager.h
# html/htmlparser.h
# db/db.h
# core/winixrequest.h
./templates.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./templates.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
@ -1264,6 +1148,7 @@
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../pikotools/src/space/spaceparser.h
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../pikotools/src/convert/baseparser.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/logmanipulators.h
@ -1295,7 +1180,6 @@
./templates.o: ../../../../pikotools/src/convert/strtoint.h
./templates.o: ../../../../pikotools/src/convert/text.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../pikotools/src/textstream/types.h
./templates.o: ../../../../winix/winixd/templates/htmltextstream.h
./templates.o: ../../../../winix/winixd/templates/indexpatterns.h
# ../../../../winix/winixd/templates/indexpatterns.h includes:
@ -1323,13 +1207,6 @@
./templates.o: ../../../../winix/winixd/core/requesttypes.h
./templates.o: ../../../../winix/winixd/core/error.h
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/double.h
./templates.o: ../../../../winix/winixd/models/winixmodel.h
./templates.o: ../../../../winix/winixd/core/header.h
./templates.o: ../../../../winix/winixd/core/compress.h
@ -1339,18 +1216,9 @@
./templates.o: ../../../../winix/winixd/core/plugindata.h
./templates.o: ../../../../winix/winixd/core/mount.h
./templates.o: ../../../../winix/winixd/core/mounts.h
./templates.o: ../../../../winix/winixd/db/db.h
./templates.o: ../../../../winix/winixd/db/dbbase.h
./templates.o: ../../../../winix/winixd/db/dbconn.h
./templates.o: ../../../../winix/winixd/db/dbtextstream.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/core/error.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/dircontainer.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/mountparser.h
./templates.o: ../../../../winix/winixd/core/session.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/core/rebus.h
./templates.o: ../../../../winix/winixd/core/ipban.h
./templates.o: ../../../../winix/winixd/core/loadavg.h
@ -1371,7 +1239,6 @@
./templates.o: ../../../../winix/winixd/core/ipbancontainer.h
./templates.o: ../../../../winix/winixd/core/sessionidmanager.h
./templates.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./templates.o: ../../../../winix/winixd/core/slog.h
./templates.o: ../../../../winix/winixd/templates/locale.h
./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h
@ -1388,3 +1255,21 @@
./templates.o: ../../../../pikotools/src/html/htmlparser.h
./templates.o: ../../../../winix/winixd/core/plugin.h groupinfo.h
./templates.o: ../../../../winix/winixd/core/misc.h
# ../../../../winix/winixd/core/misc.h includes:
# requesttypes.h
# date/date.h
# textstream/textstream.h
# utf8/utf8.h
# winix_const.h
# convert/convert.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
# ../../../../pikotools/src/convert/convert.h includes:
# inttostr.h
# patternreplacer.h
# strtoint.h
# text.h
# double.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/double.h

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -85,7 +85,7 @@ bool GroupInfo::ParseGroups(const std::wstring & str, Groups & groups)
}
else
{
slog << logerror << "Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
//slog << logerror << "Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
log << log1 << "Syntax error in line: " << conf_parser.get_last_parsed_line() << logend;
groups.Clear();
}

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,10 +33,10 @@
*/
#include <algorithm>
#include <limits>
#include "groups.h"
#include "core/log.h"
namespace Winix
{
@ -84,7 +84,7 @@ void Groups::Reindex()
}
else
{
slog << logerror << "set: " << set_name << " already defined (skipping)" << logend;
//slog << logerror << "set: " << set_name << " already defined (skipping)" << logend;
//space.remove_child_space(seti);
}
}
@ -117,17 +117,17 @@ void Groups::ReindexGroups(GroupIndex & group_index, const std::wstring & set_na
}
else
{
slog << logwarning << "set: " << set_name
<< " has a group with a duplicated value: "
<< *vali << " (skipping)" << logend;
// slog << logwarning << "set: " << set_name
// << " has a group with a duplicated value: "
// << *vali << " (skipping)" << logend;
}
}
else
{
log << log1 << "key: " << key << " was not found" << logend;
slog << logwarning << "set: " << set_name
<< " has a group without a value (skipping)" << logend;
// slog << logwarning << "set: " << set_name
// << " has a group without a value (skipping)" << logend;
}
}

View File

@ -2,55 +2,33 @@
./funregistermail.o: funregistermail.h
./funregistermail.o: ../../../../winix/winixd/functions/functionbase.h
./funregistermail.o: ../../../../winix/winixd/db/db.h
./funregistermail.o: ../../../../winix/winixd/db/dbbase.h
./funregistermail.o: ../../../../winix/winixd/db/dbconn.h
./funregistermail.o: ../../../../winix/winixd/db/dbtextstream.h
./funregistermail.o: ../../../../winix/winixd/core/textstream.h
./funregistermail.o: ../../../../winix/winixd/core/misc.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/requesttypes.h
./funregistermail.o: ../../../../pikotools/src/textstream/textstream.h
./funregistermail.o: ../../../../pikotools/src/textstream/stream.h
./funregistermail.o: ../../../../pikotools/src/space/space.h
./funregistermail.o: ../../../../pikotools/src/convert/inttostr.h
./funregistermail.o: ../../../../pikotools/src/utf8/utf8.h
./funregistermail.o: ../../../../pikotools/src/convert/misc.h
./funregistermail.o: ../../../../pikotools/src/textstream/stream.h
./funregistermail.o: ../../../../pikotools/src/utf8/utf8.h
./funregistermail.o: ../../../../pikotools/src/date/date.h
./funregistermail.o: ../../../../pikotools/src/membuffer/membuffer.h
./funregistermail.o: ../../../../pikotools/src/textstream/types.h
./funregistermail.o: ../../../../pikotools/src/textstream/stream_private.h
./funregistermail.o: ../../../../winix/winixd/core/winix_const.h
./funregistermail.o: ../../../../pikotools/src/convert/convert.h
./funregistermail.o: ../../../../pikotools/src/convert/inttostr.h
./funregistermail.o: ../../../../pikotools/src/convert/patternreplacer.h
./funregistermail.o: ../../../../pikotools/src/convert/strtoint.h
./funregistermail.o: ../../../../pikotools/src/convert/text.h
./funregistermail.o: ../../../../pikotools/src/convert/misc.h
./funregistermail.o: ../../../../pikotools/src/textstream/types.h
./funregistermail.o: ../../../../pikotools/src/convert/double.h
./funregistermail.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail.o: ../../../../winix/winixd/core/config.h
./funregistermail.o: ../../../../pikotools/src/space/spaceparser.h
./funregistermail.o: ../../../../pikotools/src/space/space.h
./funregistermail.o: ../../../../pikotools/src/convert/baseparser.h
./funregistermail.o: ../../../../winix/winixd/core/log.h
./funregistermail.o: ../../../../winix/winixd/core/logmanipulators.h
./funregistermail.o: ../../../../pikotools/src/log/log.h
./funregistermail.o: ../../../../pikotools/src/log/filelog.h
./funregistermail.o: ../../../../winix/winixd/core/filelog.h
./funregistermail.o: ../../../../winix/winixd/core/synchro.h
./funregistermail.o: ../../../../morm/src/morm.h
./funregistermail.o: ../../../../morm/src/version.h
./funregistermail.o: ../../../../morm/src/morm_types.h
./funregistermail.o: ../../../../winix/winixd/models/item.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail.o: ../../../../morm/src/model.h
./funregistermail.o: ../../../../morm/src/modelconnector.h
./funregistermail.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./funregistermail.o: ../../../../morm/src/dbconnector.h
./funregistermail.o: ../../../../pikotools/src/log/log.h
./funregistermail.o: ../../../../pikotools/src/log/filelog.h
./funregistermail.o: ../../../../morm/src/queryresult.h
./funregistermail.o: ../../../../morm/src/flatconnector.h
./funregistermail.o: ../../../../morm/src/export.h
./funregistermail.o: ../../../../morm/src/dbexpression.h
./funregistermail.o: ../../../../morm/src/baseexpression.h
./funregistermail.o: ../../../../morm/src/morm_types.h
./funregistermail.o: ../../../../morm/src/modelenv.h
./funregistermail.o: ../../../../morm/src/modeldata.h
./funregistermail.o: ../../../../morm/src/cursorhelper.h
@ -63,6 +41,12 @@
./funregistermail.o: ../../../../morm/src/select.h
./funregistermail.o: ../../../../morm/src/flatexpression.h
./funregistermail.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./funregistermail.o: ../../../../winix/winixd/core/log.h
./funregistermail.o: ../../../../winix/winixd/core/logmanipulators.h
./funregistermail.o: ../../../../winix/winixd/core/filelog.h
./funregistermail.o: ../../../../winix/winixd/core/synchro.h
./funregistermail.o: ../../../../morm/src/morm.h
./funregistermail.o: ../../../../morm/src/version.h
./funregistermail.o: ../../../../morm/src/finder.h
./funregistermail.o: ../../../../morm/src/cursor.h
./funregistermail.o: ../../../../morm/src/jsonexpression.h
@ -73,16 +57,25 @@
./funregistermail.o: ../../../../morm/src/postgresqlqueryresult.h
./funregistermail.o: ../../../../morm/src/xmlconnector.h
./funregistermail.o: ../../../../morm/src/transaction.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail.o: ../../../../winix/winixd/models/itemcontent.h
./funregistermail.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail.o: ../../../../winix/winixd/templates/misc.h
./funregistermail.o: ../../../../winix/winixd/templates/localefilter.h
./funregistermail.o: ../../../../winix/winixd/templates/locale.h
./funregistermail.o: ../../../../pikotools/src/space/spaceparser.h
./funregistermail.o: ../../../../pikotools/src/space/space.h
./funregistermail.o: ../../../../pikotools/src/convert/baseparser.h
./funregistermail.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail.o: ../../../../winix/winixd/core/config.h
./funregistermail.o: ../../../../winix/winixd/core/log.h
./funregistermail.o: ../../../../winix/winixd/core/filelog.h
./funregistermail.o: ../../../../winix/winixd/core/lock.h
./funregistermail.o: ../../../../winix/winixd/core/synchro.h
./funregistermail.o: ../../../../winix/winixd/core/error.h
./funregistermail.o: ../../../../winix/winixd/models/user.h
./funregistermail.o: ../../../../winix/winixd/templates/misc.h
./funregistermail.o: ../../../../winix/winixd/templates/localefilter.h
./funregistermail.o: ../../../../winix/winixd/templates/locale.h
./funregistermail.o: ../../../../pikotools/src/convert/patternreplacer.h
./funregistermail.o: ../../../../pikotools/src/convert/strtoint.h
./funregistermail.o: ../../../../pikotools/src/convert/text.h
./funregistermail.o: ../../../../pikotools/src/convert/misc.h
./funregistermail.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./funregistermail.o: ../../../../ezc/src/generator.h
./funregistermail.o: ../../../../ezc/src/blocks.h ../../../../ezc/src/cache.h
@ -94,29 +87,18 @@
./funregistermail.o: ../../../../ezc/src/models.h
./funregistermail.o: ../../../../ezc/src/patternparser.h
./funregistermail.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail.o: ../../../../winix/winixd/models/group.h
./funregistermail.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail.o: ../../../../winix/winixd/models/item.h
./funregistermail.o: ../../../../winix/winixd/models/itemcontent.h
./funregistermail.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/error.h
./funregistermail.o: ../../../../winix/winixd/core/config.h
./funregistermail.o: ../../../../winix/winixd/core/textstream.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail.o: ../../../../winix/winixd/core/header.h
./funregistermail.o: ../../../../winix/winixd/core/compress.h
./funregistermail.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail.o: ../../../../winix/winixd/core/plugin.h
./funregistermail.o: ../../../../winix/winixd/core/pluginmsg.h
./funregistermail.o: ../../../../winix/winixd/core/plugindata.h
./funregistermail.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funregistermail.o: ../../../../winix/winixd/core/mount.h
./funregistermail.o: ../../../../winix/winixd/core/mounts.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/mountparser.h
./funregistermail.o: ../../../../winix/winixd/core/jobtask.h
./funregistermail.o: ../../../../winix/winixd/notify/notify.h
@ -129,9 +111,11 @@
./funregistermail.o: ../../../../winix/winixd/core/basethread.h
./funregistermail.o: ../../../../winix/winixd/notify/templatesnotify.h
./funregistermail.o: ../../../../winix/winixd/core/users.h
./funregistermail.o: ../../../../winix/winixd/models/user.h
./funregistermail.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/cur.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/session.h
./funregistermail.o: ../../../../winix/winixd/core/rebus.h
./funregistermail.o: ../../../../winix/winixd/core/ipban.h
@ -148,6 +132,7 @@
./funregistermail.o: ../../../../winix/winixd/core/run.h
./funregistermail.o: ../../../../winix/winixd/core/users.h
./funregistermail.o: ../../../../winix/winixd/core/groups.h
./funregistermail.o: ../../../../winix/winixd/models/group.h
./funregistermail.o: ../../../../winix/winixd/core/image.h
./funregistermail.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -159,61 +144,43 @@
./funregistermail.o: ../../../../winix/winixd/core/ipbancontainer.h
./funregistermail.o: ../../../../winix/winixd/core/sessionidmanager.h
./funregistermail.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./funregistermail.o: ../../../../winix/winixd/core/slog.h registermail_info.h
./funregistermail.o: mdb.h ../../../../winix/winixd/db/dbbase.h
./funregistermail.o: ../../../../winix/winixd/core/dirs.h
./funregistermail.o: registermail_info.h registermail.h mdb.h
./funregistermail.o: ../../../../winix/winixd/core/misc.h
./funregistermail.o: ../../../../winix/winixd/core/winix_const.h
./funregistermail.o: ../../../../pikotools/src/convert/convert.h
./funregistermail.o: ../../../../pikotools/src/convert/inttostr.h
./funregistermail.o: ../../../../pikotools/src/convert/patternreplacer.h
./funregistermail.o: ../../../../pikotools/src/convert/double.h
./funregistermail_showusers.o: funregistermail_showusers.h
./funregistermail_showusers.o: ../../../../winix/winixd/functions/functionbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/db/db.h
./funregistermail_showusers.o: ../../../../winix/winixd/db/dbbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/db/dbconn.h
./funregistermail_showusers.o: ../../../../winix/winixd/db/dbtextstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/textstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/misc.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/requesttypes.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/textstream.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/stream.h
./funregistermail_showusers.o: ../../../../pikotools/src/space/space.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/inttostr.h
./funregistermail_showusers.o: ../../../../pikotools/src/utf8/utf8.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/misc.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/stream.h
./funregistermail_showusers.o: ../../../../pikotools/src/utf8/utf8.h
./funregistermail_showusers.o: ../../../../pikotools/src/date/date.h
./funregistermail_showusers.o: ../../../../pikotools/src/membuffer/membuffer.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/types.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/stream_private.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winix_const.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/convert.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/inttostr.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/patternreplacer.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/strtoint.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/text.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/misc.h
./funregistermail_showusers.o: ../../../../pikotools/src/textstream/types.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/double.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/config.h
./funregistermail_showusers.o: ../../../../pikotools/src/space/spaceparser.h
./funregistermail_showusers.o: ../../../../pikotools/src/space/space.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/baseparser.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/log.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/logmanipulators.h
./funregistermail_showusers.o: ../../../../pikotools/src/log/log.h
./funregistermail_showusers.o: ../../../../pikotools/src/log/filelog.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/filelog.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/synchro.h
./funregistermail_showusers.o: ../../../../morm/src/morm.h
./funregistermail_showusers.o: ../../../../morm/src/version.h
./funregistermail_showusers.o: ../../../../morm/src/morm_types.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/item.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail_showusers.o: ../../../../morm/src/model.h
./funregistermail_showusers.o: ../../../../morm/src/modelconnector.h
./funregistermail_showusers.o: ../../../../morm/src/clearer.h
./funregistermail_showusers.o: ../../../../morm/src/ft.h
./funregistermail_showusers.o: ../../../../morm/src/dbconnector.h
./funregistermail_showusers.o: ../../../../pikotools/src/log/log.h
./funregistermail_showusers.o: ../../../../pikotools/src/log/filelog.h
./funregistermail_showusers.o: ../../../../morm/src/queryresult.h
./funregistermail_showusers.o: ../../../../morm/src/flatconnector.h
./funregistermail_showusers.o: ../../../../morm/src/export.h
./funregistermail_showusers.o: ../../../../morm/src/dbexpression.h
./funregistermail_showusers.o: ../../../../morm/src/baseexpression.h
./funregistermail_showusers.o: ../../../../morm/src/morm_types.h
./funregistermail_showusers.o: ../../../../morm/src/modelenv.h
./funregistermail_showusers.o: ../../../../morm/src/modeldata.h
./funregistermail_showusers.o: ../../../../morm/src/cursorhelper.h
@ -227,6 +194,12 @@
./funregistermail_showusers.o: ../../../../morm/src/flatexpression.h
./funregistermail_showusers.o: ../../../../ezc/src/funinfo.h
./funregistermail_showusers.o: ../../../../ezc/src/item.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/log.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/logmanipulators.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/filelog.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/synchro.h
./funregistermail_showusers.o: ../../../../morm/src/morm.h
./funregistermail_showusers.o: ../../../../morm/src/version.h
./funregistermail_showusers.o: ../../../../morm/src/finder.h
./funregistermail_showusers.o: ../../../../morm/src/cursor.h
./funregistermail_showusers.o: ../../../../morm/src/jsonexpression.h
@ -237,16 +210,25 @@
./funregistermail_showusers.o: ../../../../morm/src/postgresqlqueryresult.h
./funregistermail_showusers.o: ../../../../morm/src/xmlconnector.h
./funregistermail_showusers.o: ../../../../morm/src/transaction.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/itemcontent.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/misc.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/localefilter.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/locale.h
./funregistermail_showusers.o: ../../../../pikotools/src/space/spaceparser.h
./funregistermail_showusers.o: ../../../../pikotools/src/space/space.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/baseparser.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/config.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/log.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/filelog.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/lock.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/synchro.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/error.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/user.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/misc.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/localefilter.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/locale.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/patternreplacer.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/strtoint.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/text.h
./funregistermail_showusers.o: ../../../../pikotools/src/convert/misc.h
./funregistermail_showusers.o: ../../../../ezc/src/ezc.h
./funregistermail_showusers.o: ../../../../ezc/src/version.h
./funregistermail_showusers.o: ../../../../ezc/src/generator.h
@ -260,29 +242,18 @@
./funregistermail_showusers.o: ../../../../ezc/src/models.h
./funregistermail_showusers.o: ../../../../ezc/src/patternparser.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/group.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/item.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/itemcontent.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/htmltextstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/error.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/config.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/textstream.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodel.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/header.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/compress.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/plugin.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/pluginmsg.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/plugindata.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/mount.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/mounts.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/mountparser.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/jobtask.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/notify.h
@ -295,9 +266,11 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/basethread.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/templatesnotify.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/user.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/cur.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/session.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/rebus.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ipban.h
@ -314,6 +287,7 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/run.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/groups.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/group.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/image.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -325,34 +299,22 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/ipbancontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/sessionidmanager.h
./funregistermail_showusers.o: ../../../../tito/src/base64.h
./funregistermail_showusers.o: ../../../../tito/src/aes.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/slog.h
./funregistermail_showusers.o: registermail_info.h mdb.h
./funregistermail_showusers.o: ../../../../winix/winixd/db/dbbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dirs.h
./funregistermail_showusers.o: ../../../../tito/src/aes.h registermail_info.h
./funregistermail_showusers.o: registermail.h mdb.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/pluginmsg.h
./init.o: ../../../../winix/winixd/core/plugindata.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/date/date.h
./init.o: ../../../../pikotools/src/membuffer/membuffer.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/textstream/stream_private.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/synchro.h ../../../../morm/src/morm.h
@ -382,18 +344,6 @@
./init.o: ../../../../morm/src/postgresqlqueryresult.h
./init.o: ../../../../morm/src/xmlconnector.h
./init.o: ../../../../morm/src/transaction.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/mount.h mdb.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/core/dirs.h funregistermail.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/db/db.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/db/dbconn.h
./init.o: ../../../../winix/winixd/db/dbtextstream.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/core/misc.h
./init.o: ../../../../winix/winixd/core/requesttypes.h
./init.o: ../../../../winix/winixd/core/winix_const.h
@ -403,10 +353,28 @@
./init.o: ../../../../pikotools/src/convert/strtoint.h
./init.o: ../../../../pikotools/src/convert/text.h
./init.o: ../../../../pikotools/src/convert/misc.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/convert/double.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/pluginmsg.h
./init.o: ../../../../winix/winixd/core/plugindata.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/mount.h mdb.h registermail.h
./init.o: funregistermail.h ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/models/item.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/models/itemcontent.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/templates/misc.h
./init.o: ../../../../winix/winixd/templates/localefilter.h
./init.o: ../../../../winix/winixd/templates/locale.h
@ -419,25 +387,14 @@
./init.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./init.o: ../../../../ezc/src/patternparser.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/models/item.h
./init.o: ../../../../winix/winixd/models/itemcontent.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/compress.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/notify/notify.h
@ -450,9 +407,11 @@
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/notify/templatesnotify.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
@ -469,6 +428,7 @@
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
@ -480,11 +440,11 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/core/slog.h registermail_info.h
./init.o: funregistermail_showusers.h
./init.o: registermail_info.h funregistermail_showusers.h
./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/functions/functionparser.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/functions/account.h
./init.o: ../../../../winix/winixd/functions/adduser.h
./init.o: ../../../../winix/winixd/functions/cat.h
@ -534,10 +494,84 @@
./init.o: ../../../../winix/winixd/functions/who.h
./init.o: ../../../../winix/winixd/functions/vim.h
./init.o: ../../../../pikotools/src/html/htmlparser.h
./mdb.o: mdb.h ../../../../winix/winixd/db/dbbase.h
./mdb.o: ../../../../winix/winixd/core/dirs.h
./mdb.o: ../../../../winix/winixd/core/log.h
./registermail_info.o: registermail_info.h
./init.o: ../../../../winix/winixd/models/migration.h
./mdb.o: mdb.h registermail.h ../../../../morm/src/model.h
./mdb.o: ../../../../pikotools/src/textstream/textstream.h
./mdb.o: ../../../../pikotools/src/textstream/stream.h
./mdb.o: ../../../../pikotools/src/space/space.h
./mdb.o: ../../../../pikotools/src/convert/inttostr.h
./mdb.o: ../../../../pikotools/src/convert/misc.h
./mdb.o: ../../../../pikotools/src/textstream/stream.h
./mdb.o: ../../../../pikotools/src/utf8/utf8.h
./mdb.o: ../../../../pikotools/src/date/date.h
./mdb.o: ../../../../pikotools/src/membuffer/membuffer.h
./mdb.o: ../../../../pikotools/src/textstream/types.h
./mdb.o: ../../../../pikotools/src/textstream/stream_private.h
./mdb.o: ../../../../morm/src/modelconnector.h ../../../../morm/src/clearer.h
./mdb.o: ../../../../morm/src/ft.h ../../../../morm/src/dbconnector.h
./mdb.o: ../../../../pikotools/src/log/log.h
./mdb.o: ../../../../pikotools/src/log/filelog.h
./mdb.o: ../../../../morm/src/queryresult.h
./mdb.o: ../../../../morm/src/flatconnector.h ../../../../morm/src/export.h
./mdb.o: ../../../../morm/src/dbexpression.h
./mdb.o: ../../../../morm/src/baseexpression.h
./mdb.o: ../../../../morm/src/morm_types.h ../../../../morm/src/modelenv.h
./mdb.o: ../../../../morm/src/modeldata.h ../../../../morm/src/cursorhelper.h
./mdb.o: ../../../../morm/src/finderhelper.h
./mdb.o: ../../../../morm/src/fieldvaluehelper.h
./mdb.o: ../../../../morm/src/wrapper.h ../../../../morm/src/spacewrapper.h
./mdb.o: ../../../../morm/src/baseobjectwrapper.h
./mdb.o: ../../../../morm/src/modelcontainerwrapper.h
./mdb.o: ../../../../morm/src/select.h ../../../../morm/src/flatexpression.h
./mdb.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h
./mdb.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./mdb.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./mdb.o: ../../../../morm/src/jsonexpression.h
./mdb.o: ../../../../morm/src/postgresqlexpression.h
./mdb.o: ../../../../morm/src/xmlexpression.h
./mdb.o: ../../../../morm/src/jsonconnector.h
./mdb.o: ../../../../morm/src/postgresqlconnector.h
./mdb.o: ../../../../morm/src/postgresqlqueryresult.h
./mdb.o: ../../../../morm/src/xmlconnector.h
./mdb.o: ../../../../morm/src/transaction.h
./registermail_info.o: registermail_info.h registermail.h
./registermail_info.o: ../../../../morm/src/model.h
./registermail_info.o: ../../../../pikotools/src/textstream/textstream.h
./registermail_info.o: ../../../../pikotools/src/textstream/stream.h
./registermail_info.o: ../../../../pikotools/src/space/space.h
./registermail_info.o: ../../../../pikotools/src/convert/inttostr.h
./registermail_info.o: ../../../../pikotools/src/convert/misc.h
./registermail_info.o: ../../../../pikotools/src/textstream/stream.h
./registermail_info.o: ../../../../pikotools/src/utf8/utf8.h
./registermail_info.o: ../../../../pikotools/src/date/date.h
./registermail_info.o: ../../../../pikotools/src/membuffer/membuffer.h
./registermail_info.o: ../../../../pikotools/src/textstream/types.h
./registermail_info.o: ../../../../pikotools/src/textstream/stream_private.h
./registermail_info.o: ../../../../morm/src/modelconnector.h
./registermail_info.o: ../../../../morm/src/clearer.h
./registermail_info.o: ../../../../morm/src/ft.h
./registermail_info.o: ../../../../morm/src/dbconnector.h
./registermail_info.o: ../../../../pikotools/src/log/log.h
./registermail_info.o: ../../../../pikotools/src/log/filelog.h
./registermail_info.o: ../../../../morm/src/queryresult.h
./registermail_info.o: ../../../../morm/src/flatconnector.h
./registermail_info.o: ../../../../morm/src/export.h
./registermail_info.o: ../../../../morm/src/dbexpression.h
./registermail_info.o: ../../../../morm/src/baseexpression.h
./registermail_info.o: ../../../../morm/src/morm_types.h
./registermail_info.o: ../../../../morm/src/modelenv.h
./registermail_info.o: ../../../../morm/src/modeldata.h
./registermail_info.o: ../../../../morm/src/cursorhelper.h
./registermail_info.o: ../../../../morm/src/finderhelper.h
./registermail_info.o: ../../../../morm/src/fieldvaluehelper.h
./registermail_info.o: ../../../../morm/src/wrapper.h
./registermail_info.o: ../../../../morm/src/spacewrapper.h
./registermail_info.o: ../../../../morm/src/baseobjectwrapper.h
./registermail_info.o: ../../../../morm/src/modelcontainerwrapper.h
./registermail_info.o: ../../../../morm/src/select.h
./registermail_info.o: ../../../../morm/src/flatexpression.h
./registermail_info.o: ../../../../ezc/src/funinfo.h
./registermail_info.o: ../../../../ezc/src/item.h
./templates.o: ../../../../winix/winixd/templates/templates.h
./templates.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./templates.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
@ -552,6 +586,7 @@
./templates.o: ../../../../morm/src/spacewrapper.h
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../morm/src/baseobjectwrapper.h
./templates.o: ../../../../pikotools/src/date/date.h
./templates.o: ../../../../morm/src/modelcontainerwrapper.h
@ -588,9 +623,10 @@
./templates.o: ../../../../pikotools/src/space/space.h
./templates.o: ../../../../pikotools/src/convert/baseparser.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/logmanipulators.h
./templates.o: ../../../../winix/winixd/core/filelog.h
./templates.o: ../../../../winix/winixd/core/synchro.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/logmanipulators.h
./templates.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./templates.o: ../../../../morm/src/finder.h ../../../../morm/src/cursor.h
./templates.o: ../../../../morm/src/jsonexpression.h
@ -601,7 +637,6 @@
./templates.o: ../../../../morm/src/postgresqlqueryresult.h
./templates.o: ../../../../morm/src/xmlconnector.h
./templates.o: ../../../../morm/src/transaction.h
./templates.o: ../../../../winix/winixd/core/log.h
./templates.o: ../../../../winix/winixd/core/filelog.h
./templates.o: ../../../../winix/winixd/core/lock.h
./templates.o: ../../../../winix/winixd/core/synchro.h
@ -614,6 +649,9 @@
./templates.o: ../../../../winix/winixd/templates/localefilter.h
./templates.o: ../../../../winix/winixd/templates/locale.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/strtoint.h
./templates.o: ../../../../pikotools/src/convert/text.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../winix/winixd/templates/htmltextstream.h
./templates.o: ../../../../winix/winixd/templates/indexpatterns.h
./templates.o: ../../../../winix/winixd/templates/patterns.h
@ -631,36 +669,16 @@
./templates.o: ../../../../winix/winixd/core/plugindata.h
./templates.o: ../../../../winix/winixd/core/rebus.h
./templates.o: ../../../../winix/winixd/core/winixbase.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/core/ipban.h
./templates.o: ../../../../winix/winixd/core/mount.h
./templates.o: ../../../../winix/winixd/core/loadavg.h
./templates.o: ../../../../winix/winixd/core/mounts.h
./templates.o: ../../../../winix/winixd/db/db.h
./templates.o: ../../../../winix/winixd/db/dbbase.h
./templates.o: ../../../../winix/winixd/db/dbconn.h
./templates.o: ../../../../winix/winixd/db/dbtextstream.h
./templates.o: ../../../../winix/winixd/core/textstream.h
./templates.o: ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/requesttypes.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/strtoint.h
./templates.o: ../../../../pikotools/src/convert/text.h
./templates.o: ../../../../pikotools/src/convert/misc.h
./templates.o: ../../../../pikotools/src/textstream/types.h
./templates.o: ../../../../pikotools/src/convert/double.h
./templates.o: ../../../../winix/winixd/core/error.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/dircontainer.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/mountparser.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/requesttypes.h
./templates.o: ../../../../winix/winixd/core/config.h
./templates.o: ../../../../winix/winixd/models/winixmodel.h
./templates.o: ../../../../winix/winixd/core/header.h
@ -673,6 +691,7 @@
./templates.o: ../../../../winix/winixd/core/run.h
./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/groups.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h
@ -696,6 +715,46 @@
./templates.o: ../../../../pikotools/src/html/htmlparser.h
./templates.o: ../../../../winix/winixd/core/winixrequest.h
./templates.o: ../../../../winix/winixd/core/winixsystem.h
./templates.o: ../../../../winix/winixd/core/slog.h
./templates.o: ../../../../winix/winixd/core/plugin.h
./templates.o: ../../../../winix/winixd/core/misc.h registermail_info.h
./templates.o: ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h
./templates.o: ../../../../pikotools/src/convert/inttostr.h
./templates.o: ../../../../pikotools/src/convert/patternreplacer.h
./templates.o: ../../../../pikotools/src/convert/double.h registermail_info.h
./templates.o: registermail.h
./registermail.o: registermail.h ../../../../morm/src/model.h
./registermail.o: ../../../../pikotools/src/textstream/textstream.h
./registermail.o: ../../../../pikotools/src/textstream/stream.h
./registermail.o: ../../../../pikotools/src/space/space.h
./registermail.o: ../../../../pikotools/src/convert/inttostr.h
./registermail.o: ../../../../pikotools/src/convert/misc.h
./registermail.o: ../../../../pikotools/src/textstream/stream.h
./registermail.o: ../../../../pikotools/src/utf8/utf8.h
./registermail.o: ../../../../pikotools/src/date/date.h
./registermail.o: ../../../../pikotools/src/membuffer/membuffer.h
./registermail.o: ../../../../pikotools/src/textstream/types.h
./registermail.o: ../../../../pikotools/src/textstream/stream_private.h
./registermail.o: ../../../../morm/src/modelconnector.h
./registermail.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./registermail.o: ../../../../morm/src/dbconnector.h
./registermail.o: ../../../../pikotools/src/log/log.h
./registermail.o: ../../../../pikotools/src/log/filelog.h
./registermail.o: ../../../../morm/src/queryresult.h
./registermail.o: ../../../../morm/src/flatconnector.h
./registermail.o: ../../../../morm/src/export.h
./registermail.o: ../../../../morm/src/dbexpression.h
./registermail.o: ../../../../morm/src/baseexpression.h
./registermail.o: ../../../../morm/src/morm_types.h
./registermail.o: ../../../../morm/src/modelenv.h
./registermail.o: ../../../../morm/src/modeldata.h
./registermail.o: ../../../../morm/src/cursorhelper.h
./registermail.o: ../../../../morm/src/finderhelper.h
./registermail.o: ../../../../morm/src/fieldvaluehelper.h
./registermail.o: ../../../../morm/src/wrapper.h
./registermail.o: ../../../../morm/src/spacewrapper.h
./registermail.o: ../../../../morm/src/baseobjectwrapper.h
./registermail.o: ../../../../morm/src/modelcontainerwrapper.h
./registermail.o: ../../../../morm/src/select.h
./registermail.o: ../../../../morm/src/flatexpression.h
./registermail.o: ../../../../ezc/src/funinfo.h ../../../../ezc/src/item.h

View File

@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2016, Tomasz Sowa
* Copyright (c) 2016-2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,7 @@
*/
#include "funregistermail.h"
#include "core/misc.h"
namespace Winix
{
@ -89,14 +90,14 @@ void FunRegisterMail::MakeGet()
if( ValidateEmail(mail) )
{
log << log3 << "RM: registering e-mail address: " << mail << logend;
slog << loginfo << "Thank you, your e-mail address has been added to our list" << logend;
//slog << loginfo << "Thank you, your e-mail address has been added to our list" << logend;
pmdb->AddMail(list_id, mail);
pmdb->AddMail(model_connector, list_id, mail);
}
else
{
log << log2 << "RM: email: " << mail << " doesn't seem to be correct (skipping)" << logend;
slog << logerror << "Sorry but the e-mail address: " << mail << " doesn't seem to be correct" << logend;
//slog << logerror << "Sorry but the e-mail address: " << mail << " doesn't seem to be correct" << logend;
}
}
else

Some files were not shown because too many files have changed in this diff Show More