From 5df6bcf398aca8c5cfe1e61f1794c88504145c3b Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 15:56:54 +0300 Subject: [PATCH 01/16] Remove wait after fork in rscriptd --- projects/rscriptd/main.cpp | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/projects/rscriptd/main.cpp b/projects/rscriptd/main.cpp index 714da320..8cf9384d 100644 --- a/projects/rscriptd/main.cpp +++ b/projects/rscriptd/main.cpp @@ -256,8 +256,6 @@ int ForkAndWait(const string & confDir) { #ifndef NO_DAEMON stgChildPid = fork(); -string startFile = confDir + START_FILE; -unlink(startFile.c_str()); switch (stgChildPid) { @@ -273,23 +271,6 @@ switch (stgChildPid) break; default: // Parent - for (int i = 0; i < 120 * 5; i++) - { - if (access(startFile.c_str(), F_OK) == 0) - { - //printf("Fork successfull. Exit.\n"); - unlink(startFile.c_str()); - exit(0); - } - - if (childExited) - { - unlink(startFile.c_str()); - exit(1); - } - usleep(200000); - } - unlink(startFile.c_str()); exit(1); break; } @@ -407,11 +388,6 @@ listener->Start(); WriteServLog("rscriptd started successfully."); WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++"); -#ifndef NO_DAEMON -string startFile(confDir + START_FILE); -creat(startFile.c_str(), S_IRUSR); -#endif - while (nonstop.GetStatus()) { usleep(100000); -- 2.44.2 From 87587c0e1dd2c04e49e964b8d52146d95b7afac5 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 16:33:30 +0300 Subject: [PATCH 02/16] Add initialization of LOADSTAT with zero --- projects/sgauth/web.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/sgauth/web.cpp b/projects/sgauth/web.cpp index 6b49b325..6e2d4aca 100644 --- a/projects/sgauth/web.cpp +++ b/projects/sgauth/web.cpp @@ -66,6 +66,8 @@ for (int i = 0; i < DIR_NUM; i++) dirName[i] = "-"; refreshPeriod = 5; + +memset(&ls, 0, sizeof(ls)); } //--------------------------------------------------------------------------- void WEB::Start() -- 2.44.2 From e576042f9955c05394c30c448aa430a25da22458 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 16:40:49 +0300 Subject: [PATCH 03/16] Fix default ListenWebIP value in sgauth.conf --- projects/sgauth/sgauth.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/sgauth/sgauth.conf b/projects/sgauth/sgauth.conf index 1b7d4356..0368ec02 100644 --- a/projects/sgauth/sgauth.conf +++ b/projects/sgauth/sgauth.conf @@ -29,7 +29,7 @@ Password=1234567 # #Default value 127.0.0.1 -ListenWebIP=0.0.0.0 +ListenWebIP=127.0.0.1 #Default value no DisableWeb=no -- 2.44.2 From daded9039931526b36f5794ae7ea4f8536ccbec6 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 17:33:34 +0300 Subject: [PATCH 04/16] Fix tariff field name in XML-RPC API documentation (tariff -> name) --- doc/xmlrpc-doc/API-tariffs.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/xmlrpc-doc/API-tariffs.xml b/doc/xmlrpc-doc/API-tariffs.xml index fadc20b3..d36b01dd 100644 --- a/doc/xmlrpc-doc/API-tariffs.xml +++ b/doc/xmlrpc-doc/API-tariffs.xml @@ -77,7 +77,7 @@ - string tariff + string name Название тарифа @@ -241,7 +241,7 @@ - string tariff + string name Название тарифа @@ -505,7 +505,7 @@ Структура с информацией о тарифном плане: - string tariff + string name Название тарифа -- 2.44.2 From 224f00301a3d7839c37ad1d71ad18b32b89f14fb Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 17:49:20 +0300 Subject: [PATCH 05/16] Add iconv for 'note', 'email', 'address' and 'group' --- projects/sgconf/main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/projects/sgconf/main.cpp b/projects/sgconf/main.cpp index 69756712..2aaacbc0 100644 --- a/projects/sgconf/main.cpp +++ b/projects/sgconf/main.cpp @@ -973,7 +973,7 @@ while (1) break; case 'N': //Note - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.note = str; break; @@ -983,12 +983,12 @@ while (1) break; case 'D': //aDdress - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.address = str; break; case 'L': //emaiL - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.email = str; //printf("EMAIL=%s\n", optarg); break; @@ -999,7 +999,7 @@ while (1) break; case 'G': //Group - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.group = str; break; -- 2.44.2 From ffd1046b5a664a3691c89cb0dce4206406319889 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 18:21:53 +0300 Subject: [PATCH 06/16] Fix path to git repository in archive creation script --- projects/make_tarball/make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/make_tarball/make.sh b/projects/make_tarball/make.sh index af6a71cf..a429df63 100755 --- a/projects/make_tarball/make.sh +++ b/projects/make_tarball/make.sh @@ -3,7 +3,7 @@ SRC_DIR=stg-2.4-`date "+%Y.%m.%d-%H.%M.%S"` ARC_NAME=$SRC_DIR.tar.gz -git clone git://madf.dyndns.org/stg.git $SRC_DIR +git clone git://gitorious.org/stg/stg.git $SRC_DIR if [ $? != 0 ] then -- 2.44.2 From 98ffbef6ea7a0944fd4aca27e3343b8ac5bc12f0 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 22:36:20 +0300 Subject: [PATCH 07/16] Fix settings error reporting mechanism --- projects/stargazer/settings_impl.cpp | 4 ++-- stglibs/dotconfpp.lib/dotconfpp.cpp | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/projects/stargazer/settings_impl.cpp b/projects/stargazer/settings_impl.cpp index e0eb4639..d5fb2dad 100644 --- a/projects/stargazer/settings_impl.cpp +++ b/projects/stargazer/settings_impl.cpp @@ -235,9 +235,9 @@ return 0; //----------------------------------------------------------------------------- void SETTINGS_IMPL::ErrorCallback(void * data, const char * buf) { - printfd(__FILE__, buf); + printfd(__FILE__, "SETTINGS_IMPL::ErrorCallback() - %s\n", buf); SETTINGS_IMPL * settings = static_cast(data); - settings->logger(buf); + settings->logger("%s", buf); } //----------------------------------------------------------------------------- int SETTINGS_IMPL::ReadSettings() diff --git a/stglibs/dotconfpp.lib/dotconfpp.cpp b/stglibs/dotconfpp.lib/dotconfpp.cpp index ceca3ab2..8ac25440 100644 --- a/stglibs/dotconfpp.lib/dotconfpp.cpp +++ b/stglibs/dotconfpp.lib/dotconfpp.cpp @@ -339,7 +339,7 @@ int DOTCONFDocument::setContent(const char * _fileName) char realpathBuf[PATH_MAX]; if(realpath(_fileName, realpathBuf) == NULL){ - error(0, NULL, "realpath(%s) failed: %s", _fileName, strerror(errno)); + error(0, _fileName, "realpath('%s') failed: %s", _fileName, strerror(errno)); return -1; } @@ -509,13 +509,17 @@ void DOTCONFDocument::error(int lineNum, const char * fileName, const char * fmt va_list args; va_start(args, fmt); - size_t len = (lineNum!=0?strlen(fileName):0) + strlen(fmt) + 50; + char msg[256]; + + vsnprintf(msg, 256, fmt, args); + + size_t len = (lineNum!=0?strlen(fileName):0) + strlen(msg) + 50; char * buf = (char*)mempool->alloc(len); if(lineNum) - (void) snprintf(buf, len, "DOTCONF++: file '%s', line %d: %s\n", fileName, lineNum, fmt); + (void) snprintf(buf, len, "DOTCONF++: file '%s', line %d: %s\n", fileName, lineNum, msg); else - (void) snprintf(buf, len, "DOTCONF++: %s\n", fmt); + (void) snprintf(buf, len, "DOTCONF++: file '%s': %s\n", fileName, msg); if (errorCallback) { errorCallback(errorCallbackData, buf); -- 2.44.2 From 0d8aa42e954aa65f4ef7dbf664328d93b62f5ab1 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 22:36:53 +0300 Subject: [PATCH 08/16] Extra debug information removed from ao plugin --- projects/stargazer/plugins/authorization/ao/ao.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/projects/stargazer/plugins/authorization/ao/ao.cpp b/projects/stargazer/plugins/authorization/ao/ao.cpp index 71d16608..193b20bc 100644 --- a/projects/stargazer/plugins/authorization/ao/ao.cpp +++ b/projects/stargazer/plugins/authorization/ao/ao.cpp @@ -236,13 +236,11 @@ users->CloseSearch(h); //----------------------------------------------------------------------------- void AUTH_AO::Unauthorize(USER_PTR u) const { -printfd(__FILE__, "AUTH_AO::Unauthorize - login: '%s'\n", u->GetLogin().c_str()); u->Unauthorize(this); } //----------------------------------------------------------------------------- void AUTH_AO::UpdateUserAuthorization(USER_PTR u) const { -printfd(__FILE__, "AUTH_AO::UpdateUserAuthorization - login: '%s'\n", u->GetLogin().c_str()); if (u->GetProperty().alwaysOnline) { USER_IPS ips = u->GetProperty().ips; @@ -257,7 +255,6 @@ if (u->GetProperty().alwaysOnline) //----------------------------------------------------------------------------- void AUTH_AO::AddUser(USER_PTR u) { -printfd(__FILE__, "AUTH_AO::AddUser - login: '%s'\n", u->GetLogin().c_str()); SetUserNotifiers(u); usersList.push_back(u); UpdateUserAuthorization(u); @@ -265,7 +262,6 @@ UpdateUserAuthorization(u); //----------------------------------------------------------------------------- void AUTH_AO::DelUser(USER_PTR u) { -printfd(__FILE__, "AUTH_AO::DelUser - login: '%s'\n", u->GetLogin().c_str()); Unauthorize(u); UnSetUserNotifiers(u); usersList.remove(u); @@ -280,7 +276,6 @@ return -1; template void CHG_BEFORE_NOTIFIER::Notify(const varParamType &, const varParamType &) { -printfd(__FILE__, "CHG_BEFORE_NOTIFIER::Notify\n"); //EVENT_LOOP_SINGLETON::GetInstance().Enqueue(auth, &AUTH_AO::Unauthorize, user); auth.Unauthorize(user); } @@ -288,7 +283,6 @@ auth.Unauthorize(user); template void CHG_AFTER_NOTIFIER::Notify(const varParamType &, const varParamType &) { -printfd(__FILE__, "CHG_AFTER_NOTIFIER::Notify\n"); //EVENT_LOOP_SINGLETON::GetInstance().Enqueue(auth, &AUTH_AO::UpdateUserAuthorization, user); auth.UpdateUserAuthorization(user); } -- 2.44.2 From 4ece75f1e0a9118a6caa1f442d17ad5cd803fd9e Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 22:37:29 +0300 Subject: [PATCH 09/16] Console logging on errors added to TRAFFCOUNTER_IMPL --- projects/stargazer/traffcounter_impl.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/projects/stargazer/traffcounter_impl.cpp b/projects/stargazer/traffcounter_impl.cpp index 3f6eb0c0..a605e284 100644 --- a/projects/stargazer/traffcounter_impl.cpp +++ b/projects/stargazer/traffcounter_impl.cpp @@ -90,6 +90,7 @@ if (!stopped) if (ReadRules()) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::Start() - Cannot read rules\n"); WriteServLog("TRAFFCOUNTER: Cannot read rules."); return -1; } @@ -99,6 +100,7 @@ int h = users->OpenSearch(); USER_PTR u; if (!h) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::Start() - Cannot get users\n"); WriteServLog("TRAFFCOUNTER: Cannot get users."); return -1; } @@ -112,7 +114,8 @@ users->CloseSearch(h); running = true; if (pthread_create(&thread, NULL, Run, this)) { - WriteServLog("TRAFFCOUNTER: Error: Cannot start thread!"); + printfd(__FILE__, "TRAFFCOUNTER_IMPL::Start() - Cannot start thread\n"); + WriteServLog("TRAFFCOUNTER: Error: Cannot start thread."); return -1; } return 0; @@ -690,7 +693,8 @@ f = fopen(rulesFileName.c_str(), "rt"); if (!f) { - WriteServLog("File %s cannot be oppened.", rulesFileName.c_str()); + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ReadRules() - File '%s' cannot be opened.\n", rulesFileName.c_str()); + WriteServLog("File '%s' cannot be oppened.", rulesFileName.c_str()); return true; } @@ -705,7 +709,8 @@ while (fgets(str, 1023, f)) r = sscanf(str,"%s %s %s", tp, ta, td); if (r != 3) { - WriteServLog("Error in file %s. There must be 3 parameters. Line %d.", rulesFileName.c_str(), lineNumber); + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ReadRules() - Error in file '%s' at line %d. There must be 3 parameters.\n", rulesFileName.c_str(), lineNumber); + WriteServLog("Error in file '%s' at line %d. There must be 3 parameters.", rulesFileName.c_str(), lineNumber); fclose(f); return true; } @@ -727,6 +732,7 @@ while (fgets(str, 1023, f)) if (rul.dir == 0xff || rul.proto == 0xff) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ReadRules() - Error in file '%s' at line %d.\n", rulesFileName.c_str(), lineNumber); WriteServLog("Error in file %s. Line %d.", rulesFileName.c_str(), lineNumber); fclose(f); @@ -735,6 +741,7 @@ while (fgets(str, 1023, f)) if (ParseAddress(ta, &rul) != 0) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ReadRules() - Error in file '%s' at line %d. Error in adress.\n", rulesFileName.c_str(), lineNumber); WriteServLog("Error in file %s. Error in adress. Line %d.", rulesFileName.c_str(), lineNumber); fclose(f); @@ -769,12 +776,14 @@ STG_LOCKER lock(&mutex, __FILE__, __LINE__); if (ReadRules(true)) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::Reload() - Failed to reload rules.\n"); WriteServLog("TRAFFCOUNTER: Cannot reload rules. Errors found."); return -1; } FreeRules(); ReadRules(); +printfd(__FILE__, "TRAFFCOUNTER_IMPL::Reload() - Reload rules successfull.\n"); WriteServLog("TRAFFCOUNTER: Reload rules successfull."); return 0; } @@ -829,6 +838,7 @@ if (n == ':') // port if (!(rule->proto == tcp || rule->proto == udp || rule->proto == tcp_udp)) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ParseAddress() - No ports specified for this protocol.\n"); WriteServLog("No ports specified for this protocol."); return true; } @@ -887,6 +897,7 @@ rule->mask = CalcMask(msk); if ((ip & rule->mask) != ip) { + printfd(__FILE__, "TRAFFCOUNTER_IMPL::ParseAddress() - Address does'n match mask.\n"); WriteServLog("Address does'n match mask."); return true; } -- 2.44.2 From 8e739b36a5c795435e2820323e00da1dd8974e59 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 23:06:57 +0300 Subject: [PATCH 10/16] -MG removed from deps generation in stglibs Now it is possible to use clang to build Stargazer! --- stglibs/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stglibs/Makefile.in b/stglibs/Makefile.in index 0417eaff..a0c854e6 100644 --- a/stglibs/Makefile.in +++ b/stglibs/Makefile.in @@ -89,7 +89,7 @@ endif deps: $(SRCS) ../../Makefile.conf @>deps ;\ for file in $(SRCS); do\ - echo "`$(CC) $(CXXFLAGS) $(SEARCH_DIRS) $(DEFS) -MM -MG $$file` Makefile ../../Makefile.conf" >> deps ;\ + echo "`$(CC) $(CXXFLAGS) $(SEARCH_DIRS) $(DEFS) -MM $$file` Makefile ../../Makefile.conf" >> deps ;\ echo -e '\t$$(CC) $(CXXFLAGS) $(SEARCH_DIRS) $(DEFS) -c $$<' >> deps ;\ done -- 2.44.2 From 9be9056b5ebc906d9e64ed164552c730dbe333a6 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 23:07:51 +0300 Subject: [PATCH 11/16] Fix MODULE_SETTINGS forward declaration type (class -> struct) --- include/stg/plugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/stg/plugin.h b/include/stg/plugin.h index d196b353..35a5a4c9 100644 --- a/include/stg/plugin.h +++ b/include/stg/plugin.h @@ -39,7 +39,7 @@ class TRAFFCOUNTER; class SETTINGS; class STORE; -class MODULE_SETTINGS; +struct MODULE_SETTINGS; class PLUGIN : private NONCOPYABLE { public: -- 2.44.2 From 184388a94edb6435175bf59c54b8579c93a19d07 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 11 Apr 2011 23:08:26 +0300 Subject: [PATCH 12/16] Fix TARIFF_DATA forward declaration type (class -> struct) --- include/stg/tariffs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/stg/tariffs.h b/include/stg/tariffs.h index 1f91948f..8c098c8b 100644 --- a/include/stg/tariffs.h +++ b/include/stg/tariffs.h @@ -26,7 +26,7 @@ class ADMIN; class TARIFF; -class TARIFF_DATA; +struct TARIFF_DATA; class TARIFFS { public: -- 2.44.2 From 0d979c5993dfa89dcb4a5143202304bba6c55b17 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Tue, 12 Apr 2011 10:07:33 +0300 Subject: [PATCH 13/16] Obsolete files removed --- projects/stargazer/devbuild | 5 ----- projects/stargazer/sandboxstart | 17 ----------------- projects/stargazer/startstg | 13 ------------- 3 files changed, 35 deletions(-) delete mode 100755 projects/stargazer/devbuild delete mode 100755 projects/stargazer/sandboxstart delete mode 100755 projects/stargazer/startstg diff --git a/projects/stargazer/devbuild b/projects/stargazer/devbuild deleted file mode 100755 index 05856b20..00000000 --- a/projects/stargazer/devbuild +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -export CFLAGS=-DTRAFF_STAT_WITH_PORTS -./build debug - diff --git a/projects/stargazer/sandboxstart b/projects/stargazer/sandboxstart deleted file mode 100755 index 348244d1..00000000 --- a/projects/stargazer/sandboxstart +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -sandbox_dir=$1 - -export LD_LIBRARY_PATH=$sandbox_dir/libs/ - -$sandbox_dir/sbin/stargazer $sandbox_dir/etc/stargazer - -if [ $? == 0 ] -then - echo "Start successfull" - exit 0 -else - echo "Start failed" - exit 1 -fi - diff --git a/projects/stargazer/startstg b/projects/stargazer/startstg deleted file mode 100755 index 7a0b3b8d..00000000 --- a/projects/stargazer/startstg +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -LD_LIBRARY_PATH=../../lib ./stargazer /etc/stargazer -#./stargazer /etc/stargazer.a - -if [ $? == 0 ] -then - echo "Start successfull" -else - echo "Start failed" -fi - -#./stargazer /etc/stargazer \ No newline at end of file -- 2.44.2 From 96f8ba7ed42706e7d875ffd0dac3f62ec4c43ba5 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Tue, 12 Apr 2011 12:36:47 +0300 Subject: [PATCH 14/16] Commented debug ouput removed --- projects/stargazer/plugins/store/files/file_store.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/projects/stargazer/plugins/store/files/file_store.cpp b/projects/stargazer/plugins/store/files/file_store.cpp index a0c3f915..255f0134 100644 --- a/projects/stargazer/plugins/store/files/file_store.cpp +++ b/projects/stargazer/plugins/store/files/file_store.cpp @@ -1362,8 +1362,6 @@ if (cf.ReadString("password", &p, "*")) memset(passwordE, 0, sizeof(passwordE)); strncpy(passwordE, p.c_str(), 2*ADM_PASSWD_LEN); -//printfd(__FILE__, "passwordE %s\n", passwordE); - memset(pass, 0, sizeof(pass)); if (passwordE[0] != 0) -- 2.44.2 From c31d4290750d0d9032ac8b91f432a990f0645c71 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Tue, 12 Apr 2011 12:37:31 +0300 Subject: [PATCH 15/16] Do not stop on \0 while encoding binary to string --- stglibs/common.lib/common.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/stglibs/common.lib/common.cpp b/stglibs/common.lib/common.cpp index 37ce079d..d0f1ff4d 100644 --- a/stglibs/common.lib/common.cpp +++ b/stglibs/common.lib/common.cpp @@ -368,12 +368,6 @@ void Encode12(char * dst, const char * src, size_t srcLen) { for (size_t i = 0; i <= srcLen; i++) { - if (src[i] == 0) - { - dst[i * 2] = 'a'; - dst[i * 2 + 1] = 'a'; - break; - } char c1 = src[i] & 0x0f; char c2 = (src[i] & 0xf0) >> 4; -- 2.44.2 From a6b41dac21eb82e37961ae32328d5816c135ecd6 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Tue, 12 Apr 2011 14:04:20 +0300 Subject: [PATCH 16/16] Fix MODULE_SETTINGS forward declaration type (class -> struct) in converotr --- projects/convertor/settings_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/convertor/settings_impl.h b/projects/convertor/settings_impl.h index 64d4b9fc..eec21d68 100644 --- a/projects/convertor/settings_impl.h +++ b/projects/convertor/settings_impl.h @@ -33,7 +33,7 @@ #include #include -class MODULE_SETTINGS; +struct MODULE_SETTINGS; class DOTCONFDocumentNode; class SETTINGS_IMPL { -- 2.44.2