]> git.stg.codes - stg.git/commitdiff
Fix trailing whitespaces.
authorMaksym Mamontov <madf@madf.info>
Sun, 28 Jun 2020 15:14:35 +0000 (18:14 +0300)
committerMaksym Mamontov <madf@madf.info>
Sun, 28 Jun 2020 15:14:35 +0000 (18:14 +0300)
52 files changed:
projects/make_tarball/get_from_cvs
projects/rlm_stg/stg_client.cpp
projects/rscriptd/rscriptd.conf
projects/stargazer/Makefile
projects/stargazer/actions.inl.h
projects/stargazer/inst/freebsd/etc/stargazer/OnConnect
projects/stargazer/inst/freebsd/etc/stargazer/OnDisconnect
projects/stargazer/inst/freebsd/etc/stargazer/OnUserAdd
projects/stargazer/inst/freebsd/etc/stargazer/conf-available.d/mod_ia.conf
projects/stargazer/inst/freebsd/etc/stargazer/conf-available.d/mod_radius.conf
projects/stargazer/inst/freebsd/etc/stargazer/conf-available.d/mod_remote_script.conf
projects/stargazer/inst/freebsd/etc/stargazer/stargazer.conf
projects/stargazer/inst/linux/etc/stargazer/conf-available.d/mod_ia.conf
projects/stargazer/inst/linux/etc/stargazer/conf-available.d/mod_radius.conf
projects/stargazer/inst/linux/etc/stargazer/conf-available.d/mod_remote_script.conf
projects/stargazer/inst/linux/etc/stargazer/stargazer.conf
projects/stargazer/inst/var/00-alter-01.postgresql.sql
projects/stargazer/inst/var/00-alter-01.sql
projects/stargazer/inst/var/00-base-00.postgresql.sql
projects/stargazer/inst/var/00-base-00.sql
projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp
projects/stargazer/plugins/capture/cap_debug/checksum.h
projects/stargazer/plugins/capture/cap_debug/constants.h
projects/stargazer/plugins/capture/cap_debug/ip.c
projects/stargazer/plugins/capture/cap_debug/libpal.h
projects/stargazer/plugins/capture/cap_debug/packet.c
projects/stargazer/plugins/capture/cap_debug/tcp.c
projects/stargazer/plugins/capture/cap_debug/types.h
projects/stargazer/plugins/capture/ipq_linux/libipq.c
projects/stargazer/plugins/capture/ipq_linux/libipq.h
projects/stargazer/plugins/configuration/rpcconfig/users_methods.cpp
projects/stargazer/plugins/other/smux/STG-MIB.mib
projects/stargazer/plugins/other/smux/handlers.cpp
projects/stargazer/plugins/store/files/file_store.cpp
projects/stargazer/plugins/store/mysql/mysql_store.cpp
projects/stargazer/plugins/store/mysql/mysql_store.h
projects/stargazer/scripts/clean_db
projects/stargazer/scripts/monitor
projects/stargazer/scripts/shaper/OnConnect
projects/stargazer/scripts/shaper/Readme.txt
projects/stargazer/scripts/shaper_vpn_radius/Readme
projects/stargazer/scripts/shaper_vpn_radius/firewall/firewall
projects/stargazer/scripts/shaper_vpn_radius/freeradius/radiusd.conf
projects/stargazer/scripts/shaper_vpn_radius/ppp/pptpd-options
projects/stargazer/scripts/shaper_vpn_radius/pptpd.conf
projects/stargazer/scripts/shaper_vpn_radius/stargazer/OnConnect
projects/stargazer/scripts/shaper_vpn_radius/stargazer/OnDisconnect
projects/stargazer/scripts/shaper_vpn_radius/stargazer/OnUserAdd
projects/stargazer/scripts/shaper_vpn_radius/stargazer/rules
projects/stargazer/scripts/shaper_vpn_radius/stargazer/stargazer.conf
projects/stargazer/settings_impl.h
stglibs/dotconfpp.lib/dotconfpp.cpp

index 362f40291629bbeb24050c3071f724e1538daa75..989c7668d6e0f7e8729892f7bc7069b5faeb51b3 100755 (executable)
@@ -15,7 +15,7 @@ send_user "checkout module $module";
 
 spawn ssh $user@$host
 expect {
 
 spawn ssh $user@$host
 expect {
-    "(yes/no)? " { 
+    "(yes/no)? " {
         send  "yes\r"
         send_user "Key accepted";
         }
         send  "yes\r"
         send_user "Key accepted";
         }
@@ -24,13 +24,13 @@ expect {
         send_user "Key accepting dont needed";
         }
     }
         send_user "Key accepting dont needed";
         }
     }
-    
-spawn cvs -d :ext:$user@$host:$cvsroot co -N -d $dir $module 
+
+spawn cvs -d :ext:$user@$host:$cvsroot co -N -d $dir $module
 expect {
     "assword:" {
         send "$pass\r"
         expect {
 expect {
     "assword:" {
         send "$pass\r"
         expect {
-            "assword:" { 
+            "assword:" {
                 send_user "<h3><font color=red>cvs checkout $module failed. Incorrect password</font></h3>";
                 exit 1
                 }
                 send_user "<h3><font color=red>cvs checkout $module failed. Incorrect password</font></h3>";
                 exit 1
                 }
@@ -46,13 +46,13 @@ expect {
                 }
             }
         }
                 }
             }
         }
-        
+
      "aborted" {
          send_user "<h3><font color=red>cvs checkout $module failed.</font></h3>";
          exit 1
          }
     }
      "aborted" {
          send_user "<h3><font color=red>cvs checkout $module failed.</font></h3>";
          exit 1
          }
     }
-  
+
 
 
 
 
 
 
index 113e71c97891ca42c284d73b4616f019eb9564f8..284c1e2bc6d22fff515a9a504165b9259b5d9572 100644 (file)
@@ -84,7 +84,7 @@ return 0;
 int STG_CLIENT::Send(const RAD_PACKET & packet)
 {
 /*char buf[RAD_MAX_PACKET_LEN];
 int STG_CLIENT::Send(const RAD_PACKET & packet)
 {
 /*char buf[RAD_MAX_PACKET_LEN];
-    
+
 Encrypt(&ctx, buf, (char *)&packet, sizeof(RAD_PACKET) / 8);
 
 int res = sendto(sock, buf, sizeof(RAD_PACKET), 0, (struct sockaddr *)&outerAddr, sizeof(outerAddr));
 Encrypt(&ctx, buf, (char *)&packet, sizeof(RAD_PACKET) / 8);
 
 int res = sendto(sock, buf, sizeof(RAD_PACKET), 0, (struct sockaddr *)&outerAddr, sizeof(outerAddr));
index 45b7b5c0cf28bc64d19fb885516f6be88357ba0e..47d944667993041cf879f953b056fd1c34ceb12c 100644 (file)
@@ -9,7 +9,7 @@
 LogFileName = /var/log/rscriptd.log
 
 # Amount of rscriptd-exec processes.
 LogFileName = /var/log/rscriptd.log
 
 # Amount of rscriptd-exec processes.
-# These processes are responsible for the execution of scripts 
+# These processes are responsible for the execution of scripts
 # OnConnect and OnDisconnect.
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
 # OnConnect and OnDisconnect.
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
index e127d4f8a4eb27e9f07b6e7ab24b9485c1475942..70aa6b4be7c0146048a28b4b096d999a41bcd823 100644 (file)
@@ -60,7 +60,7 @@ all: libs plugins $(PROG)
 libs:
        $(MAKE) -C $(DIR_LIBSRC)
 
 libs:
        $(MAKE) -C $(DIR_LIBSRC)
 
-plugins: libs 
+plugins: libs
        $(MAKE) -C $(DIR_PLUGINS)
 
 $(PROG): $(OBJS)
        $(MAKE) -C $(DIR_PLUGINS)
 
 $(PROG): $(OBJS)
@@ -114,7 +114,7 @@ endif
 
        install -m $(DATA_MODE) -o $(OWNER) $(ETC_DIR)/rules $(PREFIX)/etc/stargazer/rules
        install -m $(BIN_MODE) -o $(OWNER) $(ETC_DIR)/On* $(PREFIX)/etc/stargazer/
 
        install -m $(DATA_MODE) -o $(OWNER) $(ETC_DIR)/rules $(PREFIX)/etc/stargazer/rules
        install -m $(BIN_MODE) -o $(OWNER) $(ETC_DIR)/On* $(PREFIX)/etc/stargazer/
-       
+
        # Install file db
        mkdir -m $(DIR_MODE) -p $(PREFIX)/var/stargazer/admins
        mkdir -m $(DIR_MODE) -p $(PREFIX)/var/stargazer/tariffs
        # Install file db
        mkdir -m $(DIR_MODE) -p $(PREFIX)/var/stargazer/admins
        mkdir -m $(DIR_MODE) -p $(PREFIX)/var/stargazer/tariffs
index b5b3f8a5a20090977ed3f3f2cd43bb8aad5929f4..392626ab67b29cb2605b9454f94bf5460782e0c7 100644 (file)
@@ -29,7 +29,7 @@ ACTIONS_LIST::~ACTIONS_LIST()
     STG_LOCKER lock(&mutex);
 
     parent::iterator it(parent::begin());
     STG_LOCKER lock(&mutex);
 
     parent::iterator it(parent::begin());
-    while (it != parent::end()) 
+    while (it != parent::end())
         {
         delete *it++;
         }
         {
         delete *it++;
         }
@@ -40,28 +40,28 @@ pthread_mutex_destroy(&mutex);
 
 inline
 ACTIONS_LIST::parent::iterator ACTIONS_LIST::begin()
 
 inline
 ACTIONS_LIST::parent::iterator ACTIONS_LIST::begin()
-{ 
+{
 STG_LOCKER lock(&mutex);
 return parent::begin();
 }
 
 inline
 ACTIONS_LIST::parent::iterator ACTIONS_LIST::end()
 STG_LOCKER lock(&mutex);
 return parent::begin();
 }
 
 inline
 ACTIONS_LIST::parent::iterator ACTIONS_LIST::end()
-{ 
+{
 STG_LOCKER lock(&mutex);
 return parent::end();
 }
 
 inline
 ACTIONS_LIST::parent::const_iterator ACTIONS_LIST::begin() const
 STG_LOCKER lock(&mutex);
 return parent::end();
 }
 
 inline
 ACTIONS_LIST::parent::const_iterator ACTIONS_LIST::begin() const
-{ 
+{
 STG_LOCKER lock(&mutex);
 return parent::begin();
 }
 
 inline
 ACTIONS_LIST::parent::const_iterator ACTIONS_LIST::end() const
 STG_LOCKER lock(&mutex);
 return parent::begin();
 }
 
 inline
 ACTIONS_LIST::parent::const_iterator ACTIONS_LIST::end() const
-{ 
+{
 STG_LOCKER lock(&mutex);
 return parent::end();
 }
 STG_LOCKER lock(&mutex);
 return parent::end();
 }
index 912ed7d983a83312e0a8012dfd202d34ebc5dcfb..95c31ae9c006a2b1011e64e8f1c19d2096390b07 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 #Этот скрипт вызывается в момент, когда пользователь
 #! /bin/sh
 
 #Этот скрипт вызывается в момент, когда пользователь
-#успешно прошел авторизацию на сервере. Задача скрипта - перестроить 
+#успешно прошел авторизацию на сервере. Задача скрипта - перестроить
 #файрвол так, что бы пользователь получил доступ в интернет
 
 # Login
 #файрвол так, что бы пользователь получил доступ в интернет
 
 # Login
index 6169ddc83cdfcb25b83b52cf291f7e9024a116a1..4069b17856840166205aefb71ca639c41198addc 100755 (executable)
@@ -3,7 +3,7 @@
 # Этот скрипт вызывается в момент, когда пользователь
 # желает отключится от интернета или вышел таймаут у пользователя
 # и сервер сам отключает пользователя
 # Этот скрипт вызывается в момент, когда пользователь
 # желает отключится от интернета или вышел таймаут у пользователя
 # и сервер сам отключает пользователя
-# Задача скрипта подобна задаче скрипта OnConnect - перестроить 
+# Задача скрипта подобна задаче скрипта OnConnect - перестроить
 # файрвол так, что бы пользователю закрыть доступ в интернет
 
 # Login
 # файрвол так, что бы пользователю закрыть доступ в интернет
 
 # Login
index 22d321cc02300c89c7a566e897efa07fbd4a56bc..923569c77723465004bf5df61e837f2c5e7d53b7 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Использование (неиспользование) этого скрипта дело вкуса.
 # Он не выполняет критических функций. Его задача автматизировать
 
 # Использование (неиспользование) этого скрипта дело вкуса.
 # Он не выполняет критических функций. Его задача автматизировать
-# действия характерные при добавлении пользователя сети, например добавлекние 
+# действия характерные при добавлении пользователя сети, например добавлекние
 # пользователю почты
 
 # Login
 # пользователю почты
 
 # Login
index 69b5eae323f9ab5060489cfe15e590daeb67d4fd..50d35f81faafc2ba522fbe46f4dd62455144e124 100644 (file)
@@ -8,14 +8,14 @@
 
     # The time interval between sending an alive query to the user
     # and updating statistics
 
     # The time interval between sending an alive query to the user
     # and updating statistics
-    # Parameter: required 
+    # Parameter: required
     # Values: 5 ... 600 (seconds)
     # Default: 60
     UserDelay = 60
 
     # Values: 5 ... 600 (seconds)
     # Default: 60
     UserDelay = 60
 
-    # User timeout. If authorizer does not respond during this time, 
+    # User timeout. If authorizer does not respond during this time,
     # the user will be disconnected
     # the user will be disconnected
-    # Parameter: required 
+    # Parameter: required
     # Values: 5 ... 600
     # Default: 60
     UserTimeout = 65
     # Values: 5 ... 600
     # Default: 60
     UserTimeout = 65
@@ -31,7 +31,7 @@
     # FreeMb = cash - amount of money for which the user can download for free
     # FreeMb = none - no transfer
     # Default: cash
     # FreeMb = cash - amount of money for which the user can download for free
     # FreeMb = none - no transfer
     # Default: cash
-    # Parameter: required 
+    # Parameter: required
     # Values: different, see above
     # Default: cash
     FreeMb = cash
     # Values: different, see above
     # Default: cash
     FreeMb = cash
index edc94d50888e58040e9b40ee4c9be6b20d8da394..881eb038fed445f8840042c97bd8182662b6d6e7 100644 (file)
@@ -18,7 +18,7 @@
     # Default: 6666
     Port = 6666
 
     # Default: 6666
     Port = 6666
 
-    # List of services for which will be carried out FreeRADIUS authentication 
+    # List of services for which will be carried out FreeRADIUS authentication
     # Note: Parameter can be blank
     # Parameter: required
     # Value: any, supported by software
     # Note: Parameter can be blank
     # Parameter: required
     # Value: any, supported by software
@@ -31,4 +31,4 @@
     # Value: any, supported by software
     # Default: Framed-User
     AcctServices = Framed-User
     # Value: any, supported by software
     # Default: Framed-User
     AcctServices = Framed-User
-</Module>
\ No newline at end of file
+</Module>
index a71350c868093994373161f6b1712b9418bd46c1..9f4e8ec520325ed79b81981acf6adf88448c7d37 100644 (file)
 
     # Define which user parameters are transferred to a remote server in addition to
     # other parameters that transfered by default (ID, IP, Login, Cash, Dirs).
 
     # Define which user parameters are transferred to a remote server in addition to
     # other parameters that transfered by default (ID, IP, Login, Cash, Dirs).
-    # Note: Parameter can be blank. 
-    # Parameter: required  
-    # Values: Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, 
-    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs, 
+    # Note: Parameter can be blank.
+    # Parameter: required
+    # Values: Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName,
+    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs,
     # Userdata0...Userdata9
     # Default: Cash Tariff EnabledDirs
     UserParams = Cash Tariff EnabledDirs
     # Userdata0...Userdata9
     # Default: Cash Tariff EnabledDirs
     UserParams = Cash Tariff EnabledDirs
index c1f4fe929bfcb2deae10b5eab7f4c763ea12d067..769196099622de3a21de4af14916b4431e2ca450 100644 (file)
@@ -44,7 +44,7 @@ DayFee = 1
 # Fee charged at the last (yes) or first (no) day of tariffication period.
 # Defines how the fee will be charged in the transition to the new tariff.
 # User has tariff A with fee 100. Changing it to tariff B with fee 200
 # Fee charged at the last (yes) or first (no) day of tariffication period.
 # Defines how the fee will be charged in the transition to the new tariff.
 # User has tariff A with fee 100. Changing it to tariff B with fee 200
-# will result in charging user's account at 100 if DayFeeIsLastDay = yes 
+# will result in charging user's account at 100 if DayFeeIsLastDay = yes
 # and at 200, if DayFeeIsLastDay = no
 # Parameter: required
 # Values: yes, no
 # and at 200, if DayFeeIsLastDay = no
 # Parameter: required
 # Values: yes, no
@@ -74,7 +74,7 @@ FreeMbAllowInet = no
 # Defines what will be written in the traffic cost in detail_stat.
 # If user still has the prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost willn't be written in detail_stat.
 # Defines what will be written in the traffic cost in detail_stat.
 # If user still has the prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost willn't be written in detail_stat.
-# If user doestn't have prepaid traffic and WriteFreeMbTraffCost = no, 
+# If user doestn't have prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost will be written in detail_stat.
 # When WriteFreeMbTraffCost = yes the traffic cost will be recorded in any case.
 # Parameter: required
 # then the traffic cost will be written in detail_stat.
 # When WriteFreeMbTraffCost = yes the traffic cost will be recorded in any case.
 # Parameter: required
@@ -82,14 +82,14 @@ FreeMbAllowInet = no
 # Default: yes
 WriteFreeMbTraffCost = yes
 
 # Default: yes
 WriteFreeMbTraffCost = yes
 
-# Charge a full monthly fee even if user was "frozen" a part 
+# Charge a full monthly fee even if user was "frozen" a part
 # of the tariffication period
 # Parameter: optional
 # Values: yes, no
 # Default: no
 FullFee = no
 
 # of the tariffication period
 # Parameter: optional
 # Values: yes, no
 # Default: no
 FullFee = no
 
-# Allow user to see and use a full cash (yes) or hide a part of it (no) 
+# Allow user to see and use a full cash (yes) or hide a part of it (no)
 # for the next fee charge
 # Parameter: optional
 # Values: yes, no
 # for the next fee charge
 # Parameter: optional
 # Values: yes, no
@@ -115,8 +115,8 @@ FullFee = no
 </DirNames>
 
 # Amount of stg-exec processes.
 </DirNames>
 
 # Amount of stg-exec processes.
-# These processes are responsible for the execution of scripts OnConnect, 
-# OnDisconnect, etc. 
+# These processes are responsible for the execution of scripts OnConnect,
+# OnDisconnect, etc.
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
 # Parameter: optional
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
 # Parameter: optional
@@ -140,9 +140,9 @@ ModulesPath = /usr/lib/stg
 
 # Directory where the "monitor" files are located.
 # A blank files will be created in this directory. The modification time of such
 
 # Directory where the "monitor" files are located.
 # A blank files will be created in this directory. The modification time of such
-# files will be changed about once a minute. If server crashes or some of server 
+# files will be changed about once a minute. If server crashes or some of server
 # component hang, the files will stop refreshing, and on this basis we can define
 # component hang, the files will stop refreshing, and on this basis we can define
-# the failure of the server and if necessary restart. 
+# the failure of the server and if necessary restart.
 # If option is omitted or blank, the monitoring is not performed.
 # Parameter: optional
 # Value: file path
 # If option is omitted or blank, the monitoring is not performed.
 # Parameter: optional
 # Value: file path
index 69b5eae323f9ab5060489cfe15e590daeb67d4fd..bddc564442100057338808b028b22679ef775acc 100644 (file)
@@ -8,14 +8,14 @@
 
     # The time interval between sending an alive query to the user
     # and updating statistics
 
     # The time interval between sending an alive query to the user
     # and updating statistics
-    # Parameter: required 
+    # Parameter: required
     # Values: 5 ... 600 (seconds)
     # Default: 60
     UserDelay = 60
 
     # Values: 5 ... 600 (seconds)
     # Default: 60
     UserDelay = 60
 
-    # User timeout. If authorizer does not respond during this time, 
+    # User timeout. If authorizer does not respond during this time,
     # the user will be disconnected
     # the user will be disconnected
-    # Parameter: required 
+    # Parameter: required
     # Values: 5 ... 600
     # Default: 60
     UserTimeout = 65
     # Values: 5 ... 600
     # Default: 60
     UserTimeout = 65
     # FreeMb = cash - amount of money for which the user can download for free
     # FreeMb = none - no transfer
     # Default: cash
     # FreeMb = cash - amount of money for which the user can download for free
     # FreeMb = none - no transfer
     # Default: cash
-    # Parameter: required 
+    # Parameter: required
     # Values: different, see above
     # Default: cash
     FreeMb = cash
     # Values: different, see above
     # Default: cash
     FreeMb = cash
+
+    # Enables extended protocol logging.
+    # Parameter: optional
+    # Values: yes, no
+    # Default: no
+    # LogProtocolErrors = no
 </Module>
 </Module>
index edc94d50888e58040e9b40ee4c9be6b20d8da394..881eb038fed445f8840042c97bd8182662b6d6e7 100644 (file)
@@ -18,7 +18,7 @@
     # Default: 6666
     Port = 6666
 
     # Default: 6666
     Port = 6666
 
-    # List of services for which will be carried out FreeRADIUS authentication 
+    # List of services for which will be carried out FreeRADIUS authentication
     # Note: Parameter can be blank
     # Parameter: required
     # Value: any, supported by software
     # Note: Parameter can be blank
     # Parameter: required
     # Value: any, supported by software
@@ -31,4 +31,4 @@
     # Value: any, supported by software
     # Default: Framed-User
     AcctServices = Framed-User
     # Value: any, supported by software
     # Default: Framed-User
     AcctServices = Framed-User
-</Module>
\ No newline at end of file
+</Module>
index a71350c868093994373161f6b1712b9418bd46c1..9f4e8ec520325ed79b81981acf6adf88448c7d37 100644 (file)
 
     # Define which user parameters are transferred to a remote server in addition to
     # other parameters that transfered by default (ID, IP, Login, Cash, Dirs).
 
     # Define which user parameters are transferred to a remote server in addition to
     # other parameters that transfered by default (ID, IP, Login, Cash, Dirs).
-    # Note: Parameter can be blank. 
-    # Parameter: required  
-    # Values: Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, 
-    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs, 
+    # Note: Parameter can be blank.
+    # Parameter: required
+    # Values: Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName,
+    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs,
     # Userdata0...Userdata9
     # Default: Cash Tariff EnabledDirs
     UserParams = Cash Tariff EnabledDirs
     # Userdata0...Userdata9
     # Default: Cash Tariff EnabledDirs
     UserParams = Cash Tariff EnabledDirs
index c1f4fe929bfcb2deae10b5eab7f4c763ea12d067..769196099622de3a21de4af14916b4431e2ca450 100644 (file)
@@ -44,7 +44,7 @@ DayFee = 1
 # Fee charged at the last (yes) or first (no) day of tariffication period.
 # Defines how the fee will be charged in the transition to the new tariff.
 # User has tariff A with fee 100. Changing it to tariff B with fee 200
 # Fee charged at the last (yes) or first (no) day of tariffication period.
 # Defines how the fee will be charged in the transition to the new tariff.
 # User has tariff A with fee 100. Changing it to tariff B with fee 200
-# will result in charging user's account at 100 if DayFeeIsLastDay = yes 
+# will result in charging user's account at 100 if DayFeeIsLastDay = yes
 # and at 200, if DayFeeIsLastDay = no
 # Parameter: required
 # Values: yes, no
 # and at 200, if DayFeeIsLastDay = no
 # Parameter: required
 # Values: yes, no
@@ -74,7 +74,7 @@ FreeMbAllowInet = no
 # Defines what will be written in the traffic cost in detail_stat.
 # If user still has the prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost willn't be written in detail_stat.
 # Defines what will be written in the traffic cost in detail_stat.
 # If user still has the prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost willn't be written in detail_stat.
-# If user doestn't have prepaid traffic and WriteFreeMbTraffCost = no, 
+# If user doestn't have prepaid traffic and WriteFreeMbTraffCost = no,
 # then the traffic cost will be written in detail_stat.
 # When WriteFreeMbTraffCost = yes the traffic cost will be recorded in any case.
 # Parameter: required
 # then the traffic cost will be written in detail_stat.
 # When WriteFreeMbTraffCost = yes the traffic cost will be recorded in any case.
 # Parameter: required
@@ -82,14 +82,14 @@ FreeMbAllowInet = no
 # Default: yes
 WriteFreeMbTraffCost = yes
 
 # Default: yes
 WriteFreeMbTraffCost = yes
 
-# Charge a full monthly fee even if user was "frozen" a part 
+# Charge a full monthly fee even if user was "frozen" a part
 # of the tariffication period
 # Parameter: optional
 # Values: yes, no
 # Default: no
 FullFee = no
 
 # of the tariffication period
 # Parameter: optional
 # Values: yes, no
 # Default: no
 FullFee = no
 
-# Allow user to see and use a full cash (yes) or hide a part of it (no) 
+# Allow user to see and use a full cash (yes) or hide a part of it (no)
 # for the next fee charge
 # Parameter: optional
 # Values: yes, no
 # for the next fee charge
 # Parameter: optional
 # Values: yes, no
@@ -115,8 +115,8 @@ FullFee = no
 </DirNames>
 
 # Amount of stg-exec processes.
 </DirNames>
 
 # Amount of stg-exec processes.
-# These processes are responsible for the execution of scripts OnConnect, 
-# OnDisconnect, etc. 
+# These processes are responsible for the execution of scripts OnConnect,
+# OnDisconnect, etc.
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
 # Parameter: optional
 # Amount of processes means how many scripts can be executed simultaneously.
 # Recommend to leave 1 to avoid errors when executing scripts
 # Parameter: optional
@@ -140,9 +140,9 @@ ModulesPath = /usr/lib/stg
 
 # Directory where the "monitor" files are located.
 # A blank files will be created in this directory. The modification time of such
 
 # Directory where the "monitor" files are located.
 # A blank files will be created in this directory. The modification time of such
-# files will be changed about once a minute. If server crashes or some of server 
+# files will be changed about once a minute. If server crashes or some of server
 # component hang, the files will stop refreshing, and on this basis we can define
 # component hang, the files will stop refreshing, and on this basis we can define
-# the failure of the server and if necessary restart. 
+# the failure of the server and if necessary restart.
 # If option is omitted or blank, the monitoring is not performed.
 # Parameter: optional
 # Value: file path
 # If option is omitted or blank, the monitoring is not performed.
 # Parameter: optional
 # Value: file path
index 7fd811176ccd7a7570bca9b37058fae9a7d27600..781a941e96f2110979b5be7148ead25933253779 100644 (file)
@@ -27,7 +27,7 @@ BEGIN
         RAISE EXCEPTION 'User % not found', _login;
         RETURN -1;
     END IF;
         RAISE EXCEPTION 'User % not found', _login;
         RETURN -1;
     END IF;
-    
+
     INSERT INTO tb_sessions_log
         (fk_user,
          event_time,
     INSERT INTO tb_sessions_log
         (fk_user,
          event_time,
index f76ae5f8494ba33ba16ce454e98d1e30b2fc3eb5..3e9dd8f834ee0e9a6cd7f83a112ad571e2608ce0 100644 (file)
@@ -7,15 +7,15 @@ alter table tb_users add disabled_detail_stat dm_bool;
 drop procedure sp_add_user;
 
 set term !! ;
 drop procedure sp_add_user;
 
 set term !! ;
-create procedure sp_add_user(name varchar(32), dirs integer)                             
-as  
+create procedure sp_add_user(name varchar(32), dirs integer)
+as
 declare variable pk_user integer;
 declare variable pk_user integer;
-declare variable pk_stat integer;                                                        
-begin                                                                                    
-    pk_user = gen_id(gn_pk_user, 1);                                                     
+declare variable pk_stat integer;
+begin
+    pk_user = gen_id(gn_pk_user, 1);
     insert into tb_users(pk_user, fk_tariff, fk_tariff_change, fk_corporation, address, always_online, credit, credit_expire, disabled, disabled_detail_stat, email, grp, note, passive, passwd, phone, name, real_name) values (:pk_user, NULL, NULL, NULL, '', 0, 0, 'now', 0, 0, '', '_', '', 0, '', '', :name, '');
     insert into tb_users(pk_user, fk_tariff, fk_tariff_change, fk_corporation, address, always_online, credit, credit_expire, disabled, disabled_detail_stat, email, grp, note, passive, passwd, phone, name, real_name) values (:pk_user, NULL, NULL, NULL, '', 0, 0, 'now', 0, 0, '', '_', '', 0, '', '', :name, '');
-    pk_stat = gen_id(gn_pk_stat, 1);                                                     
-    insert into tb_stats values (:pk_stat, :pk_user, 0, 0, 'now', 0, 'now', 0, 'now');   
+    pk_stat = gen_id(gn_pk_stat, 1);
+    insert into tb_stats values (:pk_stat, :pk_user, 0, 0, 'now', 0, 'now', 0, 'now');
     while (dirs > 0) do
     begin
         insert into tb_stats_traffic (fk_stat, dir_num, upload, download) values (:pk_stat, :dirs - 1, 0, 0);
     while (dirs > 0) do
     begin
         insert into tb_stats_traffic (fk_stat, dir_num, upload, download) values (:pk_stat, :dirs - 1, 0, 0);
index 6b48d75cef819d27ba1a55a5d7ac3934ba54c1ac..6d4b5c4738073ee67bdb91b127fcbeac7ca8e512 100644 (file)
@@ -592,7 +592,7 @@ BEGIN
         RAISE EXCEPTION 'User % not found', _login;
         RETURN -1;
     END IF;
         RAISE EXCEPTION 'User % not found', _login;
         RETURN -1;
     END IF;
-    
+
     INSERT INTO tb_sessions_log
         (fk_user,
          event_time,
     INSERT INTO tb_sessions_log
         (fk_user,
          event_time,
index a452d8107f3e14847157db6e42825e104c22da34..f8785795b6da15257a7f08770e6ab6e9ff218506 100644 (file)
@@ -54,7 +54,7 @@
  * CREATE DATABASE 'localhost:/var/stg/stargazer.fdb' USER 'stg' PASSWORD '123456' DEFAULT CHARACTER SET UTF8;
  */
 
  * CREATE DATABASE 'localhost:/var/stg/stargazer.fdb' USER 'stg' PASSWORD '123456' DEFAULT CHARACTER SET UTF8;
  */
 
+
 
 /*
  *****************************************************************************
 
 /*
  *****************************************************************************
@@ -526,7 +526,7 @@ set term ; !!
 set term !! ;
 create procedure sp_add_message(pk_message integer, login varchar(32), ver integer, msg_type integer, last_send_time integer, creation_time integer, show_time integer, repeat integer, repeat_period integer, msg_text varchar(256))
 returns(res integer)
 set term !! ;
 create procedure sp_add_message(pk_message integer, login varchar(32), ver integer, msg_type integer, last_send_time integer, creation_time integer, show_time integer, repeat integer, repeat_period integer, msg_text varchar(256))
 returns(res integer)
-as  
+as
 begin
     if (:pk_message is null) then
     begin
 begin
     if (:pk_message is null) then
     begin
@@ -536,7 +536,7 @@ begin
                                        :ver,
                                        :msg_type,
                                        :last_send_time,
                                        :ver,
                                        :msg_type,
                                        :last_send_time,
-                                       :creation_time, 
+                                       :creation_time,
                                        :show_time,
                                        :repeat,
                                        :repeat_period,
                                        :show_time,
                                        :repeat,
                                        :repeat_period,
@@ -582,8 +582,8 @@ begin
     insert into tb_tariffs (pk_tariff, name, fee, free, passive_cost, traff_type) values (:pk_tariff, :name, 0, 0, 0, 0);
     while (dirs > 0) do
     begin
     insert into tb_tariffs (pk_tariff, name, fee, free, passive_cost, traff_type) values (:pk_tariff, :name, 0, 0, 0, 0);
     while (dirs > 0) do
     begin
-        insert into tb_tariffs_params (fk_tariff, dir_num, price_day_a, 
-                                       price_day_b, price_night_a, price_night_b, 
+        insert into tb_tariffs_params (fk_tariff, dir_num, price_day_a,
+                                       price_day_b, price_night_a, price_night_b,
                                        threshold, time_day_begins, time_day_ends)
                    values (:pk_tariff, :dirs - 1, 0, 0, 0, 0, 0, '0:0', '0:0');
        dirs = dirs - 1;
                                        threshold, time_day_begins, time_day_ends)
                    values (:pk_tariff, :dirs - 1, 0, 0, 0, 0, 0, '0:0', '0:0');
        dirs = dirs - 1;
index 3aec35ae0b5b57f16f93d1b1561ae9387cde7574..9d5d6e91a9a3a6a88bb0fb8056933596993e06c7 100644 (file)
@@ -23,7 +23,7 @@
  $Date: 2010/03/25 15:18:48 $
  $Author: faust $
  */
  $Date: 2010/03/25 15:18:48 $
  $Author: faust $
  */
+
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
 #endif
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
 #endif
index 2698a52655823366739796850a264abb1a70dda3..8d4955a743217bfbc38b53f23a1d0d0044adbb9b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: checksum.h,v 1.1 2005/12/12 18:14:22 nobunaga Exp $ 
+/* $Id: checksum.h,v 1.1 2005/12/12 18:14:22 nobunaga Exp $
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
index e845a44c1cb54630fd88e2f2f20949531e9f9820..15d32c2f8b7247314293085b8c281c4fc084ce40 100644 (file)
@@ -32,7 +32,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 /*
 * Network Layer
 
 /*
 * Network Layer
-*/ 
+*/
 #define PKT_NET_IP     0x01
 #define PKT_NET_ICMP   0x02
 #define PKT_NET_IGMP   0x04
 #define PKT_NET_IP     0x01
 #define PKT_NET_ICMP   0x02
 #define PKT_NET_IGMP   0x04
index a2627177b278ce26e3582c8b38b0dea1584e1d2b..02bd10f1dbe675cfa69f64604ebb939bee74249c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: ip.c,v 1.1 2005/12/12 18:14:22 nobunaga Exp $ 
+/* $Id: ip.c,v 1.1 2005/12/12 18:14:22 nobunaga Exp $
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
@@ -37,7 +37,7 @@ pkt_ip_header(struct packet *pkt,
 
        if (!pkt)
                return EPKTINVALPTR;
 
        if (!pkt)
                return EPKTINVALPTR;
-       
+
         ip = (struct ip *) pkt->pkt_ptr;
 
         ip->ip_hl = iphdr_len;
         ip = (struct ip *) pkt->pkt_ptr;
 
         ip->ip_hl = iphdr_len;
index fa28d8e86fef172317e7ef32d2900bb4f7cf3de1..5f4761cfb069fefaee8dca8f729ec474f37014bf 100644 (file)
@@ -50,7 +50,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 * packet payload pointer pkt. You do NOT want to do that. Use the provided
 * library functions.
 * To be clear: don't do _anything_ with this struct. Just pass it as a
 * packet payload pointer pkt. You do NOT want to do that. Use the provided
 * library functions.
 * To be clear: don't do _anything_ with this struct. Just pass it as a
-* parameter, be happy and your programs will (hopefully) work. 
+* parameter, be happy and your programs will (hopefully) work.
 */
 struct packet {
        unsigned long   pkt_type;
 */
 struct packet {
        unsigned long   pkt_type;
@@ -70,7 +70,7 @@ struct pkt_socket {
        int rawfd;
        struct sockaddr_in *sckad;
        /*struct sockaddr_ll *sckll;*/
        int rawfd;
        struct sockaddr_in *sckad;
        /*struct sockaddr_ll *sckll;*/
-       socklen_t sckad_len;    
+       socklen_t sckad_len;
 };
 
 /* memory management */
 };
 
 /* memory management */
@@ -88,7 +88,7 @@ int pkt_tcp_header(struct packet *pkt, unsigned short int sport, unsigned short
 int pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr, unsigned int tcp_pkt_size);
 int pkt_tcp_option(struct packet *pkt, unsigned char kind, unsigned char len, void *optval, size_t optlen);
 
 int pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr, unsigned int tcp_pkt_size);
 int pkt_tcp_option(struct packet *pkt, unsigned char kind, unsigned char len, void *optval, size_t optlen);
 
-/* functions that might be useful and might be added some day ... 
+/* functions that might be useful and might be added some day ...
 int pkt_shift_data(struct packet *pkt, unsigned int from, unsigned int to, unsigned int len);
 int pkt_tcp_change_seqno(int rel_seq, int rel_ackseq);
 int pkt_tcp_set_seqno(unsigned int seq, unsigned int ackseq);
 int pkt_shift_data(struct packet *pkt, unsigned int from, unsigned int to, unsigned int len);
 int pkt_tcp_change_seqno(int rel_seq, int rel_ackseq);
 int pkt_tcp_set_seqno(unsigned int seq, unsigned int ackseq);
index 9405818ef50093f1598f4d28997fc383802c4830..b7cdc1724f8c7dbdc54f21f6abd204e432694753 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: packet.c,v 1.1 2005/12/12 18:14:22 nobunaga Exp $ 
+/* $Id: packet.c,v 1.1 2005/12/12 18:14:22 nobunaga Exp $
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
@@ -67,13 +67,13 @@ pkt_free(struct packet *pkt)
 
 /*
 <++doc++>
 
 /*
 <++doc++>
-@name int pkt_move_actptr(struct packet *pkt, int relmov) 
+@name int pkt_move_actptr(struct packet *pkt, int relmov)
 @desc This function moves the active pointer inside the packet.
 @param pkt the packet whose active ptr is to be moved
 @param relmov number of bytes the active ptr shall be moved. To move it backward, negative values may be used.
 <--doc-->
 */
 @desc This function moves the active pointer inside the packet.
 @param pkt the packet whose active ptr is to be moved
 @param relmov number of bytes the active ptr shall be moved. To move it backward, negative values may be used.
 <--doc-->
 */
-int 
+int
 pkt_move_actptr(struct packet *pkt, int relmov)
 {
        if (!pkt)
 pkt_move_actptr(struct packet *pkt, int relmov)
 {
        if (!pkt)
index ad39931daebbe1914568e041317eb3e5cb872cd2..48d898b063d262956527abd16a2120ea06a659fb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: tcp.c,v 1.2 2009/06/19 12:50:47 faust Exp $ 
+/* $Id: tcp.c,v 1.2 2009/06/19 12:50:47 faust Exp $
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
@@ -37,7 +37,7 @@ pkt_tcp_header(struct packet *pkt,
 
        if (!pkt)
                return EPKTINVALPTR;
 
        if (!pkt)
                return EPKTINVALPTR;
-       
+
        tcp = (struct tcphdr *) pkt->pkt_ptr;
        tcp->source = htons(sport);
         tcp->dest = htons(dport);
        tcp = (struct tcphdr *) pkt->pkt_ptr;
        tcp->source = htons(sport);
         tcp->dest = htons(dport);
@@ -63,10 +63,10 @@ pkt_tcp_header(struct packet *pkt,
 #   error "Adjust your <bits/endian.h> defines"
 #  endif
         } else {
 #   error "Adjust your <bits/endian.h> defines"
 #  endif
         } else {
-                tcp->fin = 0; 
+                tcp->fin = 0;
                 tcp->syn = 0;
                 tcp->rst = 0;
                 tcp->syn = 0;
                 tcp->rst = 0;
-                tcp->psh = 0; 
+                tcp->psh = 0;
                 tcp->ack = 0;
                 tcp->urg = 0;
                 tcp->res2 = 0;
                 tcp->ack = 0;
                 tcp->urg = 0;
                 tcp->res2 = 0;
@@ -76,7 +76,7 @@ pkt_tcp_header(struct packet *pkt,
 }
 
 int
 }
 
 int
-pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr, 
+pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr,
                unsigned int tcp_pkt_size)
 {
        char *tosum;
                unsigned int tcp_pkt_size)
 {
        char *tosum;
@@ -86,17 +86,17 @@ pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr,
 
        if (!pkt || !saddr || !daddr)
                return EPKTINVALPTR;
 
        if (!pkt || !saddr || !daddr)
                return EPKTINVALPTR;
-       
+
        if ((tcp_pkt_size + pkt->pkt_pos) > pkt->pkt_size -1)
                return EPKTRANGE;
        if ((tcp_pkt_size + pkt->pkt_pos) > pkt->pkt_size -1)
                return EPKTRANGE;
-       
+
        if ((tosum = (char *) malloc(tcp_pkt_size+sizeof(struct pseudohdr))) != NULL) {
                memset(tosum, 0, tcp_pkt_size+sizeof(struct pseudohdr));
                psh = (struct pseudohdr *) tosum;
                tcp = (struct tcphdr *) pkt->pkt_ptr;
 
                tcp->check = 0;
        if ((tosum = (char *) malloc(tcp_pkt_size+sizeof(struct pseudohdr))) != NULL) {
                memset(tosum, 0, tcp_pkt_size+sizeof(struct pseudohdr));
                psh = (struct pseudohdr *) tosum;
                tcp = (struct tcphdr *) pkt->pkt_ptr;
 
                tcp->check = 0;
-               
+
                if (inet_pton(AF_INET, saddr, &addr) < 0)
                        return EERRNO;
                psh->saddr = addr.s_addr;
                if (inet_pton(AF_INET, saddr, &addr) < 0)
                        return EERRNO;
                psh->saddr = addr.s_addr;
@@ -106,7 +106,7 @@ pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr,
                psh->zero = 0x00;
                psh->protocol = IPPROTO_TCP;
                psh->length = htons(tcp_pkt_size);
                psh->zero = 0x00;
                psh->protocol = IPPROTO_TCP;
                psh->length = htons(tcp_pkt_size);
-               
+
                memcpy(tosum + sizeof(struct pseudohdr), tcp, tcp_pkt_size);
                tcp->check = in_cksum((unsigned short *)tosum, tcp_pkt_size + sizeof(struct pseudohdr));
                free(tosum);
                memcpy(tosum + sizeof(struct pseudohdr), tcp, tcp_pkt_size);
                tcp->check = in_cksum((unsigned short *)tosum, tcp_pkt_size + sizeof(struct pseudohdr));
                free(tosum);
@@ -114,9 +114,9 @@ pkt_tcp_cksum(struct packet *pkt, char *saddr, char *daddr,
        } else
                return EERRNO;
 }
        } else
                return EERRNO;
 }
-               
+
 int
 int
-pkt_tcp_option(struct packet *pkt, unsigned char kind, 
+pkt_tcp_option(struct packet *pkt, unsigned char kind,
                unsigned char len, void *optval, size_t optlen)
 {
        void *vp;
                unsigned char len, void *optval, size_t optlen)
 {
        void *vp;
@@ -124,10 +124,10 @@ pkt_tcp_option(struct packet *pkt, unsigned char kind,
 
        if (!pkt)
                return EPKTINVALPTR;
 
        if (!pkt)
                return EPKTINVALPTR;
-       
+
        if ((pkt->pkt_size) < (pkt->pkt_pos+2+optlen))
                return EPKTRANGE;
        if ((pkt->pkt_size) < (pkt->pkt_pos+2+optlen))
                return EPKTRANGE;
-       
+
        vp = (void *)pkt->pkt_ptr;
 
        memcpy(vp, &kind, 1);
        vp = (void *)pkt->pkt_ptr;
 
        memcpy(vp, &kind, 1);
index 3d428fe9d3a22dd1fca0b90857af86a4d4d5641b..bb8b8a3f03b8cc2a701277b39bb756795decce66 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: types.h,v 1.1 2005/12/12 18:14:22 nobunaga Exp $ 
+/* $Id: types.h,v 1.1 2005/12/12 18:14:22 nobunaga Exp $
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
 
 Copyright (C) 2002 Marc Kirchner <kirchner@stud.fh-heilbronn.de>
 
index d0eb33b367acca1987c73f84697d9df3ad9a65d2..4c7341102dce34822b0013b21a3b4696fa204f73 100644 (file)
@@ -87,7 +87,7 @@ struct ipq_errmap_t
 
 static int ipq_errno = IPQ_ERR_NONE;
 
 
 static int ipq_errno = IPQ_ERR_NONE;
 
-static ssize_t ipq_netlink_sendto(const struct ipq_handle *h, 
+static ssize_t ipq_netlink_sendto(const struct ipq_handle *h,
                                   const void *msg, size_t len);
 
 static ssize_t ipq_netlink_recvfrom(const struct ipq_handle *h,
                                   const void *msg, size_t len);
 
 static ssize_t ipq_netlink_recvfrom(const struct ipq_handle *h,
@@ -296,7 +296,7 @@ int ipq_set_mode(const struct ipq_handle *h,
         ipq_peer_msg_t pm;
         char s[FAKE_ARRAY_SIZE];
         } req;
         ipq_peer_msg_t pm;
         char s[FAKE_ARRAY_SIZE];
         } req;
-    
+
     memset(&req, 0, sizeof(req));
     req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(req)-FAKE_ARRAY_SIZE);
     req.nlh.nlmsg_flags = NLM_F_REQUEST;
     memset(&req, 0, sizeof(req));
     req.nlh.nlmsg_len = NLMSG_LENGTH(sizeof(req)-FAKE_ARRAY_SIZE);
     req.nlh.nlmsg_flags = NLM_F_REQUEST;
index 17d4c9cbfeff0e85ef6ac80a5aba43f3c071ad21..d2c56e752b897f98f6635e65b6e25eb0729d2804 100644 (file)
@@ -18,7 +18,7 @@
  * GNU General Public License for more details.
  *
  */
  * GNU General Public License for more details.
  *
  */
+
 #ifndef _LIBIPQ_H
 #define _LIBIPQ_H
 
 #ifndef _LIBIPQ_H
 #define _LIBIPQ_H
 
index 56167bc2cdaee25e9ec7ee6dd489c43980f0b34c..3242240f769fe4c75664942cd727d5396fec6477 100644 (file)
@@ -88,7 +88,7 @@ if (users->FindByName(login, &u))
     *retvalPtr = xmlrpc_c::value_boolean(true);
     return;
     }
     *retvalPtr = xmlrpc_c::value_boolean(true);
     return;
     }
-    
+
 *retvalPtr = xmlrpc_c::value_boolean(false);
 return;
 }
 *retvalPtr = xmlrpc_c::value_boolean(false);
 return;
 }
index bccf5a28305c0cf71434380633b4927daab53e7e..ef5fbaca29bd2f29bb09e6440cb2a2dc15344abe 100644 (file)
@@ -9,9 +9,9 @@ IMPORTS
 stgMIB MODULE-IDENTITY
     LAST-UPDATED "201101060000Z"
     ORGANIZATION "STG"
 stgMIB MODULE-IDENTITY
     LAST-UPDATED "201101060000Z"
     ORGANIZATION "STG"
-    CONTACT-INFO    
+    CONTACT-INFO
         "Primary Contact: Maxim Mamontov
         "Primary Contact: Maxim Mamontov
-         email:     faust@stg.dp.ua"
+         email:     stg@madf.info"
     DESCRIPTION
         "This MIB module defines objects for Stargazer data."
     REVISION     "201101060000Z"
     DESCRIPTION
         "This MIB module defines objects for Stargazer data."
     REVISION     "201101060000Z"
index ac179da9cc28ba6b0ae040c3e4e2d4aa7fb8f8ee..4d117affc592897ac3f46b278f54ab6e1b1d63c8 100644 (file)
@@ -102,7 +102,7 @@ asn_long2INTEGER(&msg->request_id, id);
 asn_long2INTEGER(&msg->error_status, 0);
 asn_long2INTEGER(&msg->error_index, 0);
 
 asn_long2INTEGER(&msg->error_status, 0);
 asn_long2INTEGER(&msg->error_index, 0);
 
-const VarBindList_t * vbl = &getRequest->variable_bindings; 
+const VarBindList_t * vbl = &getRequest->variable_bindings;
 for (int i = 0; i < vbl->list.count; ++i)
     {
     VarBind_t * vb = getRequest->variable_bindings.list.array[i];
 for (int i = 0; i < vbl->list.count; ++i)
     {
     VarBind_t * vb = getRequest->variable_bindings.list.array[i];
@@ -148,7 +148,7 @@ asn_long2INTEGER(&msg->request_id, id);
 asn_long2INTEGER(&msg->error_status, 0);
 asn_long2INTEGER(&msg->error_index, 0);
 
 asn_long2INTEGER(&msg->error_status, 0);
 asn_long2INTEGER(&msg->error_index, 0);
 
-const VarBindList_t * vbl = &getRequest->variable_bindings; 
+const VarBindList_t * vbl = &getRequest->variable_bindings;
 for (int i = 0; i < vbl->list.count; ++i)
     {
     VarBind_t * vb = getRequest->variable_bindings.list.array[i];
 for (int i = 0; i < vbl->list.count; ++i)
     {
     VarBind_t * vb = getRequest->variable_bindings.list.array[i];
index 6f316072c086f886bbc4f588dae4c7a8bfb91644..e23b2030ab92470fe418550a80a51b832b061795 100644 (file)
@@ -1606,7 +1606,7 @@ if (e)
     printfd(__FILE__, "FILES_STORE::WriteDetailStat - chmod/chown failed for user '%s'. Error: '%s'\n", login.c_str(), strerror(errno));
     }
 
     printfd(__FILE__, "FILES_STORE::WriteDetailStat - chmod/chown failed for user '%s'. Error: '%s'\n", login.c_str(), strerror(errno));
     }
 
-snprintf(dn, FN_STR_LEN, "%s/%s/detail_stat/%d/%s%d", 
+snprintf(dn, FN_STR_LEN, "%s/%s/detail_stat/%d/%s%d",
          storeSettings.GetUsersDir().c_str(),
          login.c_str(),
          lt->tm_year+1900,
          storeSettings.GetUsersDir().c_str(),
          login.c_str(),
          lt->tm_year+1900,
index 8108de0900a12b4d29278965fc0397968ffcfc2a..cef72671b1c5e6b68b4b0d88c5e22b65d16d5ebd 100644 (file)
@@ -31,10 +31,10 @@ template <typename T>
 int GetInt(const std::string & str, T * val, T defaultVal = T())
 {
     char *res;
 int GetInt(const std::string & str, T * val, T defaultVal = T())
 {
     char *res;
-    
+
     *val = static_cast<T>(strtoll(str.c_str(), &res, 10));
     *val = static_cast<T>(strtoll(str.c_str(), &res, 10));
-    
-    if (*res != 0) 
+
+    if (*res != 0)
     {
         *val = defaultVal; //Error!
         return EINVAL;
     {
         *val = defaultVal; //Error!
         return EINVAL;
@@ -46,10 +46,10 @@ int GetInt(const std::string & str, T * val, T defaultVal = T())
 int GetDouble(const std::string & str, double * val, double defaultVal)
 {
     char *res;
 int GetDouble(const std::string & str, double * val, double defaultVal)
 {
     char *res;
-    
+
     *val = strtod(str.c_str(), &res);
     *val = strtod(str.c_str(), &res);
-    
-    if (*res != 0) 
+
+    if (*res != 0)
     {
         *val = defaultVal; //Error!
         return EINVAL;
     {
         *val = defaultVal; //Error!
         return EINVAL;
@@ -61,10 +61,10 @@ int GetDouble(const std::string & str, double * val, double defaultVal)
 int GetTime(const std::string & str, time_t * val, time_t defaultVal)
 {
     char *res;
 int GetTime(const std::string & str, time_t * val, time_t defaultVal)
 {
     char *res;
-    
+
     *val = strtol(str.c_str(), &res, 10);
     *val = strtol(str.c_str(), &res, 10);
-    
-    if (*res != 0) 
+
+    if (*res != 0)
     {
         *val = defaultVal; //Error!
         return EINVAL;
     {
         *val = defaultVal; //Error!
         return EINVAL;
@@ -87,17 +87,17 @@ std::string ReplaceStr(std::string source, const std::string & symlist, const ch
 int GetULongLongInt(const std::string & str, uint64_t * val, uint64_t defaultVal)
 {
     char *res;
 int GetULongLongInt(const std::string & str, uint64_t * val, uint64_t defaultVal)
 {
     char *res;
-    
+
     *val = strtoull(str.c_str(), &res, 10);
     *val = strtoull(str.c_str(), &res, 10);
-    
-    if (*res != 0) 
+
+    if (*res != 0)
     {
         *val = defaultVal; //Error!
         return EINVAL;
     }
 
     return 0;
     {
         *val = defaultVal; //Error!
         return EINVAL;
     }
 
     return 0;
-} 
+}
 
 PLUGIN_CREATOR<MYSQL_STORE> msc;
 }
 
 PLUGIN_CREATOR<MYSQL_STORE> msc;
 }
@@ -175,7 +175,7 @@ int    MYSQL_STORE::MysqlQuery(const char* sQuery,MYSQL * sock) const
                 return 0;
         }
     }
                 return 0;
         }
     }
-    
+
     return ret;
 }
 //-----------------------------------------------------------------------------
     return ret;
 }
 //-----------------------------------------------------------------------------
@@ -210,7 +210,7 @@ else
          if(mysql_select_db(sock, storeSettings.GetDBName().c_str()))
          {
              std::string res = "CREATE DATABASE " + storeSettings.GetDBName();
          if(mysql_select_db(sock, storeSettings.GetDBName().c_str()))
          {
              std::string res = "CREATE DATABASE " + storeSettings.GetDBName();
-            
+
             if(MysqlQuery(res.c_str(),sock))
             {
                 errorStr = "Couldn't create database! With error:\n";
             if(MysqlQuery(res.c_str(),sock))
             {
                 errorStr = "Couldn't create database! With error:\n";
@@ -313,7 +313,7 @@ if(!IsTablePresent("admins",sock))
         "ChgPassword TINYINT DEFAULT 0,ChgStat TINYINT DEFAULT 0,"\
         "ChgCash TINYINT DEFAULT 0,UsrAddDel TINYINT DEFAULT 0,"\
         "ChgTariff TINYINT DEFAULT 0,ChgAdmin TINYINT DEFAULT 0)");
         "ChgPassword TINYINT DEFAULT 0,ChgStat TINYINT DEFAULT 0,"\
         "ChgCash TINYINT DEFAULT 0,UsrAddDel TINYINT DEFAULT 0,"\
         "ChgTariff TINYINT DEFAULT 0,ChgAdmin TINYINT DEFAULT 0)");
-    
+
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create admin table list With error:\n";
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create admin table list With error:\n";
@@ -325,7 +325,7 @@ if(!IsTablePresent("admins",sock))
     sprintf(qbuf,"INSERT INTO admins SET login='admin',"\
         "password='geahonjehjfofnhammefahbbbfbmpkmkmmefahbbbfbmpkmkmmefahbbbfbmpkmkaa',"\
         "ChgConf=1,ChgPassword=1,ChgStat=1,ChgCash=1,UsrAddDel=1,ChgTariff=1,ChgAdmin=1");
     sprintf(qbuf,"INSERT INTO admins SET login='admin',"\
         "password='geahonjehjfofnhammefahbbbfbmpkmkmmefahbbbfbmpkmkmmefahbbbfbmpkmkaa',"\
         "ChgConf=1,ChgPassword=1,ChgStat=1,ChgCash=1,UsrAddDel=1,ChgTariff=1,ChgAdmin=1");
-    
+
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create default admin. With error:\n";
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create default admin. With error:\n";
@@ -340,40 +340,40 @@ std::string param, res;
 if(!IsTablePresent("tariffs",sock))
 {
     res = "CREATE TABLE tariffs (name VARCHAR(40) DEFAULT '' PRIMARY KEY,";
 if(!IsTablePresent("tariffs",sock))
 {
     res = "CREATE TABLE tariffs (name VARCHAR(40) DEFAULT '' PRIMARY KEY,";
-        
+
     for (int i = 0; i < DIR_NUM; i++)
         {
     for (int i = 0; i < DIR_NUM; i++)
         {
-        strprintf(&param, " PriceDayA%d DOUBLE DEFAULT 0.0,", i); 
+        strprintf(&param, " PriceDayA%d DOUBLE DEFAULT 0.0,", i);
         res += param;
         res += param;
-    
+
         strprintf(&param, " PriceDayB%d DOUBLE DEFAULT 0.0,", i);
         res += param;
         strprintf(&param, " PriceDayB%d DOUBLE DEFAULT 0.0,", i);
         res += param;
-            
+
         strprintf(&param, " PriceNightA%d DOUBLE DEFAULT 0.0,", i);
         res += param;
         strprintf(&param, " PriceNightA%d DOUBLE DEFAULT 0.0,", i);
         res += param;
-    
+
         strprintf(&param, " PriceNightB%d DOUBLE DEFAULT 0.0,", i);
         res += param;
         strprintf(&param, " PriceNightB%d DOUBLE DEFAULT 0.0,", i);
         res += param;
-            
+
         strprintf(&param, " Threshold%d INT DEFAULT 0,", i);
         res += param;
         strprintf(&param, " Threshold%d INT DEFAULT 0,", i);
         res += param;
-    
+
         strprintf(&param, " Time%d VARCHAR(15) DEFAULT '0:0-0:0',", i);
         res += param;
         strprintf(&param, " Time%d VARCHAR(15) DEFAULT '0:0-0:0',", i);
         res += param;
-    
+
         strprintf(&param, " NoDiscount%d INT DEFAULT 0,", i);
         res += param;
         strprintf(&param, " NoDiscount%d INT DEFAULT 0,", i);
         res += param;
-    
+
         strprintf(&param, " SinglePrice%d INT DEFAULT 0,", i);
         res += param;
         }
         strprintf(&param, " SinglePrice%d INT DEFAULT 0,", i);
         res += param;
         }
-    
+
     res += "PassiveCost DOUBLE DEFAULT 0.0, Fee DOUBLE DEFAULT 0.0,"
         "Free DOUBLE DEFAULT 0.0, TraffType VARCHAR(10) DEFAULT '',"
         "period VARCHAR(32) NOT NULL DEFAULT 'month',"
         "change_policy VARCHAR(32) NOT NULL DEFAULT 'allow',"
         "change_policy_timeout TIMESTAMP NOT NULL DEFAULT 0)";
     res += "PassiveCost DOUBLE DEFAULT 0.0, Fee DOUBLE DEFAULT 0.0,"
         "Free DOUBLE DEFAULT 0.0, TraffType VARCHAR(10) DEFAULT '',"
         "period VARCHAR(32) NOT NULL DEFAULT 'month',"
         "change_policy VARCHAR(32) NOT NULL DEFAULT 'allow',"
         "change_policy_timeout TIMESTAMP NOT NULL DEFAULT 0)";
-    
+
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create tariffs table list With error:\n";
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create tariffs table list With error:\n";
@@ -383,52 +383,52 @@ if(!IsTablePresent("tariffs",sock))
     }
 
     res = "INSERT INTO tariffs SET name='tariff',";
     }
 
     res = "INSERT INTO tariffs SET name='tariff',";
-        
+
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " NoDiscount%d=1,", i);
         res += param;
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " NoDiscount%d=1,", i);
         res += param;
-    
+
         strprintf(&param, " Threshold%d=0,", i);
         res += param;
         strprintf(&param, " Threshold%d=0,", i);
         res += param;
-    
+
         strprintf(&param, " Time%d='0:0-0:0',", i);
         res += param;
         strprintf(&param, " Time%d='0:0-0:0',", i);
         res += param;
-    
+
         if(i != 0 && i != 1)
         {
             strprintf(&param, " SinglePrice%d=0,", i);
         if(i != 0 && i != 1)
         {
             strprintf(&param, " SinglePrice%d=0,", i);
-            res += param;        
+            res += param;
         }
         }
-    
+
         if(i != 1)
         {
         if(i != 1)
         {
-            strprintf(&param, " PriceDayA%d=0.0,", i); 
-            res += param;        
+            strprintf(&param, " PriceDayA%d=0.0,", i);
+            res += param;
         }
         if(i != 1)
         {
         }
         if(i != 1)
         {
-            strprintf(&param, " PriceDayB%d=0.0,", i);        
-            res += param;    
+            strprintf(&param, " PriceDayB%d=0.0,", i);
+            res += param;
         }
         }
-    
+
         if(i != 0)
         {
         if(i != 0)
         {
-            strprintf(&param, " PriceNightA%d=0.0,", i); 
-            res += param;        
+            strprintf(&param, " PriceNightA%d=0.0,", i);
+            res += param;
         }
         if(i != 0)
         {
         }
         if(i != 0)
         {
-            strprintf(&param, " PriceNightB%d=0.0,", i);        
-            res += param;    
+            strprintf(&param, " PriceNightB%d=0.0,", i);
+            res += param;
         }
         }
         }
         }
-    
+
     res += "PassiveCost=0.0, Fee=10.0, Free=0,"\
         "SinglePrice0=1, SinglePrice1=1,PriceDayA1=0.75,PriceDayB1=0.75,"\
         "PriceNightA0=1.0,PriceNightB0=1.0,TraffType='up+down',period='month',"\
         "change_policy='allow', change_policy_timeout=0";
     res += "PassiveCost=0.0, Fee=10.0, Free=0,"\
         "SinglePrice0=1, SinglePrice1=1,PriceDayA1=0.75,PriceDayB1=0.75,"\
         "PriceNightA0=1.0,PriceNightB0=1.0,TraffType='up+down',period='month',"\
         "change_policy='allow', change_policy_timeout=0";
-    
+
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create default tariff. With error:\n";
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create default tariff. With error:\n";
@@ -457,34 +457,34 @@ if(!IsTablePresent("users",sock))
         "Address VARCHAR(254) NOT NULL DEFAULT '',Phone VARCHAR(128) NOT NULL DEFAULT '',Email VARCHAR(50) NOT NULL DEFAULT '',"\
         "Note TEXT NOT NULL,RealName VARCHAR(254) NOT NULL DEFAULT '',StgGroup VARCHAR(40) NOT NULL DEFAULT '',"\
         "Credit DOUBLE DEFAULT 0, TariffChange VARCHAR(40) NOT NULL DEFAULT '',";
         "Address VARCHAR(254) NOT NULL DEFAULT '',Phone VARCHAR(128) NOT NULL DEFAULT '',Email VARCHAR(50) NOT NULL DEFAULT '',"\
         "Note TEXT NOT NULL,RealName VARCHAR(254) NOT NULL DEFAULT '',StgGroup VARCHAR(40) NOT NULL DEFAULT '',"\
         "Credit DOUBLE DEFAULT 0, TariffChange VARCHAR(40) NOT NULL DEFAULT '',";
-    
+
     for (int i = 0; i < USERDATA_NUM; i++)
         {
         strprintf(&param, " Userdata%d VARCHAR(254) NOT NULL,", i);
         res += param;
         }
     for (int i = 0; i < USERDATA_NUM; i++)
         {
         strprintf(&param, " Userdata%d VARCHAR(254) NOT NULL,", i);
         res += param;
         }
-    
+
     param = " CreditExpire INT(11) DEFAULT 0,";
     res += param;
     param = " CreditExpire INT(11) DEFAULT 0,";
     res += param;
-    
+
     strprintf(&param, " IP VARCHAR(254) DEFAULT '*',");
     res += param;
     strprintf(&param, " IP VARCHAR(254) DEFAULT '*',");
     res += param;
-    
+
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " D%d BIGINT(30) DEFAULT 0,", i);
         res += param;
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " D%d BIGINT(30) DEFAULT 0,", i);
         res += param;
-    
+
         strprintf(&param, " U%d BIGINT(30) DEFAULT 0,", i);
         res += param;
         }
         strprintf(&param, " U%d BIGINT(30) DEFAULT 0,", i);
         res += param;
         }
-    
+
     strprintf(&param, "Cash DOUBLE DEFAULT 0,FreeMb DOUBLE DEFAULT 0,LastCashAdd DOUBLE DEFAULT 0,"\
         "LastCashAddTime INT(11) DEFAULT 0,PassiveTime INT(11) DEFAULT 0,LastActivityTime INT(11) DEFAULT 0,"\
         "NAS VARCHAR(17) NOT NULL, INDEX (AlwaysOnline), INDEX (IP), INDEX (Address),"\
         " INDEX (Tariff),INDEX (Phone),INDEX (Email),INDEX (RealName))");
     res += param;
     strprintf(&param, "Cash DOUBLE DEFAULT 0,FreeMb DOUBLE DEFAULT 0,LastCashAdd DOUBLE DEFAULT 0,"\
         "LastCashAddTime INT(11) DEFAULT 0,PassiveTime INT(11) DEFAULT 0,LastActivityTime INT(11) DEFAULT 0,"\
         "NAS VARCHAR(17) NOT NULL, INDEX (AlwaysOnline), INDEX (IP), INDEX (Address),"\
         " INDEX (Tariff),INDEX (Phone),INDEX (Email),INDEX (RealName))");
     res += param;
-        
+
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create users table list With error:\n";
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create users table list With error:\n";
@@ -498,25 +498,25 @@ if(!IsTablePresent("users",sock))
         "Credit=0.0,CreditExpire=0,Down=0,Email='',DisabledDetailStat=0,"\
         "StgGroup='',IP='192.168.1.1',Note='',Passive=0,Password='123456',"\
         "Phone='', RealName='',Tariff='tariff',TariffChange='',NAS='',";
         "Credit=0.0,CreditExpire=0,Down=0,Email='',DisabledDetailStat=0,"\
         "StgGroup='',IP='192.168.1.1',Note='',Passive=0,Password='123456',"\
         "Phone='', RealName='',Tariff='tariff',TariffChange='',NAS='',";
-    
+
     for (int i = 0; i < USERDATA_NUM; i++)
         {
         strprintf(&param, " Userdata%d='',", i);
         res += param;
         }
     for (int i = 0; i < USERDATA_NUM; i++)
         {
         strprintf(&param, " Userdata%d='',", i);
         res += param;
         }
-    
+
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " D%d=0,", i);
         res += param;
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, " D%d=0,", i);
         res += param;
-    
+
         strprintf(&param, " U%d=0,", i);
         res += param;
         }
         strprintf(&param, " U%d=0,", i);
         res += param;
         }
-    
+
     res += "Cash=10.0,FreeMb=0.0,LastActivityTime=0,LastCashAdd=0,"\
         "LastCashAddTime=0, PassiveTime=0";
     res += "Cash=10.0,FreeMb=0.0,LastActivityTime=0,LastCashAdd=0,"\
         "LastCashAddTime=0, PassiveTime=0";
-        
+
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create default user. With error:\n";
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create default user. With error:\n";
@@ -530,7 +530,7 @@ if(!IsTablePresent("users",sock))
 if(!IsTablePresent("logs"))
 {
     sprintf(qbuf,"CREATE TABLE logs (unid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(40),text TEXT)");
 if(!IsTablePresent("logs"))
 {
     sprintf(qbuf,"CREATE TABLE logs (unid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(40),text TEXT)");
-    
+
     if(MysqlQuery(qbuf))
     {
         errorStr = "Couldn't create admin table list With error:\n";
     if(MysqlQuery(qbuf))
     {
         errorStr = "Couldn't create admin table list With error:\n";
@@ -545,7 +545,7 @@ if(!IsTablePresent("messages",sock))
     sprintf(qbuf,"CREATE TABLE messages (login VARCHAR(40) DEFAULT '', id BIGINT, "\
             "type INT, lastSendTime INT, creationTime INT, showTime INT,"\
             "stgRepeat INT, repeatPeriod INT, text TEXT)");
     sprintf(qbuf,"CREATE TABLE messages (login VARCHAR(40) DEFAULT '', id BIGINT, "\
             "type INT, lastSendTime INT, creationTime INT, showTime INT,"\
             "stgRepeat INT, repeatPeriod INT, text TEXT)");
-    
+
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create messages table. With error:\n";
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create messages table. With error:\n";
@@ -559,18 +559,18 @@ if(!IsTablePresent("messages",sock))
 if(!IsTablePresent("stat",sock))
 {
     res = "CREATE TABLE stat (login VARCHAR(50), month TINYINT, year SMALLINT,";
 if(!IsTablePresent("stat",sock))
 {
     res = "CREATE TABLE stat (login VARCHAR(50), month TINYINT, year SMALLINT,";
-    
+
     for (int i = 0; i < DIR_NUM; i++)
         {
     for (int i = 0; i < DIR_NUM; i++)
         {
-        strprintf(&param, " U%d BIGINT,", i); 
+        strprintf(&param, " U%d BIGINT,", i);
         res += param;
         res += param;
-            
-        strprintf(&param, " D%d BIGINT,", i); 
+
+        strprintf(&param, " D%d BIGINT,", i);
         res += param;
         }
         res += param;
         }
-        
+
     res += " cash DOUBLE, INDEX (login))";
     res += " cash DOUBLE, INDEX (login))";
-    
+
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create stat table. With error:\n";
     if(MysqlQuery(res.c_str(),sock))
     {
         errorStr = "Couldn't create stat table. With error:\n";
@@ -629,18 +629,18 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 
 }
 //-----------------------------------------------------------------------------
 
-int MYSQL_STORE::GetAllParams(std::vector<std::string> * ParamList, 
+int MYSQL_STORE::GetAllParams(std::vector<std::string> * ParamList,
                             const std::string & table, const std::string & name) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock=NULL;
 my_ulonglong num, i;
                             const std::string & table, const std::string & name) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock=NULL;
 my_ulonglong num, i;
-    
+
 ParamList->clear();
 ParamList->clear();
-    
+
 sprintf(qbuf,"SELECT %s FROM %s", name.c_str(), table.c_str());
 sprintf(qbuf,"SELECT %s FROM %s", name.c_str(), table.c_str());
-    
+
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetAllParams Query for: ";
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetAllParams Query for: ";
@@ -662,7 +662,7 @@ num = mysql_num_rows(res);
 
 for(i = 0; i < num; i++)
 {
 
 for(i = 0; i < num; i++)
 {
-    row = mysql_fetch_row(res);    
+    row = mysql_fetch_row(res);
     ParamList->push_back(row[0]);
 }
 
     ParamList->push_back(row[0]);
 }
 
@@ -717,7 +717,7 @@ return 0;
 int MYSQL_STORE::DelUser(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM users WHERE login='%s' LIMIT 1", login.c_str());
 int MYSQL_STORE::DelUser(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM users WHERE login='%s' LIMIT 1", login.c_str());
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete user:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete user:\n";
@@ -749,7 +749,7 @@ query += "CreditExpire, IP FROM users WHERE login='";
 query += login + "' LIMIT 1";
 
 //sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str());
 query += login + "' LIMIT 1";
 
 //sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str());
-    
+
 if(MysqlGetQuery(query.c_str(),sock))
 {
     errorStr = "Couldn't restore Tariff(on query):\n";
 if(MysqlGetQuery(query.c_str(),sock))
 {
     errorStr = "Couldn't restore Tariff(on query):\n";
@@ -819,7 +819,7 @@ if (GetInt(row[5], &conf->alwaysOnline) != 0)
 
 conf->tariffName = row[6];
 
 
 conf->tariffName = row[6];
 
-if (conf->tariffName.empty()) 
+if (conf->tariffName.empty())
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' tariff is blank.";
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' tariff is blank.";
@@ -850,7 +850,7 @@ for (int i = 0; i < USERDATA_NUM; i++)
     }
 
 GetTime(row[15+USERDATA_NUM], &conf->creditExpire, 0);
     }
 
 GetTime(row[15+USERDATA_NUM], &conf->creditExpire, 0);
-    
+
 std::string ipStr = row[16+USERDATA_NUM];
 USER_IPS i;
 try
 std::string ipStr = row[16+USERDATA_NUM];
 USER_IPS i;
 try
@@ -893,7 +893,7 @@ query += "Cash, FreeMb, LastCashAdd, LastCashAddTime, PassiveTime, LastActivityT
 query += login + "'";
 
 //sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str());
 query += login + "'";
 
 //sprintf(qbuf,"SELECT * FROM users WHERE login='%s' LIMIT 1", login.c_str());
-    
+
 if(MysqlGetQuery(query.c_str() ,sock))
 {
     errorStr = "Couldn't restore UserStat(on query):\n";
 if(MysqlGetQuery(query.c_str() ,sock))
 {
     errorStr = "Couldn't restore UserStat(on query):\n";
@@ -1002,7 +1002,7 @@ std::string res;
 
 strprintf(&res,"UPDATE users SET Password='%s', Passive=%d, Down=%d, DisabledDetailStat = %d, "\
     "AlwaysOnline=%d, Tariff='%s', Address='%s', Phone='%s', Email='%s', "\
 
 strprintf(&res,"UPDATE users SET Password='%s', Passive=%d, Down=%d, DisabledDetailStat = %d, "\
     "AlwaysOnline=%d, Tariff='%s', Address='%s', Phone='%s', Email='%s', "\
-    "Note='%s', RealName='%s', StgGroup='%s', Credit=%f, TariffChange='%s', ", 
+    "Note='%s', RealName='%s', StgGroup='%s', Credit=%f, TariffChange='%s', ",
     conf.password.c_str(),
     conf.passive,
     conf.disabled,
     conf.password.c_str(),
     conf.passive,
     conf.disabled,
@@ -1021,11 +1021,11 @@ strprintf(&res,"UPDATE users SET Password='%s', Passive=%d, Down=%d, DisabledDet
 
 for (int i = 0; i < USERDATA_NUM; i++)
     {
 
 for (int i = 0; i < USERDATA_NUM; i++)
     {
-    strprintf(&param, " Userdata%d='%s',", i, 
+    strprintf(&param, " Userdata%d='%s',", i,
         (ReplaceStr(conf.userdata[i],badSyms,repSym)).c_str());
     res += param;
     }
         (ReplaceStr(conf.userdata[i],badSyms,repSym)).c_str());
     res += param;
     }
-    
+
 strprintf(&param, " CreditExpire=%d,", conf.creditExpire);
 res += param;
 
 strprintf(&param, " CreditExpire=%d,", conf.creditExpire);
 res += param;
 
@@ -1065,7 +1065,7 @@ for (int i = 0; i < DIR_NUM; i++)
     }
 
 strprintf(&param, " Cash=%f, FreeMb=%f, LastCashAdd=%f, LastCashAddTime=%d,"\
     }
 
 strprintf(&param, " Cash=%f, FreeMb=%f, LastCashAdd=%f, LastCashAddTime=%d,"\
-    " PassiveTime=%d, LastActivityTime=%d", 
+    " PassiveTime=%d, LastActivityTime=%d",
     stat.cash,
     stat.freeMb,
     stat.lastCashAdd,
     stat.cash,
     stat.freeMb,
     stat.lastCashAdd,
@@ -1120,7 +1120,7 @@ if (num_rows < 1)
 {
     sprintf(qbuf,"CREATE TABLE logs_%02d_%4d (unid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(40),text TEXT)",
     lt->tm_mon+1, lt->tm_year+1900);
 {
     sprintf(qbuf,"CREATE TABLE logs_%02d_%4d (unid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, login VARCHAR(40),text TEXT)",
     lt->tm_mon+1, lt->tm_year+1900);
-    
+
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create WriteDetailedStat table:\n";
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create WriteDetailedStat table:\n";
@@ -1210,24 +1210,24 @@ logStr += "\'";
 return WriteLogString(logStr, login);
 }
 //-----------------------------------------------------------------------------
 return WriteLogString(logStr, login);
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, 
+int MYSQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year,
                                 const std::string & login) const
 {
 std::string param, res;
 
                                 const std::string & login) const
 {
 std::string param, res;
 
-strprintf(&res, "INSERT INTO stat SET login='%s', month=%d, year=%d,", 
+strprintf(&res, "INSERT INTO stat SET login='%s', month=%d, year=%d,",
     login.c_str(), month+1, year+1900);
     login.c_str(), month+1, year+1900);
-    
+
 for (int i = 0; i < DIR_NUM; i++)
     {
 for (int i = 0; i < DIR_NUM; i++)
     {
-    strprintf(&param, " U%d=%lld,", i, stat.monthUp[i]); 
+    strprintf(&param, " U%d=%lld,", i, stat.monthUp[i]);
     res += param;
 
     res += param;
 
-    strprintf(&param, " D%d=%lld,", i, stat.monthDown[i]);        
+    strprintf(&param, " D%d=%lld,", i, stat.monthDown[i]);
     res += param;
     }
     res += param;
     }
-    
-strprintf(&param, " cash=%f", stat.cash);        
+
+strprintf(&param, " cash=%f", stat.cash);
 res += param;
 
 if(MysqlSetQuery(res.c_str()))
 res += param;
 
 if(MysqlSetQuery(res.c_str()))
@@ -1243,7 +1243,7 @@ return 0;
 int MYSQL_STORE::AddAdmin(const std::string & login) const
 {
 sprintf(qbuf,"INSERT INTO admins SET login='%s'", login.c_str());
 int MYSQL_STORE::AddAdmin(const std::string & login) const
 {
 sprintf(qbuf,"INSERT INTO admins SET login='%s'", login.c_str());
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add admin:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add admin:\n";
@@ -1257,7 +1257,7 @@ return 0;
 int MYSQL_STORE::DelAdmin(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM admins where login='%s' LIMIT 1", login.c_str());
 int MYSQL_STORE::DelAdmin(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM admins where login='%s' LIMIT 1", login.c_str());
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete admin:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete admin:\n";
@@ -1293,7 +1293,7 @@ Encode12(passwordE, pass, ADM_PASSWD_LEN);
 
 sprintf(qbuf,"UPDATE admins SET password='%s', ChgConf=%d, ChgPassword=%d, "\
     "ChgStat=%d, ChgCash=%d, UsrAddDel=%d, ChgTariff=%d, ChgAdmin=%d "\
 
 sprintf(qbuf,"UPDATE admins SET password='%s', ChgConf=%d, ChgPassword=%d, "\
     "ChgStat=%d, ChgCash=%d, UsrAddDel=%d, ChgTariff=%d, ChgAdmin=%d "\
-    "WHERE login='%s' LIMIT 1", 
+    "WHERE login='%s' LIMIT 1",
     passwordE,
     ac.priv.userConf,
     ac.priv.userPasswd,
     passwordE,
     ac.priv.userConf,
     ac.priv.userPasswd,
@@ -1329,7 +1329,7 @@ MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM admins WHERE login='%s' LIMIT 1", login.c_str());
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM admins WHERE login='%s' LIMIT 1", login.c_str());
-    
+
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't restore admin:\n";
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't restore admin:\n";
@@ -1353,7 +1353,7 @@ if ( mysql_num_rows(res) == 0)
     mysql_close(sock);
     return -1;
 }
     mysql_close(sock);
     return -1;
 }
-  
+
 row = mysql_fetch_row(res);
 
 p = row[1];
 row = mysql_fetch_row(res);
 
 p = row[1];
@@ -1390,7 +1390,7 @@ ac->password = password;
 
 uint16_t a;
 
 
 uint16_t a;
 
-if (GetInt(row[2], &a) == 0) 
+if (GetInt(row[2], &a) == 0)
     ac->priv.userConf = a;
 else
     {
     ac->priv.userConf = a;
 else
     {
@@ -1400,7 +1400,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[3], &a) == 0) 
+if (GetInt(row[3], &a) == 0)
     ac->priv.userPasswd = a;
 else
     {
     ac->priv.userPasswd = a;
 else
     {
@@ -1410,7 +1410,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[4], &a) == 0) 
+if (GetInt(row[4], &a) == 0)
     ac->priv.userStat = a;
 else
     {
     ac->priv.userStat = a;
 else
     {
@@ -1420,7 +1420,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[5], &a) == 0) 
+if (GetInt(row[5], &a) == 0)
     ac->priv.userCash = a;
 else
     {
     ac->priv.userCash = a;
 else
     {
@@ -1430,7 +1430,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[6], &a) == 0) 
+if (GetInt(row[6], &a) == 0)
     ac->priv.userAddDel = a;
 else
     {
     ac->priv.userAddDel = a;
 else
     {
@@ -1440,7 +1440,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[7], &a) == 0) 
+if (GetInt(row[7], &a) == 0)
     ac->priv.tariffChg = a;
 else
     {
     ac->priv.tariffChg = a;
 else
     {
@@ -1450,7 +1450,7 @@ else
     return -1;
     }
 
     return -1;
     }
 
-if (GetInt(row[8], &a) == 0) 
+if (GetInt(row[8], &a) == 0)
     ac->priv.adminChg = a;
 else
     {
     ac->priv.adminChg = a;
 else
     {
@@ -1468,7 +1468,7 @@ return 0;
 int MYSQL_STORE::AddTariff(const std::string & name) const
 {
 sprintf(qbuf,"INSERT INTO tariffs SET name='%s'", name.c_str());
 int MYSQL_STORE::AddTariff(const std::string & name) const
 {
 sprintf(qbuf,"INSERT INTO tariffs SET name='%s'", name.c_str());
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add tariff:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add tariff:\n";
@@ -1482,7 +1482,7 @@ return 0;
 int MYSQL_STORE::DelTariff(const std::string & name) const
 {
 sprintf(qbuf,"DELETE FROM tariffs WHERE name='%s' LIMIT 1", name.c_str());
 int MYSQL_STORE::DelTariff(const std::string & name) const
 {
 sprintf(qbuf,"DELETE FROM tariffs WHERE name='%s' LIMIT 1", name.c_str());
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete tariff: ";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete tariff: ";
@@ -1499,7 +1499,7 @@ MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM tariffs WHERE name='%s' LIMIT 1", tariffName.c_str());
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM tariffs WHERE name='%s' LIMIT 1", tariffName.c_str());
-    
+
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't restore Tariff:\n";
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't restore Tariff:\n";
@@ -1534,10 +1534,10 @@ for (int i = 0; i<DIR_NUM; i++)
         return -1;
         }
 
         return -1;
         }
 
-    ParseTariffTimeStr(str.c_str(), 
-                       td->dirPrice[i].hDay, 
-                       td->dirPrice[i].mDay, 
-                       td->dirPrice[i].hNight, 
+    ParseTariffTimeStr(str.c_str(),
+                       td->dirPrice[i].hDay,
+                       td->dirPrice[i].mDay,
+                       td->dirPrice[i].hNight,
                        td->dirPrice[i].mNight);
 
     strprintf(&param, "PriceDayA%d", i);
                        td->dirPrice[i].mNight);
 
     strprintf(&param, "PriceDayA%d", i);
@@ -1634,7 +1634,7 @@ if (GetDouble(row[1+8*DIR_NUM], &td->tariffConf.passiveCost, 0.0) < 0)
 
     str = row[4+8*DIR_NUM];
     param = "TraffType";
 
     str = row[4+8*DIR_NUM];
     param = "TraffType";
-    
+
     if (str.length() == 0)
         {
         mysql_free_result(res);
     if (str.length() == 0)
         {
         mysql_free_result(res);
@@ -1712,30 +1712,30 @@ std::string res="UPDATE tariffs SET";
 
 for (int i = 0; i < DIR_NUM; i++)
     {
 
 for (int i = 0; i < DIR_NUM; i++)
     {
-    strprintf(&param, " PriceDayA%d=%f,", i, 
+    strprintf(&param, " PriceDayA%d=%f,", i,
         td.dirPrice[i].priceDayA * pt_mega);
     res += param;
 
         td.dirPrice[i].priceDayA * pt_mega);
     res += param;
 
-    strprintf(&param, " PriceDayB%d=%f,", i, 
-        td.dirPrice[i].priceDayB * pt_mega);        
+    strprintf(&param, " PriceDayB%d=%f,", i,
+        td.dirPrice[i].priceDayB * pt_mega);
     res += param;
     res += param;
-        
+
     strprintf(&param, " PriceNightA%d=%f,", i,
         td.dirPrice[i].priceNightA * pt_mega);
     res += param;
 
     strprintf(&param, " PriceNightA%d=%f,", i,
         td.dirPrice[i].priceNightA * pt_mega);
     res += param;
 
-    strprintf(&param, " PriceNightB%d=%f,", i, 
+    strprintf(&param, " PriceNightB%d=%f,", i,
         td.dirPrice[i].priceNightB * pt_mega);
     res += param;
         td.dirPrice[i].priceNightB * pt_mega);
     res += param;
-        
-    strprintf(&param, " Threshold%d=%d,", i, 
+
+    strprintf(&param, " Threshold%d=%d,", i,
         td.dirPrice[i].threshold);
     res += param;
 
     std::string s;
     strprintf(&param, " Time%d", i);
 
         td.dirPrice[i].threshold);
     res += param;
 
     std::string s;
     strprintf(&param, " Time%d", i);
 
-    strprintf(&s, "%0d:%0d-%0d:%0d", 
+    strprintf(&s, "%0d:%0d-%0d:%0d",
             td.dirPrice[i].hDay,
             td.dirPrice[i].mDay,
             td.dirPrice[i].hNight,
             td.dirPrice[i].hDay,
             td.dirPrice[i].mDay,
             td.dirPrice[i].hNight,
@@ -1743,11 +1743,11 @@ for (int i = 0; i < DIR_NUM; i++)
 
     res += (param + "='" + s + "',");
 
 
     res += (param + "='" + s + "',");
 
-    strprintf(&param, " NoDiscount%d=%d,", i, 
+    strprintf(&param, " NoDiscount%d=%d,", i,
         td.dirPrice[i].noDiscount);
     res += param;
 
         td.dirPrice[i].noDiscount);
     res += param;
 
-    strprintf(&param, " SinglePrice%d=%d,", i, 
+    strprintf(&param, " SinglePrice%d=%d,", i,
         td.dirPrice[i].singlePrice);
     res += param;
     }
         td.dirPrice[i].singlePrice);
     res += param;
     }
@@ -1783,8 +1783,8 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree, 
-                                   time_t lastStat, 
+int MYSQL_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
+                                   time_t lastStat,
                                    const std::string & login) const
 {
 std::string res, stTime, endTime, tempStr;
                                    const std::string & login) const
 {
 std::string res, stTime, endTime, tempStr;
@@ -1828,7 +1828,7 @@ if (num_rows < 1)
         "IP VARCHAR(17) DEFAULT '',dir INT DEFAULT 0,"\
         "down BIGINT DEFAULT 0,up BIGINT DEFAULT 0, cash DOUBLE DEFAULT 0.0, INDEX (login), INDEX(dir), INDEX(day), INDEX(IP))",
     lt->tm_mon+1, lt->tm_year+1900);
         "IP VARCHAR(17) DEFAULT '',dir INT DEFAULT 0,"\
         "down BIGINT DEFAULT 0,up BIGINT DEFAULT 0, cash DOUBLE DEFAULT 0.0, INDEX (login), INDEX(dir), INDEX(day), INDEX(IP))",
     lt->tm_mon+1, lt->tm_year+1900);
-    
+
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create WriteDetailedStat table:\n";
     if(MysqlQuery(qbuf,sock))
     {
         errorStr = "Couldn't create WriteDetailedStat table:\n";
@@ -1855,12 +1855,12 @@ lt2 = localtime(&t);
 h2 = lt2->tm_hour;
 m2 = lt2->tm_min;
 s2 = lt2->tm_sec;
 h2 = lt2->tm_hour;
 m2 = lt2->tm_min;
 s2 = lt2->tm_sec;
-    
+
 strprintf(&stTime, "%02d:%02d:%02d", h1, m1, s1);
 strprintf(&endTime, "%02d:%02d:%02d", h2, m2, s2);
 
 strprintf(&res,"INSERT INTO detailstat_%02d_%4d SET login='%s',"\
 strprintf(&stTime, "%02d:%02d:%02d", h1, m1, s1);
 strprintf(&endTime, "%02d:%02d:%02d", h2, m2, s2);
 
 strprintf(&res,"INSERT INTO detailstat_%02d_%4d SET login='%s',"\
-    "day=%d,startTime='%s',endTime='%s',", 
+    "day=%d,startTime='%s',endTime='%s',",
     lt->tm_mon+1, lt->tm_year+1900,
     login.c_str(),
     lt->tm_mday,
     lt->tm_mon+1, lt->tm_year+1900,
     login.c_str(),
     lt->tm_mday,
@@ -1873,14 +1873,14 @@ stIter = statTree.begin();
 
 while (stIter != statTree.end())
     {
 
 while (stIter != statTree.end())
     {
-        strprintf(&tempStr,"IP='%s', dir=%d, down=%lld, up=%lld, cash=%f", 
+        strprintf(&tempStr,"IP='%s', dir=%d, down=%lld, up=%lld, cash=%f",
                 inet_ntostring(stIter->first.ip).c_str(),
                 inet_ntostring(stIter->first.ip).c_str(),
-                stIter->first.dir, 
-                stIter->second.down, 
-                stIter->second.up, 
+                stIter->first.dir,
+                stIter->second.down,
+                stIter->second.up,
                 stIter->second.cash
             );
                 stIter->second.cash
             );
-    
+
         if( MysqlQuery((res+tempStr).c_str(),sock) )
         {
             errorStr = "Couldn't insert data in WriteDetailedStat:\n";
         if( MysqlQuery((res+tempStr).c_str(),sock) )
         {
             errorStr = "Couldn't insert data in WriteDetailedStat:\n";
@@ -1907,11 +1907,11 @@ gettimeofday(&tv, NULL);
 
 msg->header.id = static_cast<uint64_t>(tv.tv_sec) * 1000000 + static_cast<uint64_t>(tv.tv_usec);
 
 
 msg->header.id = static_cast<uint64_t>(tv.tv_sec) * 1000000 + static_cast<uint64_t>(tv.tv_usec);
 
-sprintf(qbuf,"INSERT INTO messages SET login='%s', id=%lld", 
+sprintf(qbuf,"INSERT INTO messages SET login='%s', id=%lld",
     login.c_str(),
     static_cast<long long>(msg->header.id)
     );
     login.c_str(),
     static_cast<long long>(msg->header.id)
     );
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add message:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't add message:\n";
@@ -1928,7 +1928,7 @@ std::string res;
 
 strprintf(&res,"UPDATE messages SET type=%d, lastSendTime=%u, creationTime=%u, "\
     "showTime=%u, stgRepeat=%d, repeatPeriod=%u, text='%s' "\
 
 strprintf(&res,"UPDATE messages SET type=%d, lastSendTime=%u, creationTime=%u, "\
     "showTime=%u, stgRepeat=%d, repeatPeriod=%u, text='%s' "\
-    "WHERE login='%s' AND id=%lld LIMIT 1", 
+    "WHERE login='%s' AND id=%lld LIMIT 1",
     msg.header.type,
     msg.header.lastSendTime,
     msg.header.creationTime,
     msg.header.type,
     msg.header.lastSendTime,
     msg.header.creationTime,
@@ -1958,7 +1958,7 @@ MYSQL * sock;
 
 sprintf(qbuf,"SELECT * FROM messages WHERE login='%s' AND id=%llu LIMIT 1",
         login.c_str(), static_cast<unsigned long long>(id));
 
 sprintf(qbuf,"SELECT * FROM messages WHERE login='%s' AND id=%llu LIMIT 1",
         login.c_str(), static_cast<unsigned long long>(id));
-    
+
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetMessage:\n";
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetMessage:\n";
@@ -2035,9 +2035,9 @@ return 0;
 //-----------------------------------------------------------------------------
 int MYSQL_STORE::DelMessage(uint64_t id, const std::string & login) const
 {
 //-----------------------------------------------------------------------------
 int MYSQL_STORE::DelMessage(uint64_t id, const std::string & login) const
 {
-sprintf(qbuf,"DELETE FROM messages WHERE login='%s' AND id=%lld LIMIT 1", 
+sprintf(qbuf,"DELETE FROM messages WHERE login='%s' AND id=%lld LIMIT 1",
         login.c_str(), static_cast<long long>(id));
         login.c_str(), static_cast<long long>(id));
-    
+
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete Message:\n";
 if(MysqlSetQuery(qbuf))
 {
     errorStr = "Couldn't delete Message:\n";
@@ -2054,7 +2054,7 @@ MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM messages WHERE login='%s'", login.c_str());
 MYSQL_ROW row;
 MYSQL * sock;
 sprintf(qbuf,"SELECT * FROM messages WHERE login='%s'", login.c_str());
-    
+
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetMessageHdrs:\n";
 if(MysqlGetQuery(qbuf,sock))
 {
     errorStr = "Couldn't GetMessageHdrs:\n";
@@ -2080,9 +2080,9 @@ for (i = 0; i < num_rows; i++)
     row = mysql_fetch_row(res);
     if (str2x(row[1], id))
         continue;
     row = mysql_fetch_row(res);
     if (str2x(row[1], id))
         continue;
-    
+
     STG_MSG_HDR hdr;
     STG_MSG_HDR hdr;
-    if (row[2]) 
+    if (row[2])
         if(str2x(row[2], hdr.type))
             continue;
 
         if(str2x(row[2], hdr.type))
             continue;
 
index 4a492b3833694ece04130acf72fc81be96e78034..d7ed130eaa38f8cac3222e7ea6f5bb433044ce09 100644 (file)
@@ -38,7 +38,7 @@ private:
 
     const MODULE_SETTINGS * settings;
 
 
     const MODULE_SETTINGS * settings;
 
-    int     ParseParam(const std::vector<PARAM_VALUE> & moduleParams, 
+    int     ParseParam(const std::vector<PARAM_VALUE> & moduleParams,
                        const std::string & name, std::string & result);
 
     std::string  errorStr;
                        const std::string & name, std::string & result);
 
     std::string  errorStr;
index 31a85a97434c8fad5a64fd18bfb18e09dc0a58cd..81f6011d2c28bf00f4c4a7113491169d867cfd61 100755 (executable)
@@ -26,12 +26,12 @@ do
     for ys in $usr/detail_stat/*
     do
        year=`basename $ys`
     for ys in $usr/detail_stat/*
     do
        year=`basename $ys`
-       
+
        for ms in $ys/*
        do
            month=`basename $ms`
        for ms in $ys/*
        do
            month=`basename $ms`
-            stat_time=`date --date="$year/$month/01" +%s`          
-           
+            stat_time=`date --date="$year/$month/01" +%s`
+
            if (( $NOW - $stat_time > $DT ))
            then
                rm -fr $ms
            if (( $NOW - $stat_time > $DT ))
            then
                rm -fr $ms
index 1f608a71bd937a500bbff25a1c3e465364faa6fa..93cc5a62d2ed024170615e5c55adb9c6ac879166 100755 (executable)
@@ -1,21 +1,21 @@
 #!/bin/bash
 
 #!/bin/bash
 
-# Данный скрипт производит мониторинг СТГ-сервера на зависание и в 
+# Данный скрипт производит мониторинг СТГ-сервера на зависание и в
 # случае его зависания перезапускает.
 # Для работы скрипта в настройках СТГ должен быть указан параметер
 # случае его зависания перезапускает.
 # Для работы скрипта в настройках СТГ должен быть указан параметер
-# MonitorDir 
-# Скрипт отрабатывает один раз и выходит. Т.е. он не работает постоянно 
+# MonitorDir
+# Скрипт отрабатывает один раз и выходит. Т.е. он не работает постоянно
 # и следит за СТГ. Его нужно вызывать по крону или как-то еще с нужной
 # периодичностью!!!
 
 
 # и следит за СТГ. Его нужно вызывать по крону или как-то еще с нужной
 # периодичностью!!!
 
 
-# Путь к файлам монитора. Должен совпадать со значением MonitorDir 
+# Путь к файлам монитора. Должен совпадать со значением MonitorDir
 # в настройках сервера
 MONITOR_DIR=/var/stargazer/monitor/
 
 
 # Максимальная задержка обновления файлов монитора в секундах.
 # в настройках сервера
 MONITOR_DIR=/var/stargazer/monitor/
 
 
 # Максимальная задержка обновления файлов монитора в секундах.
-# При привышении этого значения сервер считается зависшим и будет 
+# При привышении этого значения сервер считается зависшим и будет
 # перезапущен
 DT=300
 
 # перезапущен
 DT=300
 
@@ -46,21 +46,21 @@ do
     fi
     file_time=`stat -c%Y $mon`
 
     fi
     file_time=`stat -c%Y $mon`
 
-    if (( $now - $file_time > $DT )) 
+    if (( $now - $file_time > $DT ))
     then
         echo "Stargazer is deadlocked!"
     then
         echo "Stargazer is deadlocked!"
-               
+
        # Команда остаовки СТГ
        killall -KILL stargazer
        # Команда остаовки СТГ
        killall -KILL stargazer
-               
+
        rm -f $MONITOR_DIR/*
        sleep 15
        rm -f $MONITOR_DIR/*
        sleep 15
-       
+
        # Команда запуска СТГ
        /etc/init.d/stargazer start
        # Команда запуска СТГ
        /etc/init.d/stargazer start
-       
+
     fi
     fi
-    
+
 done
 
 
 done
 
 
index 67bf32bf248f3fe4ecf479e7d1a000f470e5ea06..e5991637f52a3ea3f5bfa767d2ffb417363781a3 100755 (executable)
@@ -28,13 +28,13 @@ default_speed=32kbit
 #    maximum)  speedkb=512kbit;;        # 512 kbit
 #    *)        speedkb=$default_speed;;  # default speed
 #esac
 #    maximum)  speedkb=512kbit;;        # 512 kbit
 #    *)        speedkb=$default_speed;;  # default speed
 #esac
-# ========= shaping by tariff end ========= 
+# ========= shaping by tariff end =========
 
 # ========= shaping by userdata0 ==========
 speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
 speed=$(echo $speedR | grep "^[0-9]*[0-9]$")
 
 
 # ========= shaping by userdata0 ==========
 speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
 speed=$(echo $speedR | grep "^[0-9]*[0-9]$")
 
-if [ -z "$speed" ] 
+if [ -z "$speed" ]
 then
     speedkb=$default_speed
 else
 then
     speedkb=$default_speed
 else
index a5fd925e580fb9ec1ad4d14c7e861d1608f852b7..a7f13952104782ca0f047a8acc3ed6ef5454e91a 100644 (file)
@@ -3,19 +3,19 @@
 По мотивам форума:
 http://local.com.ua/forum/index.php?showtopic=7920
 
 По мотивам форума:
 http://local.com.ua/forum/index.php?showtopic=7920
 
-Настройка сводится к указанию сетевого интерфейса, обращенного к пользователю 
-в скриптах shaper.sh, shaper.stop.sh, OnConnect и OnDisconnect, и уточнению 
+Настройка сводится к указанию сетевого интерфейса, обращенного к пользователю
+в скриптах shaper.sh, shaper.stop.sh, OnConnect и OnDisconnect, и уточнению
 скоростоей и тарифов в скрипте OnConnect (если нужно).
 
 скоростоей и тарифов в скрипте OnConnect (если нужно).
 
-Скрипты сделаны для БД на файлах, однако, сделать их для БД на Firebird или 
+Скрипты сделаны для БД на файлах, однако, сделать их для БД на Firebird или
 MySQL не составит большого труда.
 
 В OnConnect есть два типа шейпинга.
 MySQL не составит большого труда.
 
 В OnConnect есть два типа шейпинга.
-1. На основании тарифа. Т.е. для каждого тарифа у задана скорость и задано 
-дефолтное значение, на случай отсутсвия тарифа в списке скоростей или 
+1. На основании тарифа. Т.е. для каждого тарифа у задана скорость и задано
+дефолтное значение, на случай отсутсвия тарифа в списке скоростей или
 забывчивости админа.
 забывчивости админа.
-2. На основании Userdata0. В этом поле просто прописывается число равное 
-скорости в kbit/sec. Также есть дефолтное значение скорости в 32 kbit/sec 
+2. На основании Userdata0. В этом поле просто прописывается число равное
+скорости в kbit/sec. Также есть дефолтное значение скорости в 32 kbit/sec
 на случай отсутсвия в Userdata0 корректного значения.
 
 В скрипте первый способ закомментирован. Для того чтобы выбрать один из них нужно
 на случай отсутсвия в Userdata0 корректного значения.
 
 В скрипте первый способ закомментирован. Для того чтобы выбрать один из них нужно
@@ -37,8 +37,8 @@ MySQL не составит большого труда.
 Скрипт shaper.sh должен быть выполнен один раз при загрузке системы.
 
 Интерфейс обращенный к пользователю определяется в переменной
 Скрипт shaper.sh должен быть выполнен один раз при загрузке системы.
 
 Интерфейс обращенный к пользователю определяется в переменной
-int_iface= 
-(присутствует во всех 4-х файлах shaper.sh, shaper.stop.sh, OnConnect и 
+int_iface=
+(присутствует во всех 4-х файлах shaper.sh, shaper.stop.sh, OnConnect и
 OnDisconnect !!!)
 
 Скорость по умолчанию в OnConnect в переменной default_speed
 OnDisconnect !!!)
 
 Скорость по умолчанию в OnConnect в переменной default_speed
@@ -51,9 +51,9 @@ case $tariff in
     *)        speedkb=$default_speed;;
 esac
 
     *)        speedkb=$default_speed;;
 esac
 
-Т.е. тут нужно вместо minimum, ... maximum подставить имена ваших тарифов 
-и соотв. скорость. Пользователи с тарифами не указанными в списке будут иметь 
+Т.е. тут нужно вместо minimum, ... maximum подставить имена ваших тарифов
+и соотв. скорость. Пользователи с тарифами не указанными в списке будут иметь
 дефолтную скорость.
 
 дефолтную скорость.
 
-Скорость ограничевается только для входящего тарафика, однако расширить 
+Скорость ограничевается только для входящего тарафика, однако расширить
 эти скрипты для исходящего не составит труда.
 эти скрипты для исходящего не составит труда.
index 772ddddce9d5e6a3407d419e737f4908c13aef71..3ef110716dd556673ab9d7008eb8da2e94713eba 100644 (file)
             <M>   PPP MPPE compression (encryption) (EXPERIMENTAL)
             <M>   PPP over Ethernet (EXPERIMENTAL)
 В файле /etc/pptpd.conf прописываем файл настроек PPP (параметр option). Также
             <M>   PPP MPPE compression (encryption) (EXPERIMENTAL)
             <M>   PPP over Ethernet (EXPERIMENTAL)
 В файле /etc/pptpd.conf прописываем файл настроек PPP (параметр option). Также
-указываем адреса сервера внутри сети VPN (параметр localip) и диапазон адресов 
+указываем адреса сервера внутри сети VPN (параметр localip) и диапазон адресов
 клиентов (параметр remoteip). См. пример файла конфигурации.
 клиентов (параметр remoteip). См. пример файла конфигурации.
-В настройках PPP указываем имя сервера (параметр name), параметры шифрования. 
-Для использования шифрования MPPE необходима его поддержка в ядре. Кроме того, 
-в процессе аутентификации MPPE использует MS-CHAPv2. По этому при 
-использовании шифрования MPPE также необходимо указать необходимость 
-поддержки MS-CHAPv2 клиентом. По желанию указываем proxyarp (для того чтобы 
-клиенты в сети VPN "видели" друг друга) и defaultroute. Прописываем в файле 
-/etc/ppp/chap-secrets тестового пользователя и проверяем работоспособность 
+В настройках PPP указываем имя сервера (параметр name), параметры шифрования.
+Для использования шифрования MPPE необходима его поддержка в ядре. Кроме того,
+в процессе аутентификации MPPE использует MS-CHAPv2. По этому при
+использовании шифрования MPPE также необходимо указать необходимость
+поддержки MS-CHAPv2 клиентом. По желанию указываем proxyarp (для того чтобы
+клиенты в сети VPN "видели" друг друга) и defaultroute. Прописываем в файле
+/etc/ppp/chap-secrets тестового пользователя и проверяем работоспособность
 VPN.
 
 2. Настройка авторизации VPN через FreeRADIUS
 
 Необходимо установить пакет freeradius.
 VPN.
 
 2. Настройка авторизации VPN через FreeRADIUS
 
 Необходимо установить пакет freeradius.
-Настройку сервера (файл radiusd.conf) проводим в соответствии с документацией 
+Настройку сервера (файл radiusd.conf) проводим в соответствии с документацией
 на модуль rlm_stg.so (см. документацию на систему Stargazer).
 на модуль rlm_stg.so (см. документацию на систему Stargazer).
-Настройку Stargazer с плагином для FreeRADIUS проводим в соответствиии с 
+Настройку Stargazer с плагином для FreeRADIUS проводим в соответствиии с
 документацией на модуль mod_radius.so (см. документацию на систему Stargazer).
 документацией на модуль mod_radius.so (см. документацию на систему Stargazer).
-В файле clients.conf, расположенном в дирректории с конфигурационными файлами 
-FreeRADIUS, описываем, какие клиенты могут использовать FreeRADIUS. 
-Рекомендуется заменить стандартный пароль, которым шифруется обмен информации 
-с клиентом, "testing123" на что-то более приемлимое с точки зрения безопасности. 
-После этого запускаем FreeRADIUS и удостоверяемся, что он работает строчкой 
-"Mon Mar 31 16:06:17 2008 : Info: Ready to process requests." в журнале 
-(обычно, /var/log/radius/radius.log). Если журнал FreeRADIUS не позволяет 
-определить проблему - можно запустить сервер в отладочном режме с ключем -X. 
+В файле clients.conf, расположенном в дирректории с конфигурационными файлами
+FreeRADIUS, описываем, какие клиенты могут использовать FreeRADIUS.
+Рекомендуется заменить стандартный пароль, которым шифруется обмен информации
+с клиентом, "testing123" на что-то более приемлимое с точки зрения безопасности.
+После этого запускаем FreeRADIUS и удостоверяемся, что он работает строчкой
+"Mon Mar 31 16:06:17 2008 : Info: Ready to process requests." в журнале
+(обычно, /var/log/radius/radius.log). Если журнал FreeRADIUS не позволяет
+определить проблему - можно запустить сервер в отладочном режме с ключем -X.
 В этом режиме более детальное журналирование проводится в консоль.
 В этом режиме более детальное журналирование проводится в консоль.
-Если на данном этапе все работает - в файл насттроек PPP прописываем строчку 
-plugin radius.so. После этого VPN должен нормально авторизоваться 
+Если на данном этапе все работает - в файл насттроек PPP прописываем строчку
+plugin radius.so. После этого VPN должен нормально авторизоваться
 пользователями системы Stargazer.
 
 3. Настройка шейпера
 
 пользователями системы Stargazer.
 
 3. Настройка шейпера
 
-Собственно настройки шейпер не требует. Всё, что нужно прописано в скриптах 
-OnConnect и OnDisconnect. Шейпер предназначен для работы с хранилищем на 
+Собственно настройки шейпер не требует. Всё, что нужно прописано в скриптах
+OnConnect и OnDisconnect. Шейпер предназначен для работы с хранилищем на
 файлах, однако, переделать скипт под MySQL или Firebird не составит труда.
 файлах, однако, переделать скипт под MySQL или Firebird не составит труда.
-Скорость для пользоватлея задается в поле Userdata0 в kbit/sec. В этом поле 
+Скорость для пользоватлея задается в поле Userdata0 в kbit/sec. В этом поле
 должно быть прописано просто число без всяких kbit/sec и т.п. Если в этом поле
 должно быть прописано просто число без всяких kbit/sec и т.п. Если в этом поле
-у пользователя нет данных или стоит некорректное значение, пользователь будет 
-ограничен скоростью определенной в переменной default_speed в скрипте 
+у пользователя нет данных или стоит некорректное значение, пользователь будет
+ограничен скоростью определенной в переменной default_speed в скрипте
 OnConnect.
 OnConnect.
index 36a270320c09a5c19a2456409896a3784b967ae8..c963ad7ce2f600435f33f1c30e3344c9f57a28b9 100755 (executable)
@@ -19,7 +19,7 @@ iptables -P FORWARD ACCEPT
 iptables -t nat -F
 iptables -t filter -F
 
 iptables -t nat -F
 iptables -t filter -F
 
-# 
+#
 #iptables -A INPUT  -d $ip1 -j ACCEPT
 #iptables -A OUTPUT -s $ip1 -j ACCEPT
 
 #iptables -A INPUT  -d $ip1 -j ACCEPT
 #iptables -A OUTPUT -s $ip1 -j ACCEPT
 
index c41d28d70700f0fff7a72c99e4772f696277f281..2c7a74465b500a0a46a1b627ee5b2237dea33f34 100644 (file)
@@ -321,9 +321,9 @@ log_auth_goodpass = no
 #
 usercollide = no
 
 #
 usercollide = no
 
-# lower_user / lower_pass:  
+# lower_user / lower_pass:
 # Lower case the username/password "before" or "after"
 # Lower case the username/password "before" or "after"
-# attempting to authenticate.  
+# attempting to authenticate.
 #
 #  If "before", the server will first modify the request and then try
 #  to auth the user.  If "after", the server will first auth using the
 #
 #  If "before", the server will first modify the request and then try
 #  to auth the user.  If "after", the server will first auth using the
@@ -399,7 +399,7 @@ security {
        #  Normally this should be set to "no", because they're useless.
        #  See: http://www.freeradius.org/rfc/rfc2865.html#Keep-Alives
        #
        #  Normally this should be set to "no", because they're useless.
        #  See: http://www.freeradius.org/rfc/rfc2865.html#Keep-Alives
        #
-       #  However, certain NAS boxes may require them. 
+       #  However, certain NAS boxes may require them.
        #
        #  When sent a Status-Server message, the server responds with
        #  an Access-Accept packet, containing a Reply-Message attribute,
        #
        #  When sent a Status-Server message, the server responds with
        #  an Access-Accept packet, containing a Reply-Message attribute,
@@ -431,7 +431,7 @@ $INCLUDE  ${confdir}/proxy.conf
 
 # CLIENTS CONFIGURATION
 #
 
 # CLIENTS CONFIGURATION
 #
-#  Client configuration is defined in "clients.conf".  
+#  Client configuration is defined in "clients.conf".
 #
 
 #  The 'clients.conf' file contains all of the information from the old
 #
 
 #  The 'clients.conf' file contains all of the information from the old
@@ -743,7 +743,7 @@ $INCLUDE ${confdir}/eap.conf
        #  or repeat values for Acct-Session-Id, causing no end of
        #  confusion.
        #
        #  or repeat values for Acct-Session-Id, causing no end of
        #  confusion.
        #
-       #  This module will add a (probably) unique session id 
+       #  This module will add a (probably) unique session id
        #  to an accounting packet based on the attributes listed
        #  below found in the packet.  See doc/rlm_acct_unique for
        #  more information.
        #  to an accounting packet based on the attributes listed
        #  below found in the packet.  See doc/rlm_acct_unique for
        #  more information.
@@ -793,7 +793,7 @@ $INCLUDE ${confdir}/eap.conf
                #  If we want to believe the 'utmp' file, then this
                #  configuration entry can be set to 'no'.
                #
                #  If we want to believe the 'utmp' file, then this
                #  configuration entry can be set to 'no'.
                #
-               check_with_nas = yes            
+               check_with_nas = yes
 
                # Set the file permissions, as the contents of this file
                # are usually private.
 
                # Set the file permissions, as the contents of this file
                # are usually private.
@@ -946,7 +946,7 @@ instantiate {
 #  The order of the realm modules will determine the order that
 #  we try to find a matching realm.
 #
 #  The order of the realm modules will determine the order that
 #  we try to find a matching realm.
 #
-#  Make *sure* that 'preprocess' comes before any realm if you 
+#  Make *sure* that 'preprocess' comes before any realm if you
 #  need to setup hints for the remote radius server
 authorize {
        #
 #  need to setup hints for the remote radius server
 authorize {
        #
@@ -1072,7 +1072,7 @@ accounting {
 }
 
 
 }
 
 
-#  Session database, used for checking Simultaneous-Use. Either the radutmp 
+#  Session database, used for checking Simultaneous-Use. Either the radutmp
 #  or rlm_sql module can handle this.
 #  The rlm_sql module is *much* faster
 session {
 #  or rlm_sql module can handle this.
 #  The rlm_sql module is *much* faster
 session {
index af58ba404878b233fbbd4a8c460e86fa84fd4720..cf44b56e41cb3f83a91c89e0e3822a25a5aba30f 100644 (file)
@@ -13,7 +13,7 @@
 
 # Authentication
 
 
 # Authentication
 
-# Name of the local system for authentication purposes 
+# Name of the local system for authentication purposes
 # (must match the second field in /etc/ppp/chap-secrets entries)
 name pptpd
 
 # (must match the second field in /etc/ppp/chap-secrets entries)
 name pptpd
 
@@ -93,5 +93,5 @@ defaultroute
 lock
 
 # Disable BSD-Compress compression
 lock
 
 # Disable BSD-Compress compression
-nobsdcomp 
-plugin radius.so
\ No newline at end of file
+nobsdcomp
+plugin radius.so
index 5c64b837c7d7146a674b5fa3591be70a934f6546..a9cd362aa8888edf298f734bddaa138dfe83e7b6 100644 (file)
@@ -62,7 +62,7 @@ logwtmp
 #      1. No spaces are permitted between commas or within addresses.
 #
 #      2. If you give more IP addresses than MAX_CONNECTIONS, it will
 #      1. No spaces are permitted between commas or within addresses.
 #
 #      2. If you give more IP addresses than MAX_CONNECTIONS, it will
-#         start at the beginning of the list and go until it gets 
+#         start at the beginning of the list and go until it gets
 #         MAX_CONNECTIONS IPs. Others will be ignored.
 #
 #      3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
 #         MAX_CONNECTIONS IPs. Others will be ignored.
 #
 #      3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
index 099a2194438a8319726871b89fe3f03f1f3f3f2f..cf67ae4f193a237e102891707d562463e91e4c49 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 #Этот скрипт вызывается в момент, когда пользователь
 #!/bin/bash
 
 #Этот скрипт вызывается в момент, когда пользователь
-#успешно прошел авторизацию на сервере. Задача скрипта - перестроить 
+#успешно прошел авторизацию на сервере. Задача скрипта - перестроить
 #файрвол так, что бы пользователь получил доступ в интернет
 
 # Login
 #файрвол так, что бы пользователь получил доступ в интернет
 
 # Login
@@ -32,7 +32,7 @@ speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"="
 #echo "speedR=$speedR" >> /var/stargazer/users/$LOGIN/connect.log
 speed=$(echo $speedR | grep "^[0-9]*[0-9]$")
 
 #echo "speedR=$speedR" >> /var/stargazer/users/$LOGIN/connect.log
 speed=$(echo $speedR | grep "^[0-9]*[0-9]$")
 
-if [ -z "$speed" ] 
+if [ -z "$speed" ]
 then
     speed=$default_speed
 fi
 then
     speed=$default_speed
 fi
index 482e926c7cb3b6575dd66d0ce80640533dad25a7..e654387fb8e8f9f63c6c786413189e8ddf0261be 100755 (executable)
@@ -3,7 +3,7 @@
 # Этот скрипт вызывается в момент, когда пользователь
 # желает отключится от интернета или вышел таймаут у пользователя
 # и сервер сам отключает пользователя
 # Этот скрипт вызывается в момент, когда пользователь
 # желает отключится от интернета или вышел таймаут у пользователя
 # и сервер сам отключает пользователя
-# Задача скрипта подобна задаче скрипта OnConnect - перестроить 
+# Задача скрипта подобна задаче скрипта OnConnect - перестроить
 # файрвол так, что бы пользователю закрыть доступ в интернет
 
 # Login
 # файрвол так, что бы пользователю закрыть доступ в интернет
 
 # Login
index 22d321cc02300c89c7a566e897efa07fbd4a56bc..923569c77723465004bf5df61e837f2c5e7d53b7 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Использование (неиспользование) этого скрипта дело вкуса.
 # Он не выполняет критических функций. Его задача автматизировать
 
 # Использование (неиспользование) этого скрипта дело вкуса.
 # Он не выполняет критических функций. Его задача автматизировать
-# действия характерные при добавлении пользователя сети, например добавлекние 
+# действия характерные при добавлении пользователя сети, например добавлекние
 # пользователю почты
 
 # Login
 # пользователю почты
 
 # Login
index 3fb48284f43aed12c80ae2d5eebee020e6d27678..8fd842bce5324ef946733356d6e4b5139bbfb5ae 100644 (file)
@@ -1,3 +1,3 @@
-ALL     192.168.0.0/16  DIR1 
+ALL     192.168.0.0/16  DIR1
 ALL     10.0.0.0/8      DIR2
 ALL     10.0.0.0/8      DIR2
-ALL     0.0.0.0/0       DIR0
\ No newline at end of file
+ALL     0.0.0.0/0       DIR0
index 221c85c903c086a759dd80bb580cfb54eab6c893..007a07209c65dea150ae87650fecf9ccb1245342 100644 (file)
@@ -74,7 +74,7 @@ WriteFreeMbTraffCost = no
 # По умолчанию установлен в no
 # FullFee=no
 
 # По умолчанию установлен в no
 # FullFee=no
 
-# Необязательный параметр указывающий показывать на счету и позволять 
+# Необязательный параметр указывающий показывать на счету и позволять
 # использовать пользователю абонплату. По умолчанию установлен в yes
 # ShowFeeInCash=yes
 
 # использовать пользователю абонплату. По умолчанию установлен в yes
 # ShowFeeInCash=yes
 
@@ -120,11 +120,11 @@ ExecutersNum = 2
 ModulesPath = /usr/lib/stg
 
 # Определяет директорию, в которой будут находится файлы "монитора"
 ModulesPath = /usr/lib/stg
 
 # Определяет директорию, в которой будут находится файлы "монитора"
-# работы сервера. В этой директории будут созданы пустые файлы, время 
-# модификации которых будет меняться примерно раз в минуту. Если какой-то 
-# компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому 
-# признаку можно определить сбой в работе сервера и при надобности 
-# перезапустить. Если параметр не указан или пустой, мониторинг производится 
+# работы сервера. В этой директории будут созданы пустые файлы, время
+# модификации которых будет меняться примерно раз в минуту. Если какой-то
+# компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому
+# признаку можно определить сбой в работе сервера и при надобности
+# перезапустить. Если параметр не указан или пустой, мониторинг производится
 # не будет. Параметр не является обязательным, по умолчанию пустой.
 # MonitorDir=/var/stargazer/monitor
 
 # не будет. Параметр не является обязательным, по умолчанию пустой.
 # MonitorDir=/var/stargazer/monitor
 
@@ -245,7 +245,7 @@ ModulesPath = /usr/lib/stg
         PingDelay = 15
 
     </Module>
         PingDelay = 15
 
     </Module>
-    
+
     <Module radius>
        Password = 123456
        ServerIP = 127.0.0.1
     <Module radius>
        Password = 123456
        ServerIP = 127.0.0.1
index 9bcce5b0f30bed2dbb9a259d6fa061202c06b40e..f5d2dc2bbb066477bd595f1acf70fcd50584ec94 100644 (file)
@@ -75,8 +75,8 @@ public:
     const std::string & GetRulesFileName() const { return rules; }
     const std::string & GetLogFileName() const { return logFile; }
     const std::string & GetPIDFileName() const { return pidFile; }
     const std::string & GetRulesFileName() const { return rules; }
     const std::string & GetLogFileName() const { return logFile; }
     const std::string & GetPIDFileName() const { return pidFile; }
-    unsigned            GetDetailStatWritePeriod() const 
-        { return detailStatWritePeriod; }
+    unsigned            GetDetailStatWritePeriod() const
+    { return detailStatWritePeriod; }
     unsigned            GetStatWritePeriod() const { return statWritePeriod * 60; }
     unsigned            GetDayFee() const { return dayFee; }
     bool                GetFullFee() const { return fullFee; }
     unsigned            GetStatWritePeriod() const { return statWritePeriod * 60; }
     unsigned            GetDayFee() const { return dayFee; }
     bool                GetFullFee() const { return fullFee; }
index 8f766f0101bfc63c40ef17867767360d1cebd6ae..391656a63c4103e1242dea7f2931752533b42ca7 100644 (file)
@@ -23,7 +23,7 @@
 #include "mempool.h"
 
 DOTCONFDocumentNode::DOTCONFDocumentNode():previousNode(NULL), nextNode(NULL), parentNode(NULL), childNode(NULL),
 #include "mempool.h"
 
 DOTCONFDocumentNode::DOTCONFDocumentNode():previousNode(NULL), nextNode(NULL), parentNode(NULL), childNode(NULL),
-    values(NULL), valuesCount(0), 
+    values(NULL), valuesCount(0),
     name(NULL), lineNum(0), fileName(NULL), closed(true)
 {
 }
     name(NULL), lineNum(0), fileName(NULL), closed(true)
 {
 }
@@ -117,15 +117,15 @@ int DOTCONFDocument::cleanupLine(char * line)
             *line = ' ';continue;
         }
         if(*line == '\\' && (*(line+1) == '"' || *(line+1) == '\'')){
             *line = ' ';continue;
         }
         if(*line == '\\' && (*(line+1) == '"' || *(line+1) == '\'')){
-            *bg++ = *(line+1); 
+            *bg++ = *(line+1);
             line+=2; continue;
         }
         if(*line == '\\' && *(line+1) == 'n'){
             line+=2; continue;
         }
         if(*line == '\\' && *(line+1) == 'n'){
-            *bg++ = '\n'; 
+            *bg++ = '\n';
             line+=2; continue;
         }
         if(*line == '\\' && *(line+1) == 'r'){
             line+=2; continue;
         }
         if(*line == '\\' && *(line+1) == 'r'){
-            *bg++ = '\r'; 
+            *bg++ = '\r';
             line+=2; continue;
         }
         if(*line == '\\' && (*(line+1) == '\n' || *(line+1) == '\r')){ //multiline
             line+=2; continue;
         }
         if(*line == '\\' && (*(line+1) == '\n' || *(line+1) == '\r')){ //multiline
@@ -170,7 +170,7 @@ int DOTCONFDocument::cleanupLine(char * line)
             continue;
         }
         *bg++ = *line++;
             continue;
         }
         *bg++ = *line++;
-    }    
+    }
 
     if(quoted && !multiline){
         error(curLine, fileName, "unterminated quote");
 
     if(quoted && !multiline){
         error(curLine, fileName, "unterminated quote");
@@ -259,7 +259,7 @@ int DOTCONFDocument::parseLine()
             tagNode->pushValue(nodeValue);
         }
     }
             tagNode->pushValue(nodeValue);
         }
     }
-    
+
     return 0;
 }
 int DOTCONFDocument::parseFile(DOTCONFDocumentNode * _parent)
     return 0;
 }
 int DOTCONFDocument::parseFile(DOTCONFDocumentNode * _parent)
@@ -292,7 +292,7 @@ int DOTCONFDocument::parseFile(DOTCONFDocumentNode * _parent)
                 if(ret == -1){
                     break;
                 }
                 if(ret == -1){
                     break;
                 }
-            }            
+            }
         }
     }
 
         }
     }
 
@@ -331,7 +331,7 @@ int DOTCONFDocument::checkConfig(const std::list<DOTCONFDocumentNode*>::iterator
 }
 
 int DOTCONFDocument::setContent(const char * _fileName)
 }
 
 int DOTCONFDocument::setContent(const char * _fileName)
-{    
+{
     int ret = 0;
     char realpathBuf[PATH_MAX];
 
     int ret = 0;
     char realpathBuf[PATH_MAX];
 
@@ -363,11 +363,11 @@ int DOTCONFDocument::setContent(const char * _fileName)
     }
 
     ret = parseFile();
     }
 
     ret = parseFile();
-    
+
     (void) fclose(file);
 
     if(!ret){
     (void) fclose(file);
 
     if(!ret){
-    
+
         if( (ret = checkConfig(nodeTree.begin())) == -1){
             return -1;
         }
         if( (ret = checkConfig(nodeTree.begin())) == -1){
             return -1;
         }
@@ -443,7 +443,7 @@ int DOTCONFDocument::setContent(const char * _fileName)
                             //free(fileName);
                             fileName = strdup(realpathBuf);
                             from = nodeTree.end(); --from;
                             //free(fileName);
                             fileName = strdup(realpathBuf);
                             from = nodeTree.end(); --from;
-                            
+
                             if(tagNode->parentNode){
                                 DOTCONFDocumentNode * nd = tagNode->parentNode->childNode;
                                 while(nd){
                             if(tagNode->parentNode){
                                 DOTCONFDocumentNode * nd = tagNode->parentNode->childNode;
                                 while(nd){
@@ -455,7 +455,7 @@ int DOTCONFDocument::setContent(const char * _fileName)
                                 curPrev = nd;
                             }
                             ret = parseFile(tagNode->parentNode);
                                 curPrev = nd;
                             }
                             ret = parseFile(tagNode->parentNode);
-                            
+
                             //ret = parseFile(tagNode->parentNode);
                             (void) fclose(file);
                             if(ret == -1)
                             //ret = parseFile(tagNode->parentNode);
                             (void) fclose(file);
                             if(ret == -1)
@@ -487,7 +487,7 @@ int DOTCONFDocument::checkRequiredOptions()
 {
     for(std::list<char*>::const_iterator ci = requiredOptions.begin(); ci != requiredOptions.end(); ++ci){
         bool matched = false;
 {
     for(std::list<char*>::const_iterator ci = requiredOptions.begin(); ci != requiredOptions.end(); ++ci){
         bool matched = false;
-        for(std::list<DOTCONFDocumentNode*>::iterator i = nodeTree.begin(); i!=nodeTree.end(); ++i){            
+        for(std::list<DOTCONFDocumentNode*>::iterator i = nodeTree.begin(); i!=nodeTree.end(); ++i){
             if(!cmp_func((*i)->name, *ci)){
                 matched = true;
                 break;
             if(!cmp_func((*i)->name, *ci)){
                 matched = true;
                 break;
@@ -562,7 +562,7 @@ char * DOTCONFDocument::getSubstitution(char * macro, int lineNum)
         buf = mempool->strdup(subs);
     } else {
         std::list<DOTCONFDocumentNode*>::iterator i = nodeTree.begin();
         buf = mempool->strdup(subs);
     } else {
         std::list<DOTCONFDocumentNode*>::iterator i = nodeTree.begin();
-        for(; i!=nodeTree.end(); ++i){            
+        for(; i!=nodeTree.end(); ++i){
             DOTCONFDocumentNode * tagNode = *i;
             if(!cmp_func(tagNode->name, variable)){
                 if(tagNode->valuesCount != 0){
             DOTCONFDocumentNode * tagNode = *i;
             if(!cmp_func(tagNode->name, variable)){
                 if(tagNode->valuesCount != 0){
@@ -629,7 +629,7 @@ const DOTCONFDocumentNode * DOTCONFDocument::getFirstNode() const
 const DOTCONFDocumentNode * DOTCONFDocument::findNode(const char * nodeName, const DOTCONFDocumentNode * parentNode, const DOTCONFDocumentNode * startNode) const
 {
     //printf("nodeName=%s, cont=%s, start=%s\n", nodeName, containingNode!=NULL?containingNode->name:"NULL", startNode!=NULL?startNode->name:"NULL");
 const DOTCONFDocumentNode * DOTCONFDocument::findNode(const char * nodeName, const DOTCONFDocumentNode * parentNode, const DOTCONFDocumentNode * startNode) const
 {
     //printf("nodeName=%s, cont=%s, start=%s\n", nodeName, containingNode!=NULL?containingNode->name:"NULL", startNode!=NULL?startNode->name:"NULL");
-    
+
     std::list<DOTCONFDocumentNode*>::const_iterator i = nodeTree.begin();
 
     if(startNode == NULL)
     std::list<DOTCONFDocumentNode*>::const_iterator i = nodeTree.begin();
 
     if(startNode == NULL)