]> git.stg.codes - stg.git/commitdiff
Massive refactoring.
authorMaxim Mamontov <faust.madf@gmail.com>
Tue, 5 Feb 2013 19:02:01 +0000 (21:02 +0200)
committerMaxim Mamontov <faust.madf@gmail.com>
Tue, 5 Feb 2013 19:02:01 +0000 (21:02 +0200)
117 files changed:
include/stg/admin.h
include/stg/notifer.h
include/stg/plugin.h
include/stg/raw_ip_packet.h
include/stg/service_conf.h
include/stg/store.h
include/stg/tariffs.h
include/stg/user_conf.h
include/stg/user_ips.h
include/stg/user_property.h
include/stg/user_stat.h
include/stg/user_traff.h
projects/rlm_stg/iface.cpp
projects/stargazer/actions.h
projects/stargazer/admin_impl.h
projects/stargazer/admins_impl.h
projects/stargazer/corps_impl.cpp
projects/stargazer/corps_impl.h
projects/stargazer/eventloop.h
projects/stargazer/main.cpp
projects/stargazer/plugins/authorization/ao/ao.cpp
projects/stargazer/plugins/authorization/ao/ao.h
projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp
projects/stargazer/plugins/authorization/inetaccess/inetaccess.h
projects/stargazer/plugins/capture/cap_debug/debug_cap.cpp
projects/stargazer/plugins/capture/cap_debug/debug_cap.h
projects/stargazer/plugins/capture/cap_nf/cap_nf.cpp
projects/stargazer/plugins/capture/cap_nf/cap_nf.h
projects/stargazer/plugins/capture/divert_freebsd/divert_cap.cpp
projects/stargazer/plugins/capture/divert_freebsd/divert_cap.h
projects/stargazer/plugins/capture/ether_freebsd/ether_cap.cpp
projects/stargazer/plugins/capture/ether_freebsd/ether_cap.h
projects/stargazer/plugins/capture/ether_linux/ether_cap.cpp
projects/stargazer/plugins/capture/ether_linux/ether_cap.h
projects/stargazer/plugins/capture/ipq_linux/ipq_cap.cpp
projects/stargazer/plugins/capture/ipq_linux/ipq_cap.h
projects/stargazer/plugins/configuration/rpcconfig/admins_methods.cpp
projects/stargazer/plugins/configuration/rpcconfig/info_methods.cpp
projects/stargazer/plugins/configuration/rpcconfig/messages_methods.cpp
projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp
projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.h
projects/stargazer/plugins/configuration/rpcconfig/user_helper.cpp
projects/stargazer/plugins/configuration/rpcconfig/users_methods.cpp
projects/stargazer/plugins/configuration/sgconfig/configproto.cpp
projects/stargazer/plugins/configuration/sgconfig/configproto.h
projects/stargazer/plugins/configuration/sgconfig/parser.cpp
projects/stargazer/plugins/configuration/sgconfig/parser_admin.cpp
projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp
projects/stargazer/plugins/configuration/sgconfig/rsconf.cpp
projects/stargazer/plugins/configuration/sgconfig/stgconfig.cpp
projects/stargazer/plugins/configuration/sgconfig/stgconfig.h
projects/stargazer/plugins/other/ping/ping.cpp
projects/stargazer/plugins/other/ping/ping.h
projects/stargazer/plugins/other/radius/radius.cpp
projects/stargazer/plugins/other/radius/radius.h
projects/stargazer/plugins/other/rscript/nrmap_parser.h
projects/stargazer/plugins/other/rscript/rscript.cpp
projects/stargazer/plugins/other/rscript/rscript.h
projects/stargazer/plugins/other/rscript/send_functor.h
projects/stargazer/plugins/other/rscript/ur_functor.h
projects/stargazer/plugins/other/smux/smux.cpp
projects/stargazer/plugins/other/smux/smux.h
projects/stargazer/plugins/other/smux/tables.cpp
projects/stargazer/plugins/other/smux/types.cpp
projects/stargazer/plugins/other/smux/utils.cpp
projects/stargazer/plugins/other/smux/value2os.h
projects/stargazer/plugins/store/files/file_store.cpp
projects/stargazer/plugins/store/files/file_store.h
projects/stargazer/plugins/store/firebird/firebird_store.cpp
projects/stargazer/plugins/store/firebird/firebird_store.h
projects/stargazer/plugins/store/firebird/firebird_store_corporations.cpp
projects/stargazer/plugins/store/firebird/firebird_store_messages.cpp
projects/stargazer/plugins/store/firebird/firebird_store_services.cpp
projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp
projects/stargazer/plugins/store/firebird/firebird_store_users.cpp
projects/stargazer/plugins/store/mysql/mysql_store.cpp
projects/stargazer/plugins/store/mysql/mysql_store.h
projects/stargazer/plugins/store/postgresql/postgresql_store.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store.h
projects/stargazer/plugins/store/postgresql/postgresql_store_admins.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_corporations.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_messages.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_services.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_users.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_utils.cpp
projects/stargazer/plugins/store/postgresql/postgresql_store_utils.h
projects/stargazer/services_impl.cpp
projects/stargazer/services_impl.h
projects/stargazer/settings_impl.h
projects/stargazer/stg_timer.cpp
projects/stargazer/stg_timer.h
projects/stargazer/tariff_impl.cpp
projects/stargazer/tariff_impl.h
projects/stargazer/tariffs_impl.cpp
projects/stargazer/tariffs_impl.h
projects/stargazer/traffcounter_impl.cpp
projects/stargazer/traffcounter_impl.h
projects/stargazer/user_impl.cpp
projects/stargazer/user_impl.h
projects/stargazer/users_impl.cpp
stglibs/common.lib/common.cpp
stglibs/common.lib/include/stg/common.h
stglibs/common.lib/strptime.cpp
stglibs/conffiles.lib/conffiles.cpp
stglibs/conffiles.lib/include/stg/conffiles.h
stglibs/dotconfpp.lib/include/stg/dotconfpp.h
stglibs/ibpp.lib/_ibpp.h
stglibs/ibpp.lib/blob.cpp
stglibs/ibpp.lib/ibase.h
stglibs/ibpp.lib/include/stg/ibpp.h
stglibs/ibpp.lib/statement.cpp
stglibs/ibpp.lib/transaction.cpp
stglibs/locker.lib/include/stg/locker.h
stglibs/logger.lib/include/stg/logger.h
stglibs/pinger.lib/include/stg/pinger.h
stglibs/pinger.lib/pinger.cpp

index 7552a1a12a39c415165e259b841236b5845a4568..961968a1065234e12a2a803c2812abf078b23655 100644 (file)
@@ -32,7 +32,7 @@ public:
     virtual const std::string & GetPassword() const = 0;
     virtual const std::string & GetLogin() const = 0;
     virtual PRIV const *        GetPriv() const = 0;
-    virtual uint16_t            GetPrivAsInt() const = 0;
+    virtual uint32_t            GetPrivAsInt() const = 0;
     virtual const ADMIN_CONF &  GetConf() const = 0;
     virtual uint32_t            GetIP() const = 0;
     virtual std::string         GetIPStr() const = 0;
index 57f9928e1aa7989cfbb2cbc417570fbb1372de57..6f2133282d355ea081e783a4a19d1f2e184e2921 100644 (file)
@@ -12,7 +12,7 @@ template <typename varParamType>
 class PROPERTY_NOTIFIER_BASE
 {
 public:
-    virtual      ~PROPERTY_NOTIFIER_BASE(){};
+    virtual      ~PROPERTY_NOTIFIER_BASE(){}
     virtual void Notify(const varParamType & oldValue, const varParamType & newValue) = 0;
 };
 //-----------------------------------------------------------------------------
@@ -20,7 +20,7 @@ template <typename varParamType>
 class NOTIFIER_BASE
 {
 public:
-    virtual      ~NOTIFIER_BASE(){};
+    virtual      ~NOTIFIER_BASE(){}
     virtual void Notify(const varParamType & value) = 0;
 };
 //-----------------------------------------------------------------------------
index 2ecf7af08161e56faa7d02564cb4a765d77d559e..114ffc8bc61e58f67ed0e1fb05868007df6f1b0e 100644 (file)
@@ -62,7 +62,7 @@ public:
     virtual int                 Reload() = 0;
     virtual bool                IsRunning() = 0;
     virtual const std::string & GetStrError() const = 0;
-    virtual const std::string   GetVersion() const = 0;
+    virtual std::string         GetVersion() const = 0;
     virtual uint16_t            GetStartPosition() const = 0;
     virtual uint16_t            GetStopPosition() const = 0;
 };
index f07bf2280b4ab2db68c5b1532ca819bd1236579c..b94faf868b40451484bd4b5c9b1e03910544a82f 100644 (file)
@@ -23,13 +23,6 @@ struct RAW_PACKET
     memset(rawPacket.pckt, 0, pcktSize);
     }
 
-    RAW_PACKET(const RAW_PACKET & rp)
-        : rawPacket(),
-          dataLen(rp.dataLen)
-    {
-    memcpy(rawPacket.pckt, rp.rawPacket.pckt, pcktSize);
-    }
-
 uint16_t    GetIPVersion() const;
 uint8_t     GetHeaderLen() const;
 uint8_t     GetProto() const;
@@ -40,7 +33,7 @@ uint16_t    GetSrcPort() const;
 uint16_t    GetDstPort() const;
 
 bool        operator==(const RAW_PACKET & rvalue) const;
-bool        operator!=(const RAW_PACKET & rvalue) const { return !(*this == rvalue); };
+bool        operator!=(const RAW_PACKET & rvalue) const { return !(*this == rvalue); }
 bool        operator<(const RAW_PACKET & rvalue) const;
 
 union
@@ -52,7 +45,7 @@ union
         // Only for packets without options field
         uint16_t    sPort;
         uint16_t    dPort;
-        } header __attribute__ ((packed));
+        } header;
     } rawPacket;
 int32_t dataLen; // IP packet length. Set to -1 to use length field from the header
 };
@@ -93,14 +86,16 @@ inline uint16_t RAW_PACKET::GetSrcPort() const
 {
 if (rawPacket.header.ipHeader.ip_p == 1) // for icmp proto return port 0
     return 0;
-return ntohs(*((uint16_t*)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4)));
+const uint8_t * pos = rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4;
+return ntohs(*reinterpret_cast<const uint16_t *>(pos));
 }
 //-----------------------------------------------------------------------------
 inline uint16_t RAW_PACKET::GetDstPort() const
 {
 if (rawPacket.header.ipHeader.ip_p == 1) // for icmp proto return port 0
     return 0;
-return ntohs(*((uint16_t*)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4 + 2)));
+const uint8_t * pos = rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4 + 2;
+return ntohs(*reinterpret_cast<const uint16_t *>(pos));
 }
 //-----------------------------------------------------------------------------
 inline bool RAW_PACKET::operator==(const RAW_PACKET & rvalue) const
@@ -113,12 +108,14 @@ if (rawPacket.header.ipHeader.ip_dst.s_addr != rvalue.rawPacket.header.ipHeader.
 
 if (rawPacket.header.ipHeader.ip_p != 1 && rvalue.rawPacket.header.ipHeader.ip_p != 1)
     {
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4)) !=
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4)))
+    const uint8_t * pos = rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4;
+    const uint8_t * rpos = rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4;
+    if (*reinterpret_cast<const uint16_t *>(pos) != *reinterpret_cast<const uint16_t *>(rpos))
         return false;
 
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4 + 2)) !=
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4 + 2)))
+    pos += 2;
+    rpos += 2;
+    if (*reinterpret_cast<const uint16_t *>(pos) != *reinterpret_cast<const uint16_t *>(rpos))
         return false;
     }
 
@@ -142,18 +139,18 @@ if (rawPacket.header.ipHeader.ip_dst.s_addr > rvalue.rawPacket.header.ipHeader.i
 
 if (rawPacket.header.ipHeader.ip_p != 1 && rvalue.rawPacket.header.ipHeader.ip_p != 1)
     {
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4)) <
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4))) 
+    const uint8_t * pos = rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4;
+    const uint8_t * rpos = rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4;
+    if (*reinterpret_cast<const uint16_t *>(pos) < *reinterpret_cast<const uint16_t *>(rpos))
         return true;
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4)) >
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4))) 
+    if (*reinterpret_cast<const uint16_t *>(pos) > *reinterpret_cast<const uint16_t *>(rpos))
         return false;
 
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4 + 2)) <
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4 + 2))) 
+    pos += 2;
+    rpos += 2;
+    if (*reinterpret_cast<const uint16_t *>(pos) < *reinterpret_cast<const uint16_t *>(rpos))
         return true;
-    if (*((uint16_t *)(rawPacket.pckt + rawPacket.header.ipHeader.ip_hl * 4 + 2)) >
-        *((uint16_t *)(rvalue.rawPacket.pckt + rvalue.rawPacket.header.ipHeader.ip_hl * 4 + 2))) 
+    if (*reinterpret_cast<const uint16_t *>(pos) > *reinterpret_cast<const uint16_t *>(rpos))
         return false;
     }
 
index ef487f8ee78a41e624191930dd12660604dc0257..ca58154b2a08d53612b64f6419f4f6e4cdbcfa6b 100644 (file)
@@ -17,11 +17,11 @@ SERVICE_CONF(const std::string & n, double c)
     : name(n), comment(), cost(c), payDay(0)
 {}
 SERVICE_CONF(const std::string & n, double c, unsigned p)
-    : name(n), comment(), cost(c), payDay(p)
+    : name(n), comment(), cost(c), payDay(static_cast<uint8_t>(p))
 {}
 SERVICE_CONF(const std::string & n, double c,
              unsigned p, const std::string & com)
-    : name(n), comment(com), cost(c), payDay(p)
+    : name(n), comment(com), cost(c), payDay(static_cast<uint8_t>(p))
 {}
 
 std::string name;
index e966076f00a7a4b9c288e60df325ace1b8a8fe99..412ed65dc5bc200e1a13f3c3c8d04aa15eb83eb8 100644 (file)
@@ -79,7 +79,7 @@ public:
     virtual int EditMessage(const STG_MSG & msg, const std::string & login) const = 0;
     virtual int GetMessage(uint64_t id, STG_MSG * msg, const std::string & login) const = 0;
     virtual int DelMessage(uint64_t id, const std::string & login) const = 0;
-    virtual int GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList, const std::string & login) const = 0;
+    virtual int GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList, const std::string & login) const = 0;
 
     virtual int SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const = 0;
 
index 9a35f6458145dfde2334c678733515e877392e20..13a3f05cfb49d569f316ed45a1a1a68ddd3caa7a 100644 (file)
@@ -32,6 +32,8 @@ struct TARIFF_DATA;
 
 class TARIFFS {
 public:
+    typedef std::list<TARIFF> Tariffs;
+
     virtual ~TARIFFS() {}
     virtual int ReadTariffs () = 0;
     virtual const TARIFF * FindByName(const std::string & name) const = 0;
index 70cb4fa7f5f2fd0d76e01f9abb02ef1b78dd0f55..599336583a4ebc159e400e76279b15e12292b9bb 100644 (file)
@@ -37,7 +37,7 @@ struct USER_CONF
           userdata(USERDATA_NUM),
           creditExpire(0),
           ips()
-    {};
+    {}
 
     std::string              password;
     int                      passive;
@@ -81,7 +81,7 @@ struct USER_CONF_RES
           creditExpire(),
           ips()
     {
-    };
+    }
 
     USER_CONF_RES & operator=(const USER_CONF & uc)
     {
@@ -107,7 +107,7 @@ struct USER_CONF_RES
         creditExpire = uc.creditExpire;
         ips          = uc.ips;
         return *this;
-    };
+    }
     operator USER_CONF() const
     {
         USER_CONF uc;
index a29e28128c07f5a651df94e839128fe4bf2df70e..e68190c543e5531227ad13c444be1c4b9c728327 100644 (file)
@@ -44,8 +44,6 @@
 #include "stg/common.h"
 #include "os_int.h"
 
-using namespace std;
-
 //-------------------------------------------------------------------------
 struct IP_MASK
 {
@@ -57,15 +55,18 @@ uint32_t mask;
 //-------------------------------------------------------------------------
 class USER_IPS
 {
-    friend std::ostream & operator<< (ostream & o, const USER_IPS & i);
+    friend std::ostream & operator<< (std::ostream & o, const USER_IPS & i);
     //friend stringstream & operator<< (stringstream & s, const USER_IPS & i);
-    friend const USER_IPS StrToIPS(const string & ipsStr) throw(string);
+    friend const USER_IPS StrToIPS(const std::string & ipsStr);
 
 public:
+    typedef std::vector<IP_MASK> ContainerType;
+    typedef ContainerType::size_type IndexType;
+
     USER_IPS();
     USER_IPS(const USER_IPS &);
     USER_IPS & operator=(const USER_IPS &);
-    const IP_MASK & operator[](int idx) const;
+    const IP_MASK & operator[](IndexType idx) const;
     std::string GetIpStr() const;
     bool IsIPInIPS(uint32_t ip) const;
     bool OnlyOneIP() const;
@@ -75,7 +76,7 @@ public:
 
 private:
     uint32_t CalcMask(unsigned int msk) const;
-    std::vector<IP_MASK> ips;
+    ContainerType ips;
 };
 //-------------------------------------------------------------------------
 
@@ -98,7 +99,7 @@ return *this;
 }
 //-----------------------------------------------------------------------------
 inline
-const IP_MASK & USER_IPS::operator[](int idx) const
+const IP_MASK & USER_IPS::operator[](IndexType idx) const
 {
 return ips[idx];
 }
@@ -116,8 +117,8 @@ if (ips[0].ip == 0)
     return "*";
     }
 
-std::vector<IP_MASK>::const_iterator it(ips.begin());
-std::stringstream s;
+ContainerType::const_iterator it(ips.begin());
+std::ostringstream s;
 s << inet_ntostring(it->ip);
 ++it;
 for (; it != ips.end(); ++it)
@@ -130,7 +131,7 @@ return s.str();
 inline
 int USER_IPS::Count() const
 {
-return ips.size();
+return static_cast<int>(ips.size());
 }
 //-----------------------------------------------------------------------------
 inline
@@ -152,7 +153,7 @@ if (ips.empty())
 if (ips.front().ip == 0)
     return true;
 
-for (std::vector<IP_MASK>::const_iterator it(ips.begin()); it != ips.end(); ++it)
+for (ContainerType::const_iterator it(ips.begin()); it != ips.end(); ++it)
     {
     uint32_t mask(CalcMask(it->mask));
     if ((ip & mask) == (it->ip & mask))
@@ -196,7 +197,7 @@ return s;
 }*/
 //-----------------------------------------------------------------------------
 inline
-const USER_IPS StrToIPS(const std::string & ipsStr) throw(std::string)
+const USER_IPS StrToIPS(const std::string & ipsStr)
 {
 USER_IPS ips;
 char * paddr;
@@ -215,18 +216,18 @@ if (ipsStr[0] == '*' && ipsStr.size() == 1)
     return ips;
     }
 
-char * str = new char[ipsStr.size() + 1];
-strcpy(str, ipsStr.c_str());
-char * pstr = str;
+char * tmp = new char[ipsStr.size() + 1];
+strcpy(tmp, ipsStr.c_str());
+char * pstr = tmp;
 while ((paddr = strtok(pstr, ",")))
     {
     pstr = NULL;
     ipMask.push_back(paddr);
     }
 
-delete[] str;
+delete[] tmp;
 
-for (unsigned int i = 0; i < ipMask.size(); i++)
+for (USER_IPS::IndexType i = 0; i < ipMask.size(); i++)
     {
     char str[128];
     char * strIp;
index 9030d37fa459af8c2fc2299602d1a52ab8dba4b9..2ff8909cdc25331ef800d40b7ee61d355432d16b 100644 (file)
@@ -24,7 +24,7 @@ $Author: faust $
 #include "notifer.h"
 #include "noncopyable.h"
 
-extern const volatile time_t stgTime;
+extern volatile time_t stgTime;
 
 //-----------------------------------------------------------------------------
 template<typename varT>
@@ -295,8 +295,8 @@ if ((priv->userConf && !isStat) ||
     std::stringstream oldVal;
     std::stringstream newVal;
 
-    oldVal.flags(oldVal.flags() | ios::fixed);
-    newVal.flags(newVal.flags() | ios::fixed);
+    oldVal.flags(oldVal.flags() | std::ios::fixed);
+    newVal.flags(newVal.flags() | std::ios::fixed);
 
     oldVal << USER_PROPERTY<varT>::ConstData();
     newVal << val;
@@ -377,7 +377,7 @@ else
 //-------------------------------------------------------------------------
 template<typename varT>
 inline
-ostream & operator<< (ostream & stream, const USER_PROPERTY<varT> & value)
+std::ostream & operator<< (std::ostream & stream, const USER_PROPERTY<varT> & value)
 {
 return stream << value.ConstData();
 }
index 42d436fdc96c472675eef9f2e5d0ce980d4db05e..54f11dec3a80ff748adfc819093a8f62cd4c2942 100644 (file)
@@ -123,7 +123,7 @@ struct USER_STAT
           lastCashAddTime(0),
           passiveTime(0),
           lastActivityTime(0)
-    {};
+    {}
 
     DIR_TRAFF   up;
     DIR_TRAFF   down;
@@ -161,7 +161,7 @@ struct USER_STAT_RES
         up = us.up;
         down = us.down;
         return * this;
-    };
+    }
     operator USER_STAT() const
     {
         USER_STAT us;
@@ -174,7 +174,7 @@ struct USER_STAT_RES
         us.up               = up;
         us.down             = down;
         return us;
-    };
+    }
 
     RESETABLE<double>      cash;
     RESETABLE<double>      freeMb;
index 7ed1636152a05a7abd13b2ee6b290889f9c0978e..aee1171c9b387d876bd321fd6b0d6a5985205d43 100644 (file)
@@ -40,17 +40,20 @@ class DIR_TRAFF
     friend std::ostream & operator<< (std::ostream & o, const DIR_TRAFF & traff);
 
 public:
+    typedef std::vector<uint64_t> ContainerType;
+    typedef ContainerType::size_type IndexType;
+
     //-------------------------------------------------------------------------
     DIR_TRAFF();
     DIR_TRAFF(const DIR_TRAFF & ts);
     DIR_TRAFF & operator=(const DIR_TRAFF & ts);
     ~DIR_TRAFF();
-    uint64_t operator[](int idx) const;
-    uint64_t & operator[](int idx);
+    uint64_t operator[](IndexType idx) const;
+    uint64_t & operator[](IndexType idx);
     DIR_TRAFF operator+(const DIR_TRAFF & ts);
 
 private:
-    std::vector<uint64_t> traff;
+    ContainerType traff;
 };
 //-----------------------------------------------------------------------------
 
@@ -75,19 +78,19 @@ traff = ts.traff;
 return *this;
 }
 //-----------------------------------------------------------------------------
-inline uint64_t & DIR_TRAFF::operator[](int idx)
+inline uint64_t & DIR_TRAFF::operator[](IndexType idx)
 {
 return traff[idx];
 }
 //-----------------------------------------------------------------------------
-inline uint64_t DIR_TRAFF::operator[](int idx) const
+inline uint64_t DIR_TRAFF::operator[](IndexType idx) const
 {
 return traff[idx];
 }
 //-----------------------------------------------------------------------------
 inline DIR_TRAFF DIR_TRAFF::operator+(const DIR_TRAFF & ts)
 {
-for (int i = 0; i < DIR_NUM; i++)
+for (IndexType i = 0; i < DIR_NUM; i++)
     {
     traff[i] = traff[i] + ts.traff[i];
     }
@@ -97,7 +100,7 @@ return *this;
 inline std::ostream & operator<<(std::ostream & o, const DIR_TRAFF & traff)
 {
 bool first = true;
-for (size_t i = 0; i < DIR_NUM; ++i)
+for (DIR_TRAFF::IndexType i = 0; i < DIR_NUM; ++i)
     {
     if (first)
         first = false;
index 9d6a78333c0ffcfee64ab8535e1b81d1ffc9aab1..741017b57b18dc7ed8f040580d1c7118ae06b23b 100644 (file)
@@ -1,7 +1,5 @@
 #include "iface.h"
 
-#include "loki/Singleton.h"
-
 #include "thriftclient.h"
 
 int stgInstantiateImpl(const char * server, uint16_t port, const char * password)
index 6c1fc8a8c671ea9c7ed24781af0ff867990d09bb..66b8556d1144ab43344378865ecbbc18261fc043 100644 (file)
@@ -41,7 +41,7 @@ public:
     ACTION(ACTIVE_CLASS & ac,
            typename ACTOR<ACTIVE_CLASS, DATA_TYPE>::TYPE a,
            DATA_TYPE d)
-        : activeClass(ac), actor(a), data(d) {};
+        : activeClass(ac), actor(a), data(d) {}
     void Invoke();
 private:
     ACTION(const ACTION<ACTIVE_CLASS, DATA_TYPE> & rvalue);
index 6a608e11ef4d9ca8822779796d8882652c98f5f6..9a2b9781242a62eec4a06e8d82b776fec6a2732b 100644 (file)
@@ -43,9 +43,9 @@ public:
       ADMIN_IMPL();
       ADMIN_IMPL(const ADMIN_CONF & ac);
       ADMIN_IMPL(const PRIV & priv,
-            const std::string & login,
-            const std::string & password);
-      virtual ~ADMIN_IMPL() {};
+                 const std::string & login,
+                 const std::string & password);
+      virtual ~ADMIN_IMPL() {}
 
       ADMIN_IMPL & operator=(const ADMIN_IMPL &);
       ADMIN_IMPL & operator=(const ADMIN_CONF &);
@@ -54,15 +54,15 @@ public:
       bool         operator<(const ADMIN_IMPL & rhs) const;
       bool         operator<=(const ADMIN_IMPL & rhs) const;
 
-      const std::string & GetPassword() const { return conf.password; };
-      const std::string & GetLogin() const { return conf.login; };
-      PRIV const *        GetPriv() const { return &conf.priv; };
-      uint16_t            GetPrivAsInt() const { return conf.priv.ToInt(); };
-      const ADMIN_CONF &  GetConf() const { return conf; };
+      const std::string & GetPassword() const { return conf.password; }
+      const std::string & GetLogin() const { return conf.login; }
+      PRIV const *        GetPriv() const { return &conf.priv; }
+      uint32_t            GetPrivAsInt() const { return conf.priv.ToInt(); }
+      const ADMIN_CONF &  GetConf() const { return conf; }
       void                Print() const;
-      uint32_t            GetIP() const { return ip; };
+      uint32_t            GetIP() const { return ip; }
       std::string         GetIPStr() const;
-      void                SetIP(uint32_t ip) { ADMIN_IMPL::ip = ip; };
+      void                SetIP(uint32_t v) { ip = v; }
       const std::string   GetLogStr() const;
 
 private:
index cb00368c18543d75c9a72e596d8f6d6b993f6587..48435b75d56f49c5a58c9b2aeb78fb82aa62382d 100644 (file)
@@ -73,8 +73,8 @@ private:
     ADMINS_IMPL(const ADMINS_IMPL & rvalue);
     ADMINS_IMPL & operator=(const ADMINS_IMPL & rvalue);
 
-    typedef list<ADMIN_IMPL>::iterator admin_iter;
-    typedef list<ADMIN_IMPL>::const_iterator const_admin_iter;
+    typedef std::list<ADMIN_IMPL>::iterator admin_iter;
+    typedef std::list<ADMIN_IMPL>::const_iterator const_admin_iter;
 
     int             Read();
 
index f926d23a9276b2f9f8cb04104796f07f3b01b188..a366f46674635dc29cb332396f419ff567630902 100644 (file)
@@ -48,7 +48,7 @@ const PRIV * priv = admin->GetPriv();
 
 if (!priv->corpChg)
     {
-    string s = admin->GetLogStr() + " Add corporation \'" + corp.name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Add corporation \'" + corp.name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -79,14 +79,14 @@ WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
 return -1;
 }
 //-----------------------------------------------------------------------------
-int CORPORATIONS_IMPL::Del(const string & name, const ADMIN * admin)
+int CORPORATIONS_IMPL::Del(const std::string & name, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 const PRIV * priv = admin->GetPriv();
 
 if (!priv->corpChg)
     {
-    string s = admin->GetLogStr() + " Delete corporation \'" + name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Delete corporation \'" + name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -101,7 +101,7 @@ if (si == data.end())
     return -1;
     }
 
-map<int, const_crp_iter>::iterator csi;
+std::map<int, const_crp_iter>::iterator csi;
 csi = searchDescriptors.begin();
 while (csi != searchDescriptors.end())
     {
@@ -130,7 +130,7 @@ const PRIV * priv = admin->GetPriv();
 
 if (!priv->corpChg)
     {
-    string s = admin->GetLogStr() + " Change corporation \'" + corp.name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Change corporation \'" + corp.name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -162,7 +162,7 @@ return 0;
 bool CORPORATIONS_IMPL::Read()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-vector<string> corpsList;
+std::vector<std::string> corpsList;
 if (store->GetCorpsList(&corpsList) < 0)
     {
     WriteServLog(store->GetStrError().c_str());
@@ -184,7 +184,7 @@ for (size_t i = 0; i < corpsList.size(); i++)
 return false;
 }
 //-----------------------------------------------------------------------------
-bool CORPORATIONS_IMPL::Find(const string & name, CORP_CONF * corp)
+bool CORPORATIONS_IMPL::Find(const std::string & name, CORP_CONF * corp)
 {
 assert(corp != NULL && "Pointer to corporation is not null");
 
@@ -203,7 +203,7 @@ if (si != data.end())
 return true;
 }
 //-----------------------------------------------------------------------------
-bool CORPORATIONS_IMPL::Exists(const string & name) const
+bool CORPORATIONS_IMPL::Exists(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 if (data.empty())
index e4552424219c72e3aab74b25dacb69649456451f..7bde401b1a3655ba6ab77849ed7ac790e0abb643 100644 (file)
@@ -58,8 +58,8 @@ private:
     CORPORATIONS_IMPL(const CORPORATIONS_IMPL & rvalue);
     CORPORATIONS_IMPL & operator=(const CORPORATIONS_IMPL & rvalue);
 
-    typedef list<CORP_CONF>::iterator       crp_iter;
-    typedef list<CORP_CONF>::const_iterator const_crp_iter;
+    typedef std::list<CORP_CONF>::iterator       crp_iter;
+    typedef std::list<CORP_CONF>::const_iterator const_crp_iter;
 
     bool Read();
 
index 71602795626fdc82b40e703781e955eb9f4fcb3d..35de3675b290b7a2c8a2fbb5f110fa00006b7a52 100644 (file)
@@ -12,7 +12,7 @@ class EVENT_LOOP : private NONCOPYABLE,
     public:
         bool Start();
         bool Stop();
-        bool IsRunning() const { return _running; };
+        bool IsRunning() const { return _running; }
 
         template <class ACTIVE_CLASS, typename DATA_TYPE>
         void Enqueue(ACTIVE_CLASS & ac,
@@ -44,8 +44,8 @@ class EVENT_LOOP_SINGLETON : private NONCOPYABLE
         static EVENT_LOOP * _instance;
         static void CreateInstance();
 
-        EVENT_LOOP_SINGLETON() {};
-        ~EVENT_LOOP_SINGLETON() {};
+        EVENT_LOOP_SINGLETON() {}
+        ~EVENT_LOOP_SINGLETON() {}
 };
 
 template <class ACTIVE_CLASS, typename DATA_TYPE>
index cabd991be6361e3f08695173b9387f4d903acaaa..eb61e2d5d5d31975f50db3d0670acd3765b3ab2f 100644 (file)
@@ -60,8 +60,6 @@
 #include "pidfile.h"
 #include "eventloop.h"
 
-using namespace std;
-
 #ifdef DEBUG
     #define MAIN_DEBUG (1)
     #define NO_DAEMON  (1)
@@ -69,7 +67,16 @@ using namespace std;
 
 #define START_FILE "/._ST_ART_ED_"
 
-set<pid_t> executersPid;
+namespace
+{
+std::set<pid_t> executersPid;
+
+bool StartModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs);
+bool StopModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs);
+void StartTimer();
+int StartScriptExecuter(char * procName, int msgKey, int * msgID, SETTINGS_IMPL * settings);
+int ForkAndWait(const std::string & confDir);
+void KillExecuters();
 
 //-----------------------------------------------------------------------------
 bool StartModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs)
@@ -82,7 +89,7 @@ bool StopModCmp(const PLUGIN_RUNNER & lhs, const PLUGIN_RUNNER & rhs)
 return lhs.GetStopPosition() > rhs.GetStopPosition();
 }
 //-----------------------------------------------------------------------------
-static void StartTimer()
+void StartTimer()
 {
 STG_LOGGER & WriteServLog = GetStgLogger();
 
@@ -165,14 +172,14 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 #ifndef NO_DAEMON
-int ForkAndWait(const string & confDir)
+int ForkAndWait(const std::string & confDir)
 #else
-int ForkAndWait(const string &)
+int ForkAndWait(const std::string &)
 #endif
 {
 #ifndef NO_DAEMON
 pid_t childPid = fork();
-string startFile = confDir + START_FILE;
+std::string startFile = confDir + START_FILE;
 unlink(startFile.c_str());
 
 switch (childPid)
@@ -209,7 +216,7 @@ return 0;
 //-----------------------------------------------------------------------------
 void KillExecuters()
 {
-set<pid_t>::iterator pid;
+std::set<pid_t>::iterator pid;
 pid = executersPid.begin();
 while (pid != executersPid.end())
     {
@@ -219,6 +226,8 @@ while (pid != executersPid.end())
     }
 }
 //-----------------------------------------------------------------------------
+} // namespace anonymous
+//-----------------------------------------------------------------------------
 int main(int argc, char * argv[])
 {
 SETTINGS_IMPL * settings = NULL;
@@ -236,10 +245,10 @@ int msgID = -11;
     WriteServLog.SetLogFileName("/var/log/stargazer.log");
     }
 
-vector<MODULE_SETTINGS> modSettings;
-list<PLUGIN_RUNNER> modules;
+std::vector<MODULE_SETTINGS> modSettings;
+std::list<PLUGIN_RUNNER> modules;
 
-list<PLUGIN_RUNNER>::iterator modIter;
+std::list<PLUGIN_RUNNER>::iterator modIter;
 
 if (getuid())
     {
@@ -264,7 +273,7 @@ if (settings->ReadSettings())
     }
 
 #ifndef NO_DAEMON
-string startFile(settings->GetConfDir() + START_FILE);
+std::string startFile(settings->GetConfDir() + START_FILE);
 #endif
 
 if (ForkAndWait(settings->GetConfDir()) < 0)
@@ -338,7 +347,7 @@ modSettings = settings->GetModulesSettings();
 
 for (size_t i = 0; i < modSettings.size(); i++)
     {
-    string modulePath = settings->GetModulesPath();
+    std::string modulePath = settings->GetModulesPath();
     modulePath += "/mod_";
     modulePath += modSettings[i].moduleName;
     modulePath += ".so";
@@ -400,7 +409,7 @@ while (modIter != modules.end())
     ++modIter;
     }
 
-srandom(stgTime);
+srandom(static_cast<unsigned int>(stgTime));
 
 WriteServLog("Stg started successfully.");
 WriteServLog("+++++++++++++++++++++++++++++++++++++++++++++");
@@ -417,7 +426,7 @@ while (true)
     bool stop = false;
     int status;
     pid_t childPid;
-    set<pid_t>::iterator it;
+    std::set<pid_t>::iterator it;
     switch (sig)
         {
         case SIGHUP:
index e3bc192a7d90975b4a12b56e55729f11c38e9064..9640e2e8b218de94a5cce005753a618c8e5e1c7b 100644 (file)
@@ -41,7 +41,7 @@ $Author: faust $
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-PLUGIN_CREATOR<AUTH_AO> aoc;
+static PLUGIN_CREATOR<AUTH_AO> aoc;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -53,18 +53,18 @@ return aoc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 template <typename varType>
-class IS_CONTAINS_USER: public binary_function<varType, USER_PTR, bool>
+class IS_CONTAINS_USER: public std::binary_function<varType, USER_PTR, bool>
 {
 public:
     bool operator()(varType notifier, USER_PTR user) const
         {
         return notifier.GetUser() == user;
-        };
+        }
 };
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const string AUTH_AO::GetVersion() const
+std::string AUTH_AO::GetVersion() const
 {
 return "Always Online authorizator v.1.0";
 }
@@ -109,7 +109,7 @@ if (!isRunning)
 users->DelNotifierUserAdd(&onAddUserNotifier);
 users->DelNotifierUserDel(&onDelUserNotifier);
 
-list<USER_PTR>::iterator users_iter;
+std::list<USER_PTR>::iterator users_iter;
 users_iter = usersList.begin();
 while (users_iter != usersList.end())
     {
@@ -153,8 +153,8 @@ void AUTH_AO::UnSetUserNotifiers(USER_PTR u)
 IS_CONTAINS_USER<CHG_BEFORE_NOTIFIER<int> > IsContainsUserAOB;
 IS_CONTAINS_USER<CHG_AFTER_NOTIFIER<int> > IsContainsUserAOA;
 
-list<CHG_BEFORE_NOTIFIER<int> >::iterator aoBIter;
-list<CHG_AFTER_NOTIFIER<int> >::iterator  aoAIter;
+std::list<CHG_BEFORE_NOTIFIER<int> >::iterator aoBIter;
+std::list<CHG_AFTER_NOTIFIER<int> >::iterator  aoAIter;
 
 aoBIter = find_if(BeforeChgAONotifierList.begin(),
                   BeforeChgAONotifierList.end(),
@@ -181,12 +181,12 @@ if (aoAIter != AfterChgAONotifierList.end())
 IS_CONTAINS_USER<CHG_BEFORE_NOTIFIER<USER_IPS> > IsContainsUserIPB;
 IS_CONTAINS_USER<CHG_AFTER_NOTIFIER<USER_IPS> >  IsContainsUserIPA;
 
-list<CHG_BEFORE_NOTIFIER<USER_IPS> >::iterator ipBIter;
-list<CHG_AFTER_NOTIFIER<USER_IPS> >::iterator  ipAIter;
+std::list<CHG_BEFORE_NOTIFIER<USER_IPS> >::iterator ipBIter;
+std::list<CHG_AFTER_NOTIFIER<USER_IPS> >::iterator  ipAIter;
 
-ipBIter = find_if(BeforeChgIPNotifierList.begin(),
-                  BeforeChgIPNotifierList.end(),
-                  bind2nd(IsContainsUserIPB, u));
+ipBIter = std::find_if(BeforeChgIPNotifierList.begin(),
+                       BeforeChgIPNotifierList.end(),
+                       bind2nd(IsContainsUserIPB, u));
 
 if (ipBIter != BeforeChgIPNotifierList.end())
     {
index 879c937ca9c3e51f98a9a09aa9353ce0db425733..d8b6dc88bf48719a7504a9f08328bdfb08c25973 100644 (file)
@@ -83,7 +83,7 @@ private:
 class AUTH_AO : public AUTH {
 public:
     AUTH_AO();
-    virtual ~AUTH_AO(){};
+    virtual ~AUTH_AO(){}
 
     void                SetUsers(USERS * u) { users = u; }
 
@@ -94,7 +94,7 @@ public:
     void                SetSettings(const MODULE_SETTINGS &) {}
     int                 ParseSettings() { return 0; }
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const { return 30; }
     uint16_t            GetStopPosition() const { return 30; }
 
@@ -118,11 +118,11 @@ private:
     bool                isRunning;
     MODULE_SETTINGS     settings;
 
-    list<CHG_BEFORE_NOTIFIER<int> >      BeforeChgAONotifierList;
-    list<CHG_AFTER_NOTIFIER<int> >       AfterChgAONotifierList;
+    std::list<CHG_BEFORE_NOTIFIER<int> >      BeforeChgAONotifierList;
+    std::list<CHG_AFTER_NOTIFIER<int> >       AfterChgAONotifierList;
 
-    list<CHG_BEFORE_NOTIFIER<USER_IPS> > BeforeChgIPNotifierList;
-    list<CHG_AFTER_NOTIFIER<USER_IPS> >  AfterChgIPNotifierList;
+    std::list<CHG_BEFORE_NOTIFIER<USER_IPS> > BeforeChgIPNotifierList;
+    std::list<CHG_AFTER_NOTIFIER<USER_IPS> >  AfterChgIPNotifierList;
 
     class ADD_USER_NONIFIER: public NOTIFIER_BASE<USER_PTR> {
     public:
index 5a92cff5f6701de2ed6e7fa4249d9031cabd1a05..dd0102b2f0b5bb8ad6311dd46cd9f7da8b477b90 100644 (file)
 #include "stg/plugin_creator.h"
 #include "inetaccess.h"
 
-extern volatile const time_t stgTime;
-
-void InitEncrypt(BLOWFISH_CTX * ctx, const string & password);
-void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
-void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
+extern volatile time_t stgTime;
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<AUTH_IA> iac;
+
+void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password);
+void Decrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8);
+void Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8);
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -80,7 +85,7 @@ int AUTH_IA_SETTINGS::ParseSettings(const MODULE_SETTINGS & s)
 {
 int p;
 PARAM_VALUE pv;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 ///////////////////////////
 pv.param = "Port";
 pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -96,7 +101,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     printfd(__FILE__, "Cannot parse parameter 'Port'\n");
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 ///////////////////////////
 pv.param = "UserDelay";
 pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -130,7 +135,7 @@ if (ParseIntInRange(pvi->value[0], 15, 1200, &userTimeout))
     return -1;
     }
 /////////////////////////////////////////////////////////////
-string freeMbType;
+std::string freeMbType;
 int n = 0;
 pv.param = "FreeMb";
 pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -477,7 +482,7 @@ while (ia->nonstop)
     if ((touchTime + MONITOR_TIME_DELAY_SEC <= stgTime) && ia->stgSettings->GetMonitoring())
         {
         touchTime = stgTime;
-        string monFile = ia->stgSettings->GetMonitorDir() + "/inetaccess_r";
+        std::string monFile = ia->stgSettings->GetMonitorDir() + "/inetaccess_r";
         TouchFile(monFile.c_str());
         }
     }
@@ -497,7 +502,7 @@ AUTH_IA * ia = static_cast<AUTH_IA *>(d);
 ia->isRunningRunTimeouter = true;
 
 int a = -1;
-string monFile = ia->stgSettings->GetMonitorDir() + "/inetaccess_t";
+std::string monFile = ia->stgSettings->GetMonitorDir() + "/inetaccess_t";
 while (ia->nonstop)
     {
     struct timespec ts = {0, 20000000};
@@ -536,7 +541,7 @@ if (listenSocket < 0)
     }
 
 listenAddr.sin_family = AF_INET;
-listenAddr.sin_port = htons(iaSettings.GetUserPort());
+listenAddr.sin_port = htons(static_cast<uint16_t>(iaSettings.GetUserPort()));
 listenAddr.sin_addr.s_addr = inet_addr("0.0.0.0");
 
 if (bind(listenSocket, (struct sockaddr*)&listenAddr, sizeof(listenAddr)) < 0)
@@ -564,7 +569,7 @@ if (!WaitPackets(listenSocket)) // Timeout
 
 struct sockaddr_in outerAddr;
 socklen_t outerAddrLen(sizeof(outerAddr));
-int dataLen = recvfrom(listenSocket, buffer, bufferSize, 0, (struct sockaddr *)&outerAddr, &outerAddrLen);
+ssize_t dataLen = recvfrom(listenSocket, buffer, bufferSize, 0, (struct sockaddr *)&outerAddr, &outerAddrLen);
 
 if (!dataLen) // EOF
     {
@@ -672,7 +677,7 @@ int AUTH_IA::Timeouter()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-map<uint32_t, IA_USER>::iterator it;
+std::map<uint32_t, IA_USER>::iterator it;
 it = ip2user.begin();
 uint32_t sip;
 
@@ -747,13 +752,13 @@ while (it != ip2user.end())
 return 0;
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::PacketProcessor(char * buff, int dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR user)
+int AUTH_IA::PacketProcessor(void * buff, size_t dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR user)
 {
 std::string login(user->GetLogin());
-const int offset = LOGIN_LEN + 2 + 6; // LOGIN_LEN + sizeOfMagic + sizeOfVer;
+const size_t offset = LOGIN_LEN + 2 + 6; // LOGIN_LEN + sizeOfMagic + sizeOfVer;
 
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-map<uint32_t, IA_USER>::iterator it(ip2user.find(sip));
+std::map<uint32_t, IA_USER>::iterator it(ip2user.find(sip));
 
 if (it == ip2user.end())
     {
@@ -807,14 +812,13 @@ if (iaUser->password != user->GetProperty().password.Get())
     iaUser->password = user->GetProperty().password.Get();
     }
 
-buff += offset;
-Decrypt(&iaUser->ctx, buff, buff, (dataLen - offset) / 8);
+Decrypt(&iaUser->ctx, static_cast<char *>(buff) + offset, static_cast<char *>(buff) + offset, (dataLen - offset) / 8);
 
 char packetName[IA_MAX_TYPE_LEN];
-strncpy(packetName,  buff + 4, IA_MAX_TYPE_LEN);
+strncpy(packetName,  static_cast<char *>(buff) + offset + 4, IA_MAX_TYPE_LEN);
 packetName[IA_MAX_TYPE_LEN - 1] = 0;
 
-map<string, int>::iterator pi(packetTypes.find(packetName));
+std::map<std::string, int>::iterator pi(packetTypes.find(packetName));
 if (pi == packetTypes.end())
     {
     SendError(sip, sport, protoVer, "îÅÐÒÁ×ÉÌØÎÙÊ ÌÏÇÉΠÉÌÉ ÐÁÒÏÌØ!");
@@ -846,15 +850,15 @@ switch (pi->second)
         switch (protoVer)
             {
             case 6:
-                if (Process_CONN_SYN_6((CONN_SYN_6 *)(buff - offset), &(it->second), sip))
+                if (Process_CONN_SYN_6(static_cast<CONN_SYN_6 *>(buff), &(it->second), sip))
                     return -1;
                 return Send_CONN_SYN_ACK_6(iaUser, sip);
             case 7:
-                if (Process_CONN_SYN_7((CONN_SYN_7 *)(buff - offset), &(it->second), sip))
+                if (Process_CONN_SYN_7(static_cast<CONN_SYN_7 *>(buff), &(it->second), sip))
                     return -1;
                 return Send_CONN_SYN_ACK_7(iaUser, sip);
             case 8:
-                if (Process_CONN_SYN_8((CONN_SYN_8 *)(buff - offset), &(it->second), sip))
+                if (Process_CONN_SYN_8(static_cast<CONN_SYN_8 *>(buff), &(it->second), sip))
                     return -1;
                 return Send_CONN_SYN_ACK_8(iaUser, sip);
             }
@@ -864,15 +868,15 @@ switch (pi->second)
         switch (protoVer)
             {
             case 6:
-                if (Process_CONN_ACK_6((CONN_ACK_6 *)(buff - offset), iaUser, sip))
+                if (Process_CONN_ACK_6(static_cast<CONN_ACK_6 *>(buff), iaUser, sip))
                     return -1;
                 return Send_ALIVE_SYN_6(iaUser, sip);
             case 7:
-                if (Process_CONN_ACK_7((CONN_ACK_6 *)(buff - offset), iaUser, sip))
+                if (Process_CONN_ACK_7(static_cast<CONN_ACK_6 *>(buff), iaUser, sip))
                     return -1;
                 return Send_ALIVE_SYN_7(iaUser, sip);
             case 8:
-                if (Process_CONN_ACK_8((CONN_ACK_8 *)(buff - offset), iaUser, sip))
+                if (Process_CONN_ACK_8(static_cast<CONN_ACK_8 *>(buff), iaUser, sip))
                     return -1;
                 return Send_ALIVE_SYN_8(iaUser, sip);
             }
@@ -882,11 +886,11 @@ switch (pi->second)
         switch (protoVer)
             {
             case 6:
-                return Process_ALIVE_ACK_6((ALIVE_ACK_6 *)(buff - offset), iaUser, sip);
+                return Process_ALIVE_ACK_6(static_cast<ALIVE_ACK_6 *>(buff), iaUser, sip);
             case 7:
-                return Process_ALIVE_ACK_7((ALIVE_ACK_6 *)(buff - offset), iaUser, sip);
+                return Process_ALIVE_ACK_7(static_cast<ALIVE_ACK_6 *>(buff), iaUser, sip);
             case 8:
-                return Process_ALIVE_ACK_8((ALIVE_ACK_8 *)(buff - offset), iaUser, sip);
+                return Process_ALIVE_ACK_8(static_cast<ALIVE_ACK_8 *>(buff), iaUser, sip);
             }
         break;
 
@@ -894,15 +898,15 @@ switch (pi->second)
         switch (protoVer)
             {
             case 6:
-                if (Process_DISCONN_SYN_6((DISCONN_SYN_6 *)(buff - offset), iaUser, sip))
+                if (Process_DISCONN_SYN_6(static_cast<DISCONN_SYN_6 *>(buff), iaUser, sip))
                     return -1;
                 return Send_DISCONN_SYN_ACK_6(iaUser, sip);
             case 7:
-                if (Process_DISCONN_SYN_7((DISCONN_SYN_6 *)(buff - offset), iaUser, sip))
+                if (Process_DISCONN_SYN_7(static_cast<DISCONN_SYN_6 *>(buff), iaUser, sip))
                     return -1;
                 return Send_DISCONN_SYN_ACK_7(iaUser, sip);
             case 8:
-                if (Process_DISCONN_SYN_8((DISCONN_SYN_8 *)(buff - offset), iaUser, sip))
+                if (Process_DISCONN_SYN_8(static_cast<DISCONN_SYN_8 *>(buff), iaUser, sip))
                     return -1;
                 return Send_DISCONN_SYN_ACK_8(iaUser, sip);
             }
@@ -912,15 +916,15 @@ switch (pi->second)
         switch (protoVer)
             {
             case 6:
-                if (Process_DISCONN_ACK_6((DISCONN_ACK_6 *)(buff - offset), iaUser, sip, it))
+                if (Process_DISCONN_ACK_6(static_cast<DISCONN_ACK_6 *>(buff), iaUser, sip, it))
                     return -1;
                 return Send_FIN_6(iaUser, sip, it);
             case 7:
-                if (Process_DISCONN_ACK_7((DISCONN_ACK_6 *)(buff - offset), iaUser, sip, it))
+                if (Process_DISCONN_ACK_7(static_cast<DISCONN_ACK_6 *>(buff), iaUser, sip, it))
                     return -1;
                 return Send_FIN_7(iaUser, sip, it);
             case 8:
-                if (Process_DISCONN_ACK_8((DISCONN_ACK_8 *)(buff - offset), iaUser, sip, it))
+                if (Process_DISCONN_ACK_8(static_cast<DISCONN_ACK_8 *>(buff), iaUser, sip, it))
                     return -1;
                 return Send_FIN_8(iaUser, sip, it);
             }
@@ -938,7 +942,7 @@ uint32_t ip = u->GetCurrIP();
 if (!ip)
     return;
 
-map<uint32_t, IA_USER>::iterator it;
+std::map<uint32_t, IA_USER>::iterator it;
 
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 it = ip2user.find(ip);
@@ -957,12 +961,12 @@ if (it->second.user == u)
     }
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::SendError(uint32_t ip, uint16_t port, int protoVer, const string & text)
+int AUTH_IA::SendError(uint32_t ip, uint16_t port, int protoVer, const std::string & text)
 {
 struct sockaddr_in sendAddr;
+ssize_t res;
 switch (protoVer)
     {
-    int res;
     case 6:
     case 7:
         ERR err;
@@ -1008,7 +1012,7 @@ switch (protoVer)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Send(uint32_t ip, uint16_t port, const char * buffer, int len)
+int AUTH_IA::Send(uint32_t ip, uint16_t port, const char * buffer, size_t len)
 {
 struct sockaddr_in sendAddr;
 
@@ -1016,9 +1020,7 @@ sendAddr.sin_family = AF_INET;
 sendAddr.sin_port = htons(port);
 sendAddr.sin_addr.s_addr = ip;
 
-int res = sendto(listenSocket, buffer, len, 0, (struct sockaddr*)&sendAddr, sizeof(sendAddr));
-
-if (res == len)
+if (sendto(listenSocket, buffer, len, 0, (struct sockaddr*)&sendAddr, sizeof(sendAddr)) == static_cast<ssize_t>(len))
     return 0;
 
 return -1;
@@ -1028,7 +1030,7 @@ int AUTH_IA::SendMessage(const STG_MSG & msg, uint32_t ip) const
 {
 printfd(__FILE__, "SendMessage userIP=%s\n", inet_ntostring(ip).c_str());
 
-map<uint32_t, IA_USER>::iterator it;
+std::map<uint32_t, IA_USER>::iterator it;
 
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 it = ip2user.find(ip);
@@ -1074,8 +1076,8 @@ memset(&info, 0, sizeof(INFO_7));
 
 info.len = 264;
 strncpy((char*)info.type, "INFO_7", 16);
-info.infoType = msg.header.type;
-info.showTime = msg.header.showTime;
+info.infoType = static_cast<int8_t>(msg.header.type);
+info.showTime = static_cast<int8_t>(msg.header.showTime);
 info.sendTime = msg.header.creationTime;
 
 size_t len = info.len;
@@ -1103,8 +1105,8 @@ memset(&info, 0, sizeof(INFO_8));
 
 info.len = 1056;
 strncpy((char*)info.type, "INFO_8", 16);
-info.infoType = msg.header.type;
-info.showTime = msg.header.showTime;
+info.infoType = static_cast<int8_t>(msg.header.type);
+info.showTime = static_cast<int8_t>(msg.header.showTime);
 info.sendTime = msg.header.creationTime;
 
 strncpy((char*)info.text, msg.text.c_str(), IA_MAX_MSG_LEN_8 - 1);
@@ -1296,7 +1298,7 @@ return 0;
 int AUTH_IA::Process_DISCONN_ACK_6(DISCONN_ACK_6 * disconnAck,
                                    IA_USER * iaUser,
                                    uint32_t,
-                                   map<uint32_t, IA_USER>::iterator)
+                                   std::map<uint32_t, IA_USER>::iterator)
 {
 #ifdef ARCH_BE
 SwapBytes(disconnAck->len);
@@ -1312,12 +1314,12 @@ if (!((iaUser->phase.GetPhase() == 4) && (disconnAck->rnd == iaUser->rnd + 1)))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Process_DISCONN_ACK_7(DISCONN_ACK_7 * disconnAck, IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
+int AUTH_IA::Process_DISCONN_ACK_7(DISCONN_ACK_7 * disconnAck, IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it)
 {
 return Process_DISCONN_ACK_6(disconnAck, iaUser, sip, it);
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Process_DISCONN_ACK_8(DISCONN_ACK_8 * disconnAck, IA_USER * iaUser, uint32_t, map<uint32_t, IA_USER>::iterator)
+int AUTH_IA::Process_DISCONN_ACK_8(DISCONN_ACK_8 * disconnAck, IA_USER * iaUser, uint32_t, std::map<uint32_t, IA_USER>::iterator)
 {
 #ifdef ARCH_BE
 SwapBytes(disconnAck->len);
@@ -1349,7 +1351,7 @@ for (int j = 0; j < DIR_NUM; j++)
     }
 //--- Fill static data in connSynAck ---
 
-iaUser->rnd = random();
+iaUser->rnd = static_cast<uint32_t>(random());
 connSynAck6.rnd = iaUser->rnd;
 
 connSynAck6.userTimeOut = iaSettings.GetUserTimeout();
@@ -1391,7 +1393,7 @@ for (int j = 0; j < DIR_NUM; j++)
     }
 //--- Fill static data in connSynAck ---
 
-iaUser->rnd = random();
+iaUser->rnd = static_cast<uint32_t>(random());
 connSynAck8.rnd = iaUser->rnd;
 
 connSynAck8.userTimeOut = iaSettings.GetUserTimeout();
@@ -1411,7 +1413,7 @@ return Send(sip, iaUser->port, (char*)&connSynAck8, Min8(sizeof(CONN_SYN_ACK_8))
 int AUTH_IA::Send_ALIVE_SYN_6(IA_USER * iaUser, uint32_t sip)
 {
 aliveSyn6.len = Min8(sizeof(ALIVE_SYN_6));
-aliveSyn6.rnd = iaUser->rnd = random();
+aliveSyn6.rnd = iaUser->rnd = static_cast<uint32_t>(random());
 
 strcpy((char*)aliveSyn6.type, "ALIVE_SYN");
 
@@ -1501,7 +1503,7 @@ aliveSyn8.hdr.protoVer[0] = 0;
 aliveSyn8.hdr.protoVer[1] = 8;
 
 aliveSyn8.len = Min8(sizeof(ALIVE_SYN_8));
-aliveSyn8.rnd = iaUser->rnd = random();
+aliveSyn8.rnd = iaUser->rnd = static_cast<uint32_t>(random());
 
 strcpy((char*)aliveSyn8.type, "ALIVE_SYN");
 
@@ -1586,7 +1588,7 @@ int AUTH_IA::Send_DISCONN_SYN_ACK_6(IA_USER * iaUser, uint32_t sip)
 {
 disconnSynAck6.len = Min8(sizeof(DISCONN_SYN_ACK_6));
 strcpy((char*)disconnSynAck6.type, "DISCONN_SYN_ACK");
-disconnSynAck6.rnd = iaUser->rnd = random();
+disconnSynAck6.rnd = iaUser->rnd = static_cast<uint32_t>(random());
 
 #ifdef ARCH_BE
 SwapBytes(disconnSynAck6.len);
@@ -1610,7 +1612,7 @@ disconnSynAck8.hdr.protoVer[1] = 8;
 
 disconnSynAck8.len = Min8(sizeof(DISCONN_SYN_ACK_8));
 strcpy((char*)disconnSynAck8.type, "DISCONN_SYN_ACK");
-disconnSynAck8.rnd = iaUser->rnd = random();
+disconnSynAck8.rnd = iaUser->rnd = static_cast<uint32_t>(random());
 
 #ifdef ARCH_BE
 SwapBytes(disconnSynAck8.len);
@@ -1621,7 +1623,7 @@ Encrypt(&iaUser->ctx, (char*)&disconnSynAck8, (char*)&disconnSynAck8, Min8(sizeo
 return Send(sip, iaUser->port, (char*)&disconnSynAck8, Min8(sizeof(disconnSynAck8)));
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Send_FIN_6(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
+int AUTH_IA::Send_FIN_6(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it)
 {
 fin6.len = Min8(sizeof(FIN_6));
 strcpy((char*)fin6.type, "FIN");
@@ -1642,12 +1644,12 @@ ip2user.erase(it);
 return res;
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Send_FIN_7(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
+int AUTH_IA::Send_FIN_7(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it)
 {
 return Send_FIN_6(iaUser, sip, it);
 }
 //-----------------------------------------------------------------------------
-int AUTH_IA::Send_FIN_8(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it)
+int AUTH_IA::Send_FIN_8(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it)
 {
 strcpy((char*)fin8.hdr.magic, IA_ID);
 fin8.hdr.protoVer[0] = 0;
@@ -1671,9 +1673,11 @@ ip2user.erase(it);
 
 return res;
 }
+namespace
+{
 //-----------------------------------------------------------------------------
 inline
-void InitEncrypt(BLOWFISH_CTX * ctx, const string & password)
+void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
 unsigned char keyL[PASSWD_LEN];
 memset(keyL, 0, PASSWD_LEN);
@@ -1682,15 +1686,17 @@ Blowfish_Init(ctx, keyL, PASSWD_LEN);
 }
 //-----------------------------------------------------------------------------
 inline
-void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+void Decrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8)
 {
-for (int i = 0; i < len8; i++)
-    DecodeString(dst + i * 8, src + i * 8, ctx);
+for (size_t i = 0; i < len8; i++)
+    DecodeString(static_cast<char *>(dst) + i * 8, static_cast<const char *>(src) + i * 8, ctx);
 }
 //-----------------------------------------------------------------------------
 inline
-void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+void Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8)
 {
-for (int i = 0; i < len8; i++)
-    EncodeString(dst + i * 8, src + i * 8, ctx);
+for (size_t i = 0; i < len8; i++)
+    EncodeString(static_cast<char *>(dst) + i * 8, static_cast<const char *>(src) + i * 8, ctx);
+}
+//-----------------------------------------------------------------------------
 }
index 08fd65128d835839cffbae170144d99014a06529..a13a11db2a0374b05d5e80ca6211e2de73c529e8 100644 (file)
@@ -51,8 +51,6 @@
 #include "stg/utime.h"
 #include "stg/logger.h"
 
-extern "C" PLUGIN * GetPlugin();
-
 #define IA_PROTO_VER    (6)
 
 //#define IA_DEBUG (1)
@@ -123,7 +121,7 @@ struct IA_USER {
           user(NULL),
           phase(),
           lastSendAlive(0),
-          rnd(random()),
+          rnd(static_cast<uint32_t>(random())),
           port(0),
           ctx(),
           messagesToSend(),
@@ -138,7 +136,7 @@ struct IA_USER {
     #ifdef IA_DEBUG
     aliveSent = false;
     #endif
-    };
+    }
 
     IA_USER(const IA_USER & u)
         : login(u.login),
@@ -156,7 +154,7 @@ struct IA_USER {
     aliveSent  = u.aliveSent;
     #endif
     memcpy(&ctx, &u.ctx, sizeof(BLOWFISH_CTX));
-    };
+    }
 
     IA_USER(const std::string & l,
             CONST_USER_PTR u,
@@ -166,7 +164,7 @@ struct IA_USER {
           user(u),
           phase(),
           lastSendAlive(0),
-          rnd(random()),
+          rnd(static_cast<uint32_t>(random())),
           port(p),
           ctx(),
           messagesToSend(),
@@ -204,13 +202,13 @@ private:
 class AUTH_IA_SETTINGS {
 public:
                     AUTH_IA_SETTINGS();
-    virtual         ~AUTH_IA_SETTINGS() {};
-    const std::string & GetStrError() const { return errorStr; };
+    virtual         ~AUTH_IA_SETTINGS() {}
+    const std::string & GetStrError() const { return errorStr; }
     int             ParseSettings(const MODULE_SETTINGS & s);
-    int             GetUserDelay() const { return userDelay; };
-    int             GetUserTimeout() const { return userTimeout; };
-    int             GetUserPort() const { return port; };
-    FREEMB          GetFreeMbShowType() const { return freeMbShowType; };
+    int             GetUserDelay() const { return userDelay; }
+    int             GetUserTimeout() const { return userTimeout; }
+    uint16_t        GetUserPort() const { return port; }
+    FREEMB          GetFreeMbShowType() const { return freeMbShowType; }
 
 private:
     int             userDelay;
@@ -252,7 +250,7 @@ public:
     bool                IsRunning() { return isRunningRunTimeouter || isRunningRun; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const { return "InetAccess authorization plugin v.1.4"; }
+    std::string         GetVersion() const { return "InetAccess authorization plugin v.1.4"; }
     uint16_t            GetStartPosition() const { return 30; }
     uint16_t            GetStopPosition() const { return 30; }
 
@@ -269,7 +267,7 @@ private:
     void                DelUser(USER_PTR u);
     int                 RecvData(char * buffer, int bufferSize);
     int                 CheckHeader(const char * buffer, int * protoVer);
-    int                 PacketProcessor(char * buff, int dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR user);
+    int                 PacketProcessor(void * buff, size_t dataLen, uint32_t sip, uint16_t sport, int protoVer, USER_PTR user);
 
     int                 Process_CONN_SYN_6(CONN_SYN_6 * connSyn, IA_USER * iaUser, uint32_t sip);
     int                 Process_CONN_SYN_7(CONN_SYN_7 * connSyn, IA_USER * iaUser, uint32_t sip);
@@ -290,15 +288,15 @@ private:
     int                 Process_DISCONN_ACK_6(DISCONN_ACK_6 * disconnSyn,
                                               IA_USER * iaUser,
                                               uint32_t sip,
-                                              map<uint32_t, IA_USER>::iterator it);
+                                              std::map<uint32_t, IA_USER>::iterator it);
     int                 Process_DISCONN_ACK_7(DISCONN_ACK_7 * disconnSyn,
                                               IA_USER * iaUser,
                                               uint32_t sip,
-                                              map<uint32_t, IA_USER>::iterator it);
+                                              std::map<uint32_t, IA_USER>::iterator it);
     int                 Process_DISCONN_ACK_8(DISCONN_ACK_8 * disconnSyn,
                                               IA_USER * iaUser,
                                               uint32_t sip,
-                                              map<uint32_t, IA_USER>::iterator it);
+                                              std::map<uint32_t, IA_USER>::iterator it);
 
     int                 Send_CONN_SYN_ACK_6(IA_USER * iaUser, uint32_t sip);
     int                 Send_CONN_SYN_ACK_7(IA_USER * iaUser, uint32_t sip);
@@ -312,14 +310,14 @@ private:
     int                 Send_DISCONN_SYN_ACK_7(IA_USER * iaUser, uint32_t sip);
     int                 Send_DISCONN_SYN_ACK_8(IA_USER * iaUser, uint32_t sip);
 
-    int                 Send_FIN_6(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it);
-    int                 Send_FIN_7(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it);
-    int                 Send_FIN_8(IA_USER * iaUser, uint32_t sip, map<uint32_t, IA_USER>::iterator it);
+    int                 Send_FIN_6(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it);
+    int                 Send_FIN_7(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it);
+    int                 Send_FIN_8(IA_USER * iaUser, uint32_t sip, std::map<uint32_t, IA_USER>::iterator it);
 
     int                 Timeouter();
 
     int                 SendError(uint32_t ip, uint16_t port, int protoVer, const std::string & text);
-    int                 Send(uint32_t ip, uint16_t port, const char * buffer, int len);
+    int                 Send(uint32_t ip, uint16_t port, const char * buffer, size_t len);
     int                 RealSendMessage6(const STG_MSG & msg, uint32_t ip, IA_USER & user);
     int                 RealSendMessage7(const STG_MSG & msg, uint32_t ip, IA_USER & user);
     int                 RealSendMessage8(const STG_MSG & msg, uint32_t ip, IA_USER & user);
index 85fd602bd18412e165f2ab3dce3143296a75f820..6ec8c3420e1dc3dd91d9f25bc848f2403c7e60f6 100644 (file)
@@ -56,7 +56,12 @@ fclose(f);
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<DEBUG_CAP> cdc;
+}
+
+extern "C" BASE_PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -74,7 +79,7 @@ RAW_PACKET MakeTCPPacket(const char * src,
                          uint16_t sport,
                          uint16_t dport,
                          uint16_t len);
-const string DEBUG_CAP::GetVersion() const
+std::string DEBUG_CAP::GetVersion() const
 {
 return "Debug_cap v.0.01a";
 }
@@ -90,7 +95,7 @@ void DEBUG_CAP::SetTraffcounter(TRAFFCOUNTER * tc)
 traffCnt = tc;
 }
 //-----------------------------------------------------------------------------
-const string & DEBUG_CAP::GetStrError() const
+const std::string & DEBUG_CAP::GetStrError() const
 {
 return errorStr;
 }
index d0aad7646f5177fb72128685dbcc0af828424c74..6bea457fbe79d4d4a41944aba10b5e933bda02ff 100644 (file)
@@ -36,9 +36,6 @@ $Author: faust $
 #include "stg/plugin.h"
 #include "stg/module_settings.h"
 
-using namespace std;
-extern "C" PLUGIN * GetPlugin();
-
 //-----------------------------------------------------------------------------
 struct iphdr_eth {
     uint8_t     ihl:4,
@@ -58,8 +55,8 @@ struct iphdr_eth {
 //-----------------------------------------------------------------------------
 class CAP_SETTINGS {
 public:
-    const string &  GetStrError() const { static string s; return s; }
-    int             ParseSettings(const MODULE_SETTINGS & s) { return 0; }
+    const std::string & GetStrError() const { static std::string s; return s; }
+    int                 ParseSettings(const MODULE_SETTINGS & s) { return 0; }
 };
 //-----------------------------------------------------------------------------
 class DEBUG_CAP :public PLUGIN
@@ -75,15 +72,15 @@ public:
     int                 Reload() { return 0; }
     int                 ParseSettings() { return 0; }
     bool                IsRunning();
-    const string &      GetStrError() const;
-    const string        GetVersion() const;
+    const std::string & GetStrError() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const;
     uint16_t            GetStopPosition() const;
 private:
     static void *       Run1(void *);
     static void *       Run2(void *);
     static void *       Run3(void *);
-    mutable string      errorStr;
+    mutable std::string errorStr;
     CAP_SETTINGS        capSettings;
     pthread_t           thread;
     bool                nonstop;
index 37af97206a4275b7b5d90b20ba7ff985f93ec26a..41ad9faed1ab4d769ba4359e11c3fac673cb642f 100644 (file)
@@ -45,7 +45,12 @@ $Author: faust $
 #include "stg/plugin_creator.h"
 #include "cap_nf.h"
 
+namespace
+{
 PLUGIN_CREATOR<NF_CAP> cnc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 
 PLUGIN * GetPlugin()
 {
@@ -261,10 +266,6 @@ sigfillset(&signalSet);
 pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
 
 NF_CAP * cap = static_cast<NF_CAP *>(c);
-uint8_t buf[BUF_SIZE];
-int res;
-struct sockaddr_in sin;
-socklen_t slen;
 cap->stoppedUDP = false;
 while (cap->runningUDP)
     {
@@ -274,8 +275,10 @@ while (cap->runningUDP)
         }
 
     // Data
-    slen = sizeof(sin);
-    res = recvfrom(cap->sockUDP, buf, BUF_SIZE, 0, reinterpret_cast<struct sockaddr *>(&sin), &slen);
+    struct sockaddr_in sin;
+    socklen_t slen = sizeof(sin);
+    uint8_t buf[BUF_SIZE];
+    ssize_t res = recvfrom(cap->sockUDP, buf, BUF_SIZE, 0, reinterpret_cast<struct sockaddr *>(&sin), &slen);
     if (!cap->runningUDP)
         break;
 
@@ -313,11 +316,6 @@ sigfillset(&signalSet);
 pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
 
 NF_CAP * cap = static_cast<NF_CAP *>(c);
-uint8_t buf[BUF_SIZE];
-int res;
-int sd;
-struct sockaddr_in sin;
-socklen_t slen;
 cap->stoppedTCP = false;
 while (cap->runningTCP)
     {
@@ -327,8 +325,9 @@ while (cap->runningTCP)
         }
 
     // Data
-    slen = sizeof(sin);
-    sd = accept(cap->sockTCP, reinterpret_cast<struct sockaddr *>(&sin), &slen);
+    struct sockaddr_in sin;
+    socklen_t slen = sizeof(sin);
+    int sd = accept(cap->sockTCP, reinterpret_cast<struct sockaddr *>(&sin), &slen);
     if (!cap->runningTCP)
         break;
 
@@ -345,7 +344,8 @@ while (cap->runningTCP)
         continue;
         }
 
-    res = recv(sd, buf, BUF_SIZE, MSG_WAITALL);
+    uint8_t buf[BUF_SIZE];
+    ssize_t res = recv(sd, buf, BUF_SIZE, MSG_WAITALL);
 
     if (res < 0)
         cap->logger("recv error: %s", strerror(errno));
@@ -373,7 +373,7 @@ cap->stoppedTCP = true;
 return NULL;
 }
 
-void NF_CAP::ParseBuffer(uint8_t * buf, int size)
+void NF_CAP::ParseBuffer(uint8_t * buf, ssize_t size)
 {
 RAW_PACKET ip;
 NF_HEADER * hdr = reinterpret_cast<NF_HEADER *>(buf);
index bf45cfea8b6dd64e56a0682621d8c9a5c8984184..23f7d7db2e18fc4f4f176581dce105c507b65949 100644 (file)
@@ -61,7 +61,7 @@ struct NF_HEADER {
     uint8_t  eType;     // Engine type
     uint8_t  eID;       // Engine ID
     uint16_t sInterval; // Sampling mode and interval
-} __attribute__ ((packed));
+};
 
 struct NF_DATA {
     uint32_t srcAddr;   // Flow source address
@@ -84,7 +84,7 @@ struct NF_DATA {
     uint8_t  srcMask;   // Source address mask in "slash" notation
     uint8_t  dstMask;   // Destination address mask in "slash" notation
     uint16_t pad2;      // 2-byte padding
-} __attribute__ ((packed));
+};
 
 #define BUF_SIZE (sizeof(NF_HEADER) + 30 * sizeof(NF_DATA))
 
@@ -102,7 +102,7 @@ public:
     int             Reload() { return 0; }
     bool            IsRunning() { return runningTCP || runningUDP; }
     const std::string & GetStrError() const { return errorStr; }
-    const std::string GetVersion() const { return VERSION; }
+    std::string     GetVersion() const { return VERSION; }
     uint16_t        GetStartPosition() const { return START_POS; }
     uint16_t        GetStopPosition() const { return STOP_POS; }
 
@@ -127,7 +127,7 @@ private:
 
     static void * RunUDP(void *);
     static void * RunTCP(void *);
-    void ParseBuffer(uint8_t *, int);
+    void ParseBuffer(uint8_t * buf, ssize_t size);
 
     bool OpenTCP();
     bool OpenUDP();
@@ -135,6 +135,4 @@ private:
     void CloseUDP() { close(sockUDP); }
 };
 
-extern "C" PLUGIN * GetPlugin();
-
 #endif
index 6bbfd7e8a079be25f104d5043221dd7bea1eaf59..96476d4e204027ee8f1d556f7dc54544a52489d8 100644 (file)
@@ -62,7 +62,12 @@ DIVERT_DATA cddiv;  //capture data
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<DIVERT_CAP> dcc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -73,7 +78,7 @@ return dcc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const std::string DIVERT_CAP::GetVersion() const
+std::string DIVERT_CAP::GetVersion() const
 {
 return "Divert_cap v.1.0";
 }
index 25fd29c24cba2079ed4d413b6e0930cafc74aad7..b34f832e5ea5b7706a762edb7ba92b38aeb3b84c 100644 (file)
@@ -41,8 +41,6 @@ class ADMINS;
 class TRAFFCOUNTER;
 class SETTINGS;
 
-extern "C" PLUGIN * GetPlugin();
-
 //-----------------------------------------------------------------------------
 class DIVERT_CAP : public PLUGIN {
 public:
@@ -59,7 +57,7 @@ public:
     void                SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     int                 ParseSettings();
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const { return 40; }
     uint16_t            GetStopPosition() const { return 40; }
 
index c217e22f3e502b5bc53f3d49324954a89cc1fb0e..5177330eaf5c8886696d0886605de6e566d0ae43 100644 (file)
@@ -60,7 +60,12 @@ $Author: faust $
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<BPF_CAP> bcc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -110,7 +115,7 @@ return iface[num];
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const std::string BPF_CAP::GetVersion() const
+std::string BPF_CAP::GetVersion() const
 {
 return "bpf_cap v.1.0";
 }
index 0a00cb045babf5bb7ca1324ffbe9ffada6dfde6d..76785ed293ebb55f2116cf2549920371cc21ed39 100644 (file)
@@ -37,8 +37,6 @@
 #include "stg/module_settings.h"
 #include "stg/logger.h"
 
-extern "C" PLUGIN * GetPlugin();
-
 #define BUFF_LEN (128)
 
 class TRAFFCOUNTER;
@@ -107,7 +105,7 @@ public:
     int                 ParseSettings();
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const { return 40; }
     uint16_t            GetStopPosition() const { return 40; }
 
index 6ed2e0680627c18ef6e5e3a426b393832f2a648f..a97fa8e7d07e5490569f7f9c73e14d6107776717 100644 (file)
@@ -56,7 +56,12 @@ $Date: 2009/12/13 13:45:13 $
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<ETHER_CAP> ecc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -67,7 +72,7 @@ return ecc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------        
-const std::string ETHER_CAP::GetVersion() const
+std::string ETHER_CAP::GetVersion() const
 {
 return "Ether_cap v.1.2";
 }
@@ -169,13 +174,11 @@ char        padding[4];
 char        padding1[8];
 };
 
-ETH_IP * ethIP;
-
 char ethip[sizeof(ETH_IP)];
 
 memset(&ethip, 0, sizeof(ETH_IP));
 
-ethIP = (ETH_IP *)&ethip;
+ETH_IP * ethIP = static_cast<ETH_IP *>(static_cast<void *>(&ethip));
 ethIP->rp.dataLen = -1;
 
 char * iface = NULL;
@@ -214,7 +217,7 @@ return 0;
 int ETHER_CAP::EthCapRead(void * buffer, int blen, char **)
 {
 struct sockaddr_ll  addr;
-int addrLen, res;
+int addrLen;
 
 if (!WaitPackets(capSock))
     {
@@ -223,9 +226,7 @@ if (!WaitPackets(capSock))
 
 addrLen = sizeof(addr);
 
-res = recvfrom(capSock, ((char*)buffer) + 2, blen, 0, (struct sockaddr *)&addr, (socklen_t*)&addrLen);
-
-if (res < 0)
+if (recvfrom(capSock, ((char*)buffer) + 2, blen, 0, (struct sockaddr *)&addr, (socklen_t*)&addrLen) < 0)
     {
     logger("recvfrom error: %s", strerror(errno));
     return ENODATA;
index c8de55226811a92f9ae71e3b3b52268bd47b6e4c..8dfb6c043e741dd7dbbb80ee2ff661becbfdce1c 100644 (file)
@@ -40,8 +40,6 @@ class ADMINS;
 class TRAFFCOUNTER;
 class SETTINGS;
 
-extern "C" PLUGIN * GetPlugin();
-
 class TRAFFCOUNTER;
 
 //-----------------------------------------------------------------------------
@@ -59,7 +57,7 @@ public:
 
     int                 ParseSettings() { return 0; }
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const { return 40; }
     uint16_t            GetStopPosition() const { return 40; }
 
index 9818378af382020faf221d4ef4eaaee32b6d3ffe..055993063d44b96d617f2b164ce89a11f9663aca 100644 (file)
@@ -40,7 +40,12 @@ extern "C"
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<IPQ_CAP> icc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -51,7 +56,7 @@ return icc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const std::string IPQ_CAP::GetVersion() const
+std::string IPQ_CAP::GetVersion() const
 {
 return "ipq_cap v.1.2";
 }
index 8b524d93ba564e878846570ce95a1753f9e21275..39ed5766401bac4228c48dea191f096f4082100a 100644 (file)
@@ -37,8 +37,6 @@ class ADMINS;
 class TRAFFCOUNTER;
 class SETTINGS;
 
-extern "C" PLUGIN * GetPlugin();
-
 //-----------------------------------------------------------------------------
 class IPQ_CAP :public PLUGIN {
 public:
@@ -54,7 +52,7 @@ public:
 
     int  ParseSettings() { return 0; }
     const std::string & GetStrError() const { return errorStr; }
-    const std::string GetVersion() const;
+    std::string GetVersion() const;
     uint16_t GetStartPosition() const { return 40; }
     uint16_t GetStopPosition() const { return 40; }
 
index 0016babe440f209812fd06499bfb32028a5e1ab8..ad9c032491adacc5fa30a2b4934f83982d5edb89 100644 (file)
@@ -223,14 +223,14 @@ void METHOD_ADMINS_GET::execute(xmlrpc_c::paramList const & paramList,
 std::string cookie = paramList.getString(0);
 paramList.verifyEnd(1);
 
-std::map<std::string, xmlrpc_c::value> structVal;
+std::map<std::string, xmlrpc_c::value> mainStructVal;
 std::vector<xmlrpc_c::value> retval;
 ADMIN_INFO adminInfo;
 
 if (config->GetAdminInfo(cookie, &adminInfo))
     {
-    structVal["result"] = xmlrpc_c::value_boolean(false);
-    *retvalPtr = xmlrpc_c::value_struct(structVal);
+    mainStructVal["result"] = xmlrpc_c::value_boolean(false);
+    *retvalPtr = xmlrpc_c::value_struct(mainStructVal);
     return;
     }
 
index c4684c1bdea4f535ef6543822376eff7f6df497d..895088dc3482dcbc9c3a21c26697bebb3eb70bbe 100644 (file)
@@ -28,12 +28,12 @@ un += " ";
 un += utsn.nodename;
 
 structVal["version"] = xmlrpc_c::value_string(SERVER_VERSION);
-structVal["tariff_num"] = xmlrpc_c::value_int(tariffs->Count());
+structVal["tariff_num"] = xmlrpc_c::value_int(static_cast<int>(tariffs->Count()));
 structVal["tariff"] = xmlrpc_c::value_int(2);
-structVal["users_num"] = xmlrpc_c::value_int(users->Count());
+structVal["users_num"] = xmlrpc_c::value_int(static_cast<int>(users->Count()));
 structVal["uname"] = xmlrpc_c::value_string(un);
 structVal["dir_num"] = xmlrpc_c::value_int(DIR_NUM);
-structVal["day_fee"] = xmlrpc_c::value_int(dayFee);
+structVal["day_fee"] = xmlrpc_c::value_int(static_cast<int>(dayFee));
 
 std::vector<xmlrpc_c::value> dirnameVal;
 
index e6a4df6f0773bb6cfd9d423da1431b76e3f7bf01..917961484cfe5014356e11fe5af8b272605dd052 100644 (file)
@@ -5,7 +5,7 @@
 #include "messages_methods.h"
 #include "rpcconfig.h"
 
-extern const volatile time_t stgTime;
+extern volatile time_t stgTime;
 
 //------------------------------------------------------------------------------
 
@@ -75,7 +75,7 @@ if ((it = msgInfo.find("text")) == msgInfo.end())
     }
 message.text = IconvString(xmlrpc_c::value_string(it->second), "UTF-8", "CP1251");
 
-message.header.creationTime = stgTime;
+message.header.creationTime = static_cast<int>(stgTime);
 message.header.lastSendTime = 0;
 
 std::vector<xmlrpc_c::value>::iterator lit;
index 86072bcf625e88d566d0cf0996c77394d9993694..e84e9a0e1af96c8e9a23acbcef97716e977bbe27 100644 (file)
 #include "admins_methods.h"
 #include "messages_methods.h"
 
+namespace
+{
 PLUGIN_CREATOR<RPC_CONFIG> rpcc;
+}
+
+extern "C" PLUGIN * GetPlugin();
 
 RPC_CONFIG_SETTINGS::RPC_CONFIG_SETTINGS()
     : errorStr(),
@@ -36,11 +41,9 @@ RPC_CONFIG_SETTINGS::RPC_CONFIG_SETTINGS()
 
 int RPC_CONFIG_SETTINGS::ParseSettings(const MODULE_SETTINGS & s)
 {
-int p;
 PARAM_VALUE pv;
-std::vector<PARAM_VALUE>::const_iterator pvi;
-
 pv.param = "Port";
+std::vector<PARAM_VALUE>::const_iterator pvi;
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
 if (pvi == s.moduleParams.end())
     {
@@ -48,13 +51,14 @@ if (pvi == s.moduleParams.end())
     printfd(__FILE__, "Parameter 'Port' not found\n");
     return -1;
     }
+int p;
 if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     {
     errorStr = "Cannot parse parameter \'Port\': " + errorStr;
     printfd(__FILE__, "Cannot parse parameter 'Port'\n");
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 
 pv.param = "CookieTimeout";
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -117,12 +121,12 @@ if (ret)
 return ret;
 }
 
-void RPC_CONFIG::SetStgSettings(const SETTINGS * settings)
+void RPC_CONFIG::SetStgSettings(const SETTINGS * s)
 {
-    dayFee = settings->GetDayFee();
+    dayFee = s->GetDayFee();
     dirNames.erase(dirNames.begin(), dirNames.end());
     for (size_t i = 0; i < DIR_NUM; ++i) {
-        dirNames.push_back(settings->GetDirName(i));
+        dirNames.push_back(s->GetDirName(i));
     }
 }
 
index a58773a14022af6086f1dba4d90e99f08bd7b291..72a14f21e028238c558657b2e70c8932aa81e4fc 100644 (file)
@@ -20,8 +20,6 @@
 
 #define RPC_CONFIG_VERSION "Stargazer RPC v. 0.2"
 
-extern "C" PLUGIN * GetPlugin();
-
 class ADMINS;
 class TARIFFS;
 class USERS;
@@ -39,7 +37,7 @@ public:
 
 private:
     std::string  errorStr;
-    int          port;
+    uint16_t     port;
     double       cookieTimeout;
 };
 
@@ -76,7 +74,7 @@ public:
     bool                IsRunning() { return running && !stopped; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const { return RPC_CONFIG_VERSION; }
+    std::string         GetVersion() const { return RPC_CONFIG_VERSION; }
     uint16_t            GetStartPosition() const { return 20; }
     uint16_t            GetStopPosition() const { return 20; }
 
index e2cfb13a1be80ee2f8916e62c10b56d9b6694bea..665a04f4af96f9783424a859a005999c743a00f3 100644 (file)
@@ -74,7 +74,7 @@ structVal["group"] = xmlrpc_c::value_string(IconvString(ptr->GetProperty().group
 structVal["status"] = xmlrpc_c::value_boolean(ptr->GetConnected());
 structVal["aonline"] = xmlrpc_c::value_boolean(ptr->GetProperty().alwaysOnline.Get());
 structVal["currip"] = xmlrpc_c::value_string(inet_ntostring(ptr->GetCurrIP()));
-structVal["pingtime"] = xmlrpc_c::value_int(ptr->GetPingTime());
+structVal["pingtime"] = xmlrpc_c::value_int(static_cast<int>(ptr->GetPingTime()));
 structVal["ips"] = xmlrpc_c::value_string(ptr->GetProperty().ips.Get().GetIpStr());
 
 std::map<std::string, xmlrpc_c::value> traffInfo;
@@ -116,9 +116,9 @@ structVal["down"] = xmlrpc_c::value_boolean(ptr->GetProperty().disabled.Get());
 structVal["disableddetailstat"] = xmlrpc_c::value_boolean(ptr->GetProperty().disabledDetailStat.Get());
 structVal["passive"] = xmlrpc_c::value_boolean(ptr->GetProperty().passive.Get());
 structVal["lastcash"] = xmlrpc_c::value_double(ptr->GetProperty().lastCashAdd.Get());
-structVal["lasttimecash"] = xmlrpc_c::value_int(ptr->GetProperty().lastCashAddTime.Get());
-structVal["lastactivitytime"] = xmlrpc_c::value_int(ptr->GetProperty().lastActivityTime.Get());
-structVal["creditexpire"] = xmlrpc_c::value_int(ptr->GetProperty().creditExpire.Get());
+structVal["lasttimecash"] = xmlrpc_c::value_int(static_cast<int>(ptr->GetProperty().lastCashAddTime.Get()));
+structVal["lastactivitytime"] = xmlrpc_c::value_int(static_cast<int>(ptr->GetProperty().lastActivityTime.Get()));
+structVal["creditexpire"] = xmlrpc_c::value_int(static_cast<int>(ptr->GetProperty().creditExpire.Get()));
 
 *info = xmlrpc_c::value_struct(structVal);
 }
@@ -335,7 +335,7 @@ if ((it = structVal.find("note")) != structVal.end())
 
 if ((it = structVal.find("userdata")) != structVal.end())
     {
-    std::vector<USER_PROPERTY_LOGGED<string> *> userdata;
+    std::vector<USER_PROPERTY_LOGGED<std::string> *> userdata;
     userdata.push_back(ptr->GetProperty().userdata0.GetPointer());
     userdata.push_back(ptr->GetProperty().userdata1.GetPointer());
     userdata.push_back(ptr->GetProperty().userdata2.GetPointer());
index 130051be91d43a8f26871506e4098ed5deff8ec9..5b39cf1e84aff4f00ec3ac9016b7629fce753638 100644 (file)
@@ -404,14 +404,13 @@ void METHOD_GET_ONLINE_IPS::execute(xmlrpc_c::paramList const & paramList,
                                     xmlrpc_c::value *   const   retvalPtr)
 {
 std::string cookie = paramList.getString(0);
-std::vector<xmlrpc_c::value> subnetsStr = paramList.getArray(1);
+typedef std::vector<xmlrpc_c::value> ValueVector;
+ValueVector subnetsStr = paramList.getArray(1);
 paramList.verifyEnd(2);
 
 std::vector<IP_MASK> subnets;
 
-std::vector<xmlrpc_c::value>::iterator it;
-
-for (it = subnetsStr.begin(); it != subnetsStr.end(); ++it)
+for (ValueVector::const_iterator it(subnetsStr.begin()); it != subnetsStr.end(); ++it)
     {
     IP_MASK ipm;
     if (ParseNet(xmlrpc_c::value_string(*it), ipm))
@@ -434,7 +433,7 @@ if (config->GetAdminInfo(cookie, &adminInfo))
     return;
     }
 
-std::vector<xmlrpc_c::value> ips;
+ValueVector ips;
 
 USER_PTR u;
 
@@ -457,8 +456,7 @@ while (1)
         {
         uint32_t ip = u->GetCurrIP();
 
-        std::vector<IP_MASK>::iterator it;
-        for (it = subnets.begin(); it != subnets.end(); ++it)
+        for (std::vector<IP_MASK>::const_iterator it(subnets.begin()); it != subnets.end(); ++it)
             {
             if ((it->ip & it->mask) == (ip & it->mask))
                 {
index 7ca37b49fb95a9c75302465d5658cdb31c26cf84..22facc612adf4b55a9b02f22d3f3ac8d20a323c2 100644 (file)
@@ -158,10 +158,9 @@ XML_ParserFree(xmlParser);
 //-----------------------------------------------------------------------------
 int CONFIGPROTO::ParseCommand()
 {
-list<string>::iterator n;
+std::list<std::string>::iterator n;
 int done = 0;
 char str[9];
-int len;
 
 if (requestList.empty())
     return 0;
@@ -179,14 +178,14 @@ while(nonstop)
     {
     strncpy(str, (*n).c_str(), 8);
     str[8] = 0;
-    len = strlen(str);
+    size_t len = strlen(str);
 
     ++n;
     if (n == requestList.end())
         done = 1;
     --n;
 
-    if (XML_Parse(xmlParser, (*n).c_str(), len, done) == XML_STATUS_ERROR)
+    if (XML_Parse(xmlParser, (*n).c_str(), static_cast<int>(len), done) == XML_STATUS_ERROR)
         {
         logger("Invalid configuration request");
         printfd(__FILE__, "Parse error at line %d:\n%s\n",
index 0de2b847438fe352e186bf574f30b31ddbd9c4ef..b8b01f024da3f1f0d8daf32ce7ea50231678ec13 100644 (file)
@@ -121,7 +121,7 @@ private:
     ADMINS *                    admins;
 
     BASE_PARSER *               currParser;
-    vector<BASE_PARSER *>       dataParser;
+    std::vector<BASE_PARSER *>  dataParser;
 
     XML_Parser                  xmlParser;
 
index bfe2f7bca7facab3d28b41f60cc4ca7778978084..1f7757d22a99e68e013cba489092061cb9b43e55 100644 (file)
@@ -64,13 +64,13 @@ answerList->push_back("<ServerInfo>");
 sprintf(s, "<version value=\"%s\"/>", SERVER_VERSION);
 answerList->push_back(s);
 
-sprintf(s, "<tariff_num value=\"%llu\"/>", (unsigned long long)tariffs->Count());
+sprintf(s, "<tariff_num value=\"%llu\"/>", static_cast<unsigned long long>(tariffs->Count()));
 answerList->push_back(s);
 
 sprintf(s, "<tariff value=\"%d\"/>", 2);
 answerList->push_back(s);
 
-sprintf(s, "<users_num value=\"%llu\"/>", (unsigned long long)users->Count());
+sprintf(s, "<users_num value=\"%llu\"/>", static_cast<unsigned long long>(users->Count()));
 answerList->push_back(s);
 
 sprintf(s, "<uname value=\"%s\"/>", un);
@@ -84,7 +84,7 @@ answerList->push_back(s);
 
 for (int i = 0; i< DIR_NUM; i++)
     {
-    string dn2e;
+    std::string dn2e;
     Encode12str(dn2e, settings->GetDirName(i));
     sprintf(s, "<dir_name_%d value=\"%s\"/>", i, dn2e.c_str());
     answerList->push_back(s);
@@ -124,8 +124,8 @@ return -1;
 //-----------------------------------------------------------------------------
 void PARSER_GET_USER::CreateAnswer()
 {
-string s;
-string enc;
+std::string s;
+std::string enc;
 
 USER_PTR u;
 
@@ -190,7 +190,7 @@ s = "<email value=\"" + enc + "\" />";
 answerList->push_back(s);
 
 
-vector<USER_PROPERTY_LOGGED<string> *> userdata;
+std::vector<USER_PROPERTY_LOGGED<std::string> *> userdata;
 userdata.push_back(u->GetProperty().userdata0.GetPointer());
 userdata.push_back(u->GetProperty().userdata1.GetPointer());
 userdata.push_back(u->GetProperty().userdata2.GetPointer());
@@ -202,7 +202,7 @@ userdata.push_back(u->GetProperty().userdata7.GetPointer());
 userdata.push_back(u->GetProperty().userdata8.GetPointer());
 userdata.push_back(u->GetProperty().userdata9.GetPointer());
 
-string tmpI;
+std::string tmpI;
 for (unsigned i = 0; i < userdata.size(); i++)
     {
     Encode12str(enc, userdata[i]->Get());
@@ -230,7 +230,7 @@ answerList->push_back(s);
 strprintf(&s, "<PingTime value=\"%lu\" />", u->GetPingTime());
 answerList->push_back(s);
 
-stringstream sstr;
+std::ostringstream sstr;
 sstr << u->GetProperty().ips.Get();
 strprintf(&s, "<ip value=\"%s\" />", sstr.str().c_str());
 answerList->push_back(s);
@@ -246,7 +246,7 @@ upload = u->GetProperty().up.Get();
 
 for (int j = 0; j < DIR_NUM; j++)
     {
-    string s;
+    std::string s;
     x2str(upload[j], s);
     sprintf(st, " MU%d=\"%s\"", j, s.c_str());
     strcat(ss, st);
@@ -342,16 +342,16 @@ void PARSER_GET_USERS::CreateAnswer()
 {
 answerList->erase(answerList->begin(), answerList->end());
 
-string s;
-string userStart;
-string traffStart;
-string traffMiddle;
-string traffFinish;
-string middle;
-string userFinish;
+std::string s;
+std::string userStart;
+std::string traffStart;
+std::string traffMiddle;
+std::string traffFinish;
+std::string middle;
+std::string userFinish;
 
 
-string enc;
+std::string enc;
 
 USER_PTR u;
 
@@ -362,7 +362,7 @@ if (!h)
     users->CloseSearch(h);
     return;
     }
-string updateTime;
+std::string updateTime;
 x2str(time(NULL), updateTime);
 
 if (lastUpdateFound)
@@ -458,7 +458,7 @@ while (1)
         middle += s;
         }
 
-    vector<USER_PROPERTY_LOGGED<string> *> userdata;
+    std::vector<USER_PROPERTY_LOGGED<std::string> *> userdata;
     userdata.push_back(u->GetProperty().userdata0.GetPointer());
     userdata.push_back(u->GetProperty().userdata1.GetPointer());
     userdata.push_back(u->GetProperty().userdata2.GetPointer());
@@ -470,7 +470,7 @@ while (1)
     userdata.push_back(u->GetProperty().userdata8.GetPointer());
     userdata.push_back(u->GetProperty().userdata9.GetPointer());
 
-    string tmpI;
+    std::string tmpI;
     for (unsigned i = 0; i < userdata.size(); i++)
         {
         if (userdata[i]->ModificationTime() > lastUserUpdateTime)
@@ -522,7 +522,7 @@ while (1)
 
     if (u->GetProperty().ips.ModificationTime() > lastUserUpdateTime)
         {
-        stringstream sstr;
+        std::ostringstream sstr;
         sstr << u->GetProperty().ips.Get();
         strprintf(&s, "<ip value=\"%s\" />", sstr.str().c_str());
         middle += s;
@@ -540,7 +540,7 @@ while (1)
         {
         for (int j = 0; j < DIR_NUM; j++)
             {
-            string s;
+            std::string s;
             x2str(upload[j], s);
             sprintf(st, " MU%d=\"%s\" ", j, s.c_str());
             traffMiddle += st;
@@ -742,11 +742,11 @@ ucr = new USER_CONF_RES;
 
 upr = new RESETABLE<uint64_t>[DIR_NUM];
 downr = new RESETABLE<uint64_t>[DIR_NUM];
-};
+}
 //-----------------------------------------------------------------------------
-string PARSER_CHG_USER::EncChar2String(const char * strEnc)
+std::string PARSER_CHG_USER::EncChar2String(const char * strEnc)
 {
-string str;
+std::string str;
 Decode21str(str, strEnc);
 return str;
 }
@@ -917,7 +917,7 @@ else
         int dir;
         DIR_TRAFF dtu;
         DIR_TRAFF dtd;
-        unsigned long long t = 0;
+        uint64_t t = 0;
         while (attr[j])
             {
             dir = attr[j][2] - '0';
@@ -1074,7 +1074,7 @@ if (!ucr->note.res_empty())
     if (!u->GetProperty().note.Set(ucr->note.const_data(), currAdmin, login, store))
         res = -1;
 
-vector<USER_PROPERTY_LOGGED<string> *> userdata;
+std::vector<USER_PROPERTY_LOGGED<std::string> *> userdata;
 userdata.push_back(u->GetProperty().userdata0.GetPointer());
 userdata.push_back(u->GetProperty().userdata1.GetPointer());
 userdata.push_back(u->GetProperty().userdata2.GetPointer());
@@ -1288,7 +1288,7 @@ if (strcasecmp(el, "Message") == 0)
             printfd(__FILE__, "User not found. %s\n", logins[i].c_str());
             continue;
             }
-        msg.header.creationTime = stgTime;
+        msg.header.creationTime = static_cast<unsigned int>(stgTime);
         u->AddMessage(&msg);
         result = res_ok;
         }
index 5bc68d2adf36ace7769e4e167de59a708239589a..9d87f30047bc434e8d6688451cb713fd2ef990b4 100644 (file)
@@ -37,7 +37,7 @@ if (!priv->adminChg)
     return;
     }
 
-string s;
+std::string s;
 //answerList->clear();
 answerList->erase(answerList->begin(), answerList->end());
 
@@ -99,7 +99,7 @@ if (admins->Del(adminToDel, currAdmin) == 0)
     }
 else
     {
-    string s;
+    std::string s;
     strprintf(&s, "<DelAdmin Result=\"Error. %s\"/>", admins->GetStrError().c_str());
     answerList->push_back(s);
     }
@@ -155,7 +155,7 @@ if (admins->Add(adminToAdd, currAdmin) == 0)
     }
 else
     {
-    string s;
+    std::string s;
     strprintf(&s, "<AddAdmin Result=\"Error. %s\"/>", admins->GetStrError().c_str());
     answerList->push_back(s);
     }
@@ -242,7 +242,7 @@ if (!login.res_empty())
 
     if (admins->Change(conf, currAdmin) != 0)
         {
-        string s;
+        std::string s;
         strprintf(&s, "<ChgAdmin Result = \"%s\"/>", admins->GetStrError().c_str());
         answerList->push_back(s);
         }
index 9bac0294bbc171d731ea169813cea5c14e58b966..7be1af9645a0107ff39a0ec839e45780f1817b08 100644 (file)
@@ -29,7 +29,7 @@ return -1;
 //-----------------------------------------------------------------------------
 void PARSER_GET_TARIFFS::CreateAnswer()
 {
-string s;
+std::string s;
 char vs[100];
 int hd, hn, md, mn;
 
@@ -186,7 +186,7 @@ if (tariffs->Add(tariffToAdd, currAdmin) == 0)
     }
 else
     {
-    string s;
+    std::string s;
     strprintf(&s, "<AddTariff Result=\"Error. %s\"/>", tariffs->GetStrError().c_str());
     answerList->push_back(s);
     }
@@ -222,7 +222,7 @@ answerList->erase(answerList->begin(), answerList->end());
 
 if (users->TariffInUse(tariffToDel))
     {
-    string s;
+    std::string s;
     strprintf(&s, "<DelTariff Result=\"Error. Tariff \'%s\' cannot be deleted. Tariff in use.\"/>", tariffToDel.c_str());
     answerList->push_back(s);
     return;
@@ -234,7 +234,7 @@ if (tariffs->Del(tariffToDel, currAdmin) == 0)
     }
 else
     {
-    string s;
+    std::string s;
     strprintf(&s, "<DelTariff Result=\"Error. %s\"/>", tariffs->GetStrError().c_str());
     answerList->push_back(s);
     }
@@ -244,7 +244,7 @@ else
 //  CHG TARIFF
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const string & s, int * params)
+int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const std::string & s, int * params)
 {
 char * str = new char[s.size() + 1];
 char * p;
@@ -272,7 +272,7 @@ delete[] str;
 return 0;
 }
 //-----------------------------------------------------------------------------
-int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const string & s, double * params)
+int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const std::string & s, double * params)
 {
 char * str = new char[s.size() + 1];
 char * p;
@@ -317,7 +317,7 @@ if (depth == 1)
     }
 else
     {
-    string s;
+    std::string s;
 
     if (strcasecmp(el, "PriceDayA") == 0)
         {
@@ -485,7 +485,7 @@ if (!td.tariffConf.name.data().empty())
         }
     else
         {
-        string s;
+        std::string s;
         strprintf(&s, "<SetTariff Result=\"Change tariff error! %s\"/>", tariffs->GetStrError().c_str());
         answerList->push_back(s);
         return;
index a4915e397cc950c4a1e8f095f64f998a7db06d46..9b448f6cede881e7c7df4fc6275a9f6b3fb0d798 100644 (file)
@@ -57,7 +57,7 @@ enum
 //-----------------------------------------------------------------------------
 int CONFIGPROTO::Prepare()
 {
-list<string> ansList; //óÀÄÁ ÂÕÄÅÔ ÐÏÍÅÝÅΠÏÔ×ÅÔ ÄÌÑ ÍÅÎÅÄÖÅÒÁ ËÌÉÅÎÔÏ×
+std::list<std::string> ansList; //óÀÄÁ ÂÕÄÅÔ ÐÏÍÅÝÅΠÏÔ×ÅÔ ÄÌÑ ÍÅÎÅÄÖÅÒÁ ËÌÉÅÎÔÏ×
 int res;
 struct sockaddr_in listenAddr;
 
@@ -86,7 +86,7 @@ int lng = 1;
 
 if (0 != setsockopt(listenSocket, SOL_SOCKET, SO_REUSEADDR, &lng, 4))
     {
-    errorStr = "Setsockopt failed. " + string(strerror(errno));
+    errorStr = "Setsockopt failed. " + std::string(strerror(errno));
     logger("setsockopt error: %s", strerror(errno));
     return -1;
     }
@@ -253,7 +253,7 @@ while (pos < stgHdrLen)
         SendError("Bad request");
         return -1;
         }
-    int ret = recv(sock, &buf[pos], stgHdrLen - pos, 0);
+    ssize_t ret = recv(sock, &buf[pos], static_cast<int>(stgHdrLen) - static_cast<int>(pos), 0);
     if (ret <= 0)
         {
        if (ret < 0)
@@ -314,7 +314,7 @@ while (pos < ADM_LOGIN_LEN) {
         return ENODATA;
         }
 
-    int ret = recv(sock, &login[pos], ADM_LOGIN_LEN - pos, 0);
+    ssize_t ret = recv(sock, &login[pos], ADM_LOGIN_LEN - static_cast<int>(pos), 0);
 
     if (ret <= 0)
         {
@@ -364,7 +364,7 @@ while (pos < ADM_LOGIN_LEN)
         return ENODATA;
         }
 
-    int ret = recv(sock, &loginS[pos], ADM_LOGIN_LEN - pos, 0);
+    ssize_t ret = recv(sock, &loginS[pos], ADM_LOGIN_LEN - static_cast<int>(pos), 0);
 
     if (ret <= 0)
         {
@@ -452,7 +452,7 @@ while (1)
             break;
             }
 
-        int ret = recv(sock, &bufferS[pos], sizeof(bufferS) - pos, 0);
+        ssize_t ret = recv(sock, &bufferS[pos], sizeof(bufferS) - static_cast<int>(pos), 0);
         if (ret < 0)
             {
             // Network error
@@ -486,12 +486,12 @@ while (1)
         return SendDataAnswer(sock);
         }
     }
-return 0;
+//return 0;
 }
 //-----------------------------------------------------------------------------
 int CONFIGPROTO::SendDataAnswer(int sock)
 {
-list<string>::iterator li;
+std::list<std::string>::iterator li;
 li = answerList.begin();
 
 BLOWFISH_CTX ctx;
@@ -514,7 +514,7 @@ while (li != answerList.end())
         if (n % 8 == 0)
             {
             EncodeString(buffS, buff, &ctx);
-            int ret = send(sock, buffS, 8, 0);
+            int ret = static_cast<int>(send(sock, buffS, 8, 0));
             if (ret < 0)
                 {
                 return -1;
@@ -534,7 +534,7 @@ EncodeString(buffS, buff, &ctx);
 
 answerList.clear();
 
-return send(sock, buffS, 8, 0);
+return static_cast<int>(send(sock, buffS, 8, 0));
 }
 //-----------------------------------------------------------------------------
 void CONFIGPROTO::SendError(const char * text)
index e3199047186e944d750571343c028b6031e25609..06381144944a8d04abbcb53d2fab44a8cdadcb99 100644 (file)
@@ -12,7 +12,7 @@
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-PLUGIN_CREATOR<STG_CONFIG> stgc;
+static PLUGIN_CREATOR<STG_CONFIG> stgc;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -20,7 +20,7 @@ int STG_CONFIG_SETTINGS::ParseSettings(const MODULE_SETTINGS & s)
 {
 int p;
 PARAM_VALUE pv;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 ///////////////////////////
 pv.param = "Port";
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -36,7 +36,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     printfd(__FILE__, "%s\n", errorStr.c_str());
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 
 return 0;
 }
@@ -50,7 +50,7 @@ return stgc.GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-const std::string STG_CONFIG::GetVersion() const
+std::string STG_CONFIG::GetVersion() const
 {
 return "Stg configurator v.0.08";
 }
index 7e3ae69b9ab55b5b5d5feb5af421be8852a377d2..8fa4dc7691abd3584242c306f403c451b9e3f131 100644 (file)
@@ -23,13 +23,13 @@ public:
     uint16_t        GetPort() const { return port; }
 private:
     std::string errorStr;
-    int     port;
+    uint16_t    port;
 };
 //-----------------------------------------------------------------------------
 class STG_CONFIG :public PLUGIN {
 public:
     STG_CONFIG();
-    virtual ~STG_CONFIG(){};
+    virtual ~STG_CONFIG(){}
 
     void                SetUsers(USERS * u) { users = u; }
     void                SetTariffs(TARIFFS * t) { tariffs = t; }
@@ -45,7 +45,7 @@ public:
     bool                IsRunning() { return isRunning; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const;
+    std::string         GetVersion() const;
     uint16_t            GetStartPosition() const { return 20; }
     uint16_t            GetStopPosition() const { return 20; }
 
index 7f47b7cf8464906ee754cc9c3977ca054ca100a8..7c4050abb035d9f55108ed306b02d5b51e869a3d 100644 (file)
 #include "stg/plugin_creator.h"
 #include "ping.h"
 
-PLUGIN_CREATOR<PING> pc;
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-PLUGIN * GetPlugin()
+namespace
 {
-return pc.GetPlugin();
-}
+PLUGIN_CREATOR<PING> pc;
+
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // ëÌÁÓÓ ÄÌÑ ÐÏÉÓËÁ ÀÚÅÒÁ × ÓÐÉÓËÅ ÎÏÔÉÆÉËÁÔÏÒÏ×
 template <typename varType>
-class IS_CONTAINS_USER: public binary_function<varType, USER_PTR, bool>
+class IS_CONTAINS_USER: public std::binary_function<varType, USER_PTR, bool>
 {
 public:
     IS_CONTAINS_USER(const USER_PTR & u) : user(u) {}
     bool operator()(varType notifier) const
         {
         return notifier.GetUser() == user;
-        };
+        }
 private:
     const USER_PTR & user;
 };
+}
+
+extern "C" PLUGIN * GetPlugin();
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+PLUGIN * GetPlugin()
+{
+return pc.GetPlugin();
+}
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 int PING_SETTINGS::ParseSettings(const MODULE_SETTINGS & s)
 {
 PARAM_VALUE pv;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 
 pv.param = "PingDelay";
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -138,7 +144,7 @@ for (int i = 0; i < 25; i++)
 users->DelNotifierUserAdd(&onAddUserNotifier);
 users->DelNotifierUserDel(&onDelUserNotifier);
 
-list<USER_PTR>::iterator users_iter;
+std::list<USER_PTR>::iterator users_iter;
 users_iter = usersList.begin();
 while (users_iter != usersList.end())
     {
@@ -170,7 +176,7 @@ long delay = (10000000 * ping->pingSettings.GetPingDelay()) / 3 + 50000000;
  
 while (ping->nonstop)
     {
-    list<USER_PTR>::iterator iter = ping->usersList.begin();
+    std::list<USER_PTR>::iterator iter = ping->usersList.begin();
         {
         STG_LOCKER lock(&ping->mutex, __FILE__, __LINE__);
         while (iter != ping->usersList.end())
@@ -233,8 +239,8 @@ void PING::UnSetUserNotifiers(USER_PTR u)
 IS_CONTAINS_USER<CHG_CURRIP_NOTIFIER_PING> IsContainsUserCurrIP(u);
 IS_CONTAINS_USER<CHG_IPS_NOTIFIER_PING> IsContainsUserIP(u);
 
-list<CHG_CURRIP_NOTIFIER_PING>::iterator currIPter;
-list<CHG_IPS_NOTIFIER_PING>::iterator IPIter;
+std::list<CHG_CURRIP_NOTIFIER_PING>::iterator currIPter;
+std::list<CHG_IPS_NOTIFIER_PING>::iterator IPIter;
 
 currIPter = find_if(ChgCurrIPNotifierList.begin(),
                     ChgCurrIPNotifierList.end(),
@@ -303,7 +309,7 @@ STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 UnSetUserNotifiers(u);
 
-list<USER_PTR>::iterator users_iter;
+std::list<USER_PTR>::iterator users_iter;
 users_iter = usersList.begin();
 
 while (users_iter != usersList.end())
index 421b83da5ae3232115be566fdb834dfda3546008..29e4974ef4be2779c286ff36dfd82dcc2661e328 100644 (file)
@@ -116,7 +116,7 @@ public:
     bool IsRunning();
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string GetVersion() const { return "Pinger v.1.01"; }
+    std::string GetVersion() const { return "Pinger v.1.01"; }
     uint16_t GetStartPosition() const { return 10; }
     uint16_t GetStopPosition() const { return 10; }
 
index 1c060b7f529be26743fafcee0cf20abb59e29742..90ec1891ea7c0602f9dfa24b9f568a259cc3afe3 100644 (file)
 #include "stg/plugin_creator.h"
 #include "radius.h"
 
-extern volatile const time_t stgTime;
-
-void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password);
-void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
-void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8);
+extern volatile time_t stgTime;
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<RADIUS> radc;
+
+void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password);
+void Decrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, unsigned long len8);
+void Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, unsigned long len8);
+}
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -89,7 +93,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     printfd(__FILE__, "Cannot parse parameter 'Port'\n");
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 ///////////////////////////
 pv.param = "Password";
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -292,7 +296,7 @@ int RADIUS::RecvData(RAD_PACKET * packet, struct sockaddr_in * outerAddr)
 {
     int8_t buf[RAD_MAX_PACKET_LEN];
     socklen_t outerAddrLen = sizeof(struct sockaddr_in);
-    int dataLen = recvfrom(sock, buf, RAD_MAX_PACKET_LEN, 0, reinterpret_cast<struct sockaddr *>(outerAddr), &outerAddrLen);
+    ssize_t dataLen = recvfrom(sock, buf, RAD_MAX_PACKET_LEN, 0, reinterpret_cast<struct sockaddr *>(outerAddr), &outerAddrLen);
     if (dataLen < 0)
        {
        logger("recvfrom error: %s", strerror(errno));
@@ -312,13 +316,13 @@ int RADIUS::RecvData(RAD_PACKET * packet, struct sockaddr_in * outerAddr)
     return 0;
 }
 //-----------------------------------------------------------------------------
-int RADIUS::Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr)
+ssize_t RADIUS::Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr)
 {
 size_t len = sizeof(RAD_PACKET);
 char buf[1032];
 
 Encrypt(&ctx, buf, (char *)&packet, len / 8);
-int res = sendto(sock, buf, len, 0, reinterpret_cast<struct sockaddr *>(outerAddr), sizeof(struct sockaddr_in));
+ssize_t res = sendto(sock, buf, len, 0, reinterpret_cast<struct sockaddr *>(outerAddr), sizeof(struct sockaddr_in));
 if (res < 0)
     logger("sendto error: %s", strerror(errno));
 return res;
@@ -351,7 +355,6 @@ switch (packet->packetType)
         printfd(__FILE__, "RADIUS::ProcessData Unsupported packet type: %d\n", packet->packetType);
         return -1;
     };
-return 0;
 }
 //-----------------------------------------------------------------------------
 int RADIUS::ProcessAutzPacket(RAD_PACKET * packet)
@@ -568,6 +571,9 @@ bool RADIUS::IsAllowedService(const std::string & svc) const
 return CanAuthService(svc) || CanAcctService(svc);
 }
 //-----------------------------------------------------------------------------
+namespace
+{
+
 inline
 void InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password)
 {
@@ -578,23 +584,25 @@ Blowfish_Init(ctx, keyL, RAD_PASSWORD_LEN);
 }
 //-----------------------------------------------------------------------------
 inline
-void Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+void Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, unsigned long len8)
 {
 // len8 - длина в 8-ми байтовых блоках
 if (dst != src)
     memcpy(dst, src, len8 * 8);
 
-for (int i = 0; i < len8; i++)
-    Blowfish_Encrypt(ctx, (uint32_t *)(dst + i*8), (uint32_t *)(dst + i*8 + 4));
+for (size_t i = 0; i < len8; i++)
+    Blowfish_Encrypt(ctx, static_cast<uint32_t *>(dst) + i * 2, static_cast<uint32_t *>(dst) + i * 2 + 1);
 }
 //-----------------------------------------------------------------------------
 inline
-void Decrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, int len8)
+void Decrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, unsigned long len8)
 {
 // len8 - длина в 8-ми байтовых блоках
 if (dst != src)
     memcpy(dst, src, len8 * 8);
 
-for (int i = 0; i < len8; i++)
-    Blowfish_Decrypt(ctx, (uint32_t *)(dst + i*8), (uint32_t *)(dst + i*8 + 4));
+for (size_t i = 0; i < len8; i++)
+    Blowfish_Decrypt(ctx, static_cast<uint32_t *>(dst) + i * 2, static_cast<uint32_t *>(dst) + i * 2 + 1);
 }
+
+} // namespace anonymous
index 8281b1ae2f9e80e33b495749942665c5c38ab6c6..c424c007dcefe0958bc3cebef0cc2c2b9f64dcd4 100644 (file)
@@ -62,12 +62,12 @@ public:
           authServices(), acctServices()
     {}
     virtual ~RAD_SETTINGS() {}
-    const string & GetStrError() const { return errorStr; }
+    const std::string & GetStrError() const { return errorStr; }
     int ParseSettings(const MODULE_SETTINGS & s);
     uint16_t GetPort() const { return port; }
     const std::string & GetPassword() const { return password; }
-    const std::list<string> & GetAuthServices() const { return authServices; }
-    const std::list<string> & GetAcctServices() const { return acctServices; }
+    const std::list<std::string> & GetAuthServices() const { return authServices; }
+    const std::list<std::string> & GetAcctServices() const { return acctServices; }
 
 private:
     int ParseServices(const std::vector<std::string> & str, std::list<std::string> * lst);
@@ -102,7 +102,7 @@ public:
     bool                IsRunning() { return isRunning; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const { return "RADIUS data access plugin v 0.6"; }
+    std::string         GetVersion() const { return "RADIUS data access plugin v 0.6"; }
     uint16_t            GetStartPosition() const { return 30; }
     uint16_t            GetStopPosition() const { return 30; }
 
@@ -116,7 +116,7 @@ private:
     int                 PrepareNet();
     int                 FinalizeNet();
 
-    int                 Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr);
+    ssize_t             Send(const RAD_PACKET & packet, struct sockaddr_in * outerAddr);
     int                 RecvData(RAD_PACKET * packet, struct sockaddr_in * outerAddr);
     int                 ProcessData(RAD_PACKET * packet);
 
@@ -135,19 +135,19 @@ private:
 
     void                PrintServices(const std::list<std::string> & svcs);
 
-    struct Printer : public unary_function<std::string, void>
+    struct Printer : public std::unary_function<std::string, void>
     { 
         void operator()(const std::string & line)
         { 
             printfd("radius.cpp", "'%s'\n", line.c_str()); 
-        }; 
+        } 
     };
-    struct SPrinter : public unary_function<std::pair<std::string, RAD_SESSION>, void>
+    struct SPrinter : public std::unary_function<std::pair<std::string, RAD_SESSION>, void>
     { 
         void operator()(const std::pair<std::string, RAD_SESSION> & it)
         { 
             printfd("radius.cpp", "%s - ('%s', '%s')\n", it.first.c_str(), it.second.userName.c_str(), it.second.serviceType.c_str()); 
-        }; 
+        } 
     };
 
     BLOWFISH_CTX        ctx;
index e7cb44c2988640710d756c6a7ee0a7622a2cdfe1..240ce349b6d12a0d74e66e876b99122db3e90f21 100644 (file)
@@ -60,8 +60,8 @@ public:
     ~NRMapParser() {}
 
     bool ReadFile(const std::string & fileName);
-    const std::vector<NET_ROUTER> & GetMap() const { return nrmap; };
-    const std::string & GetErrorStr() const { return errorStr; };
+    const std::vector<NET_ROUTER> & GetMap() const { return nrmap; }
+    const std::string & GetErrorStr() const { return errorStr; }
 
 private:
     NRMapParser(const NRMapParser & rvalue);
index f7f892e5157de37a2e4814af15b2d691e59d40e5..d5fab22243ef3b88f832d287ff7bf1d40e3b9fb1 100644 (file)
@@ -38,9 +38,7 @@
 #include "ur_functor.h"
 #include "send_functor.h"
 
-extern volatile const time_t stgTime;
-
-#define RS_MAX_ROUTERS  (100)
+extern volatile time_t stgTime;
 
 using RS::REMOTE_SCRIPT;
 
@@ -55,12 +53,14 @@ struct USER_IS
     USER_PTR user;
 };
 
+PLUGIN_CREATOR<REMOTE_SCRIPT> rsc;
+
 } // namespace anonymous
 
+extern "C" PLUGIN * GetPlugin();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-PLUGIN_CREATOR<REMOTE_SCRIPT> rsc;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -86,7 +86,7 @@ int RS::SETTINGS::ParseSettings(const MODULE_SETTINGS & s)
 {
 int p;
 PARAM_VALUE pv;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 netRouters.clear();
 ///////////////////////////
 pv.param = "Port";
@@ -103,7 +103,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     printfd(__FILE__, "Cannot parse parameter 'Port'\n");
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 ///////////////////////////
 pv.param = "SendPeriod";
 pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -352,7 +352,7 @@ void REMOTE_SCRIPT::PeriodicSend()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-map<uint32_t, RS::USER>::iterator it(authorizedUsers.begin());
+std::map<uint32_t, RS::USER>::iterator it(authorizedUsers.begin());
 while (it != authorizedUsers.end())
     {
     if (difftime(stgTime, it->second.lastSentTime) - (rand() % halfPeriod) > sendPeriod)
@@ -420,7 +420,7 @@ RS::PACKET_TAIL packetTail;
 
 memset(packetTail.padding, 0, sizeof(packetTail.padding));
 strcpy((char*)packetTail.magic, RS_ID);
-vector<string>::const_iterator it;
+std::vector<std::string>::const_iterator it;
 std::string params;
 for(it = rsSettings.GetUserParams().begin();
     it != rsSettings.GetUserParams().end();
@@ -456,7 +456,7 @@ if (PreparePacket(buffer, sizeof(buffer), rsu, forceDisconnect))
 std::for_each(
         rsu.routers.begin(),
         rsu.routers.end(),
-        PacketSender(sock, buffer, sizeof(buffer), htons(rsSettings.GetPort()))
+        PacketSender(sock, buffer, sizeof(buffer), static_cast<uint16_t>(htons(rsSettings.GetPort())))
         );
 
 return false;
@@ -475,10 +475,10 @@ if (PreparePacket(buffer, sizeof(buffer), rsu, forceDisconnect))
 struct sockaddr_in sendAddr;
 
 sendAddr.sin_family = AF_INET;
-sendAddr.sin_port = htons(rsSettings.GetPort());
+sendAddr.sin_port = static_cast<uint16_t>(htons(rsSettings.GetPort()));
 sendAddr.sin_addr.s_addr = routerIP;
 
-int res = sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&sendAddr, sizeof(sendAddr));
+ssize_t res = sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&sendAddr, sizeof(sendAddr));
 
 if (res < 0)
     logger("sendto error: %s", strerror(errno));
@@ -515,9 +515,9 @@ for (size_t i = 0; i < netRouters.size(); ++i)
 return std::vector<uint32_t>();
 }
 //-----------------------------------------------------------------------------
-string REMOTE_SCRIPT::GetUserParam(USER_PTR u, const string & paramName) const
+std::string REMOTE_SCRIPT::GetUserParam(USER_PTR u, const std::string & paramName) const
 {
-string value = "";
+std::string value = "";
 if (strcasecmp(paramName.c_str(), "cash") == 0)
     strprintf(&value, "%f", u->GetProperty().cash.Get());
 else
@@ -626,7 +626,7 @@ authorizedUsers.insert(std::make_pair(user->GetCurrIP(), rsu));
 void REMOTE_SCRIPT::DelRSU(USER_PTR user)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-const map<uint32_t, RS::USER>::iterator it(
+const std::map<uint32_t, RS::USER>::iterator it(
         authorizedUsers.find(user->GetCurrIP())
         );
 if (it != authorizedUsers.end())
@@ -652,7 +652,7 @@ else
     rs.DelRSU(user);
 }
 //-----------------------------------------------------------------------------
-void REMOTE_SCRIPT::InitEncrypt(BLOWFISH_CTX * ctx, const string & password) const
+void REMOTE_SCRIPT::InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password) const
 {
 unsigned char keyL[PASSWD_LEN];  // Пароль для шифровки
 memset(keyL, 0, PASSWD_LEN);
@@ -660,11 +660,11 @@ strncpy((char *)keyL, password.c_str(), PASSWD_LEN);
 Blowfish_Init(ctx, keyL, PASSWD_LEN);
 }
 //-----------------------------------------------------------------------------
-void REMOTE_SCRIPT::Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, size_t len8) const
+void REMOTE_SCRIPT::Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8) const
 {
 if (dst != src)
     memcpy(dst, src, len8 * 8);
 for (size_t i = 0; i < len8; ++i)
-    Blowfish_Encrypt(ctx, (uint32_t *)(dst + i * 8), (uint32_t *)(dst + i * 8 + 4));
+    Blowfish_Encrypt(ctx, static_cast<uint32_t *>(dst) + i * 2, static_cast<uint32_t *>(dst) + i * 2 + 1);
 }
 //-----------------------------------------------------------------------------
index cbb9f97f814c5aeab870872613e96dd5bef5c390..8d22b458c870d72fba63ea61f3f7651134389ca7 100644 (file)
@@ -157,7 +157,7 @@ public:
     const std::string & GetStrError() const { return errorStr; }
     int                 ParseSettings(const MODULE_SETTINGS & s);
     int                 GetSendPeriod() const { return sendPeriod; }
-    int                 GetPort() const { return port; }
+    uint16_t            GetPort() const { return port; }
     const std::vector<NET_ROUTER> & GetSubnetsMap() const { return netRouters; }
     const std::vector<std::string> & GetUserParams() const { return userParams; }
     const std::string & GetPassword() const { return password; }
@@ -166,11 +166,11 @@ public:
 private:
     int                 sendPeriod;
     uint16_t            port;
-    string              errorStr;
+    std::string         errorStr;
     std::vector<NET_ROUTER> netRouters;
-    std::vector<string> userParams;
-    string              password;
-    string              subnetFile;
+    std::vector<std::string> userParams;
+    std::string         password;
+    std::string         subnetFile;
 };
 //-----------------------------------------------------------------------------
 class REMOTE_SCRIPT : public PLUGIN {
@@ -188,7 +188,7 @@ public:
     bool                IsRunning() { return isRunning; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string   GetVersion() const { return "Remote script v 0.3"; }
+    std::string         GetVersion() const { return "Remote script v 0.3"; }
     uint16_t            GetStartPosition() const { return 10; }
     uint16_t            GetStopPosition() const { return 10; }
 
@@ -218,8 +218,8 @@ private:
     void                SetUserNotifiers(USER_PTR u);
     void                UnSetUserNotifiers(USER_PTR u);
 
-    void                InitEncrypt(BLOWFISH_CTX * ctx, const string & password) const;
-    void                Encrypt(BLOWFISH_CTX * ctx, char * dst, const char * src, size_t len8) const;
+    void                InitEncrypt(BLOWFISH_CTX * ctx, const std::string & password) const;
+    void                Encrypt(BLOWFISH_CTX * ctx, void * dst, const void * src, size_t len8) const;
 
     mutable BLOWFISH_CTX ctx;
 
index b9b789eaf1556ed034ae350b29b6479d96714b63..a14fe20b3e95cdf18ec602fc656d087974ab0654 100644 (file)
 
 #include "stg/os_int.h"
 
-class PacketSender : public std::unary_function<uint32_t, int> {
+class PacketSender : public std::unary_function<uint32_t, ssize_t> {
     public:
-        PacketSender(int s, char * b, int l, uint16_t p)
+        PacketSender(int s, char * b, size_t l, uint16_t p)
             : sock(s),
               buffer(b),
               length(l),
-              port(p) {};
-        int operator() (uint32_t ip)
+              port(p) {}
+        ssize_t operator() (uint32_t ip)
         {
         struct sockaddr_in sendAddr;
 
@@ -54,7 +54,7 @@ class PacketSender : public std::unary_function<uint32_t, int> {
     private:
         int sock;
         char * buffer;
-        int length;
+        size_t length;
         uint16_t port;
 };
 
index 5d02d9dc897bf76ada08d5ebcde250915f0b9910..95382400f6403e945b3e05768ac40d718b3aece1 100644 (file)
@@ -37,7 +37,7 @@ class UpdateRouter : public std::unary_function<std::pair<const uint32_t, RS::US
 {
 public:
     UpdateRouter(REMOTE_SCRIPT & t)
-        : obj(t) {};
+        : obj(t) {}
 
     void operator() (std::pair<const uint32_t, USER> & val)
         {
index 81b9ccb50a8d3e43a9db3235e3b1b50277af111d..31b91bb390ee431b7caf1e732832012586d5bb89 100644 (file)
 #include "smux.h"
 #include "utils.h"
 
+namespace
+{
 PLUGIN_CREATOR<SMUX> smc;
 
-PLUGIN * GetPlugin()
-{
-return smc.GetPlugin();
-}
+bool SPrefixLess(const Sensors::value_type & a,
+                 const Sensors::value_type & b);
 
 bool SPrefixLess(const Sensors::value_type & a,
                  const Sensors::value_type & b)
@@ -33,6 +33,15 @@ bool SPrefixLess(const Sensors::value_type & a,
 return a.first.PrefixLess(b.first);
 }
 
+}
+
+extern "C" PLUGIN * GetPlugin();
+
+PLUGIN * GetPlugin()
+{
+return smc.GetPlugin();
+}
+
 SMUX_SETTINGS::SMUX_SETTINGS()
     : errorStr(),
       ip(0),
@@ -60,7 +69,7 @@ if (ParseIntInRange(pvi->value[0], 2, 65535, &p))
     printfd(__FILE__, "Cannot parse parameter 'Port'\n");
     return -1;
     }
-port = p;
+port = static_cast<uint16_t>(p);
 
 pv.param = "Password";
 pvi = std::find(s.moduleParams.begin(), s.moduleParams.end(), pv);
index a33f3b27877b6e0540cf4108950c0d3d7bdffb0c..e379ea7f7f06261e4cfe64bc2612b83796c2c94b 100644 (file)
@@ -120,7 +120,7 @@ public:
     bool IsRunning() { return running && !stopped; }
 
     const std::string & GetStrError() const { return errorStr; }
-    const std::string GetVersion() const { return "Stg SMUX Plugin 1.1"; }
+    std::string GetVersion() const { return "Stg SMUX Plugin 1.1"; }
     uint16_t GetStartPosition() const { return 10; }
     uint16_t GetStopPosition() const { return 10; }
 
index 25b2dd85d8372b880bfa1be5e85f3b45ccafbede..c3e3ef54c48d870fee774d16ac11e3420b8b67e2 100644 (file)
@@ -51,8 +51,8 @@ OID prefixOid(prefix);
 std::map<std::string, size_t>::const_iterator it(data.begin());
 while (it != data.end())
     {
-    sensors[prefixOid.copyWithSuffix(2, idx)] = new ConstSensor<std::string>(it->first);
-    sensors[prefixOid.copyWithSuffix(3, idx)] = new ConstSensor<int>(it->second);
+    sensors[prefixOid.copyWithSuffix(2, static_cast<unsigned int>(idx))] = new ConstSensor<std::string>(it->first);
+    sensors[prefixOid.copyWithSuffix(3, static_cast<unsigned int>(idx))] = new ConstSensor<unsigned long>(it->second);
     ++idx;
     ++it;
     }
index eb09a73ce5c91d1acc074b26cb1f00ac8b6474af..4e54749287110f740fa264db4590a63fd23028b9 100644 (file)
@@ -5,6 +5,13 @@
 
 #include "types.h"
 
+namespace
+{
+
+bool ParseArcs(const char * str, ptrdiff_t length, unsigned * a, size_t * pos);
+bool StringToArcs(const char * str, size_t length, std::vector<unsigned> & arcs);
+bool AppendToArcs(const char * str, size_t length, std::vector<unsigned> & arcs);
+
 bool ParseArcs(const char * str, ptrdiff_t length, unsigned * a, size_t * pos)
 {
 if (length == 0)
@@ -16,7 +23,7 @@ size_t arcPos = 0;
 while ((left - str) < length)
     {
     char * pos = NULL;
-    unsigned arc = strtoul(left, &pos, 10);
+    unsigned arc = static_cast<unsigned int>(strtoul(left, &pos, 10));
     if (pos == left)
         return false;
     a[arcPos++] = arc;
@@ -52,6 +59,8 @@ std::copy(&a[0], &a[pos], std::back_inserter(arcs));
 return true;
 }
 
+}
+
 OID::OID(const std::string & str)
     : arcs()
 {
@@ -182,7 +191,7 @@ return stream.str();
 
 void OID::ToOID(OBJECT_IDENTIFIER_t * oid) const
 {
-OBJECT_IDENTIFIER_set_arcs(oid, &arcs.front(), sizeof(unsigned), arcs.size());
+OBJECT_IDENTIFIER_set_arcs(oid, &arcs.front(), sizeof(unsigned), static_cast<unsigned int>(arcs.size()));
 }
 
 OID & OID::operator=(const OID & rvalue)
index 18e2bf3157fec9168c7fd92d9d114f7a6eb1d265..3160bc5fcf6c33b5bc1d6729c80fb74e2a8f3f21 100644 (file)
@@ -44,7 +44,7 @@ if (left < str.length())
         }
     arcs[arcPos++] = arc;
     }
-OBJECT_IDENTIFIER_set_arcs(oi, arcs, sizeof(arcs[0]), arcPos);
+OBJECT_IDENTIFIER_set_arcs(oi, arcs, sizeof(arcs[0]), static_cast<unsigned int>(arcPos));
 return true;
 }
 
index d17cb3574ba80579bd2d27351eaf5eb241c5f917..c069affdd328b9585103cbc4996f14b385e29ea8 100644 (file)
@@ -57,7 +57,7 @@ bool ValueToOS<std::string>(const std::string & value, ObjectSyntax * objectSynt
 objectSyntax->present = ObjectSyntax_PR_simple;
 SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple;
 simpleSyntax->present = SimpleSyntax_PR_string;
-OCTET_STRING_fromBuf(&simpleSyntax->choice.string, value.c_str(), value.length());
+OCTET_STRING_fromBuf(&simpleSyntax->choice.string, value.c_str(), static_cast<int>(value.length()));
 return true;
 }
 
index 334824d979d7ecd57c34df52a12947118294f529..4e4489adcaa86614d32aaa0b390e24b5e513506b 100644 (file)
 
 #define adm_enc_passwd "cjeifY8m3"
 
-using namespace std;
-
-int GetFileList(vector<string> * fileList, const string & directory, mode_t mode, const string & ext);
+int GetFileList(std::vector<std::string> * fileList, const std::string & directory, mode_t mode, const std::string & ext);
 
 const int pt_mega = 1024 * 1024;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
+namespace
+{
 PLUGIN_CREATOR<FILES_STORE> fsc;
+}
+
+extern "C" STORE * GetStore();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -96,11 +99,11 @@ FILES_STORE_SETTINGS::FILES_STORE_SETTINGS()
 {
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE_SETTINGS::ParseOwner(const vector<PARAM_VALUE> & moduleParams, const string & owner, uid_t * uid)
+int FILES_STORE_SETTINGS::ParseOwner(const std::vector<PARAM_VALUE> & moduleParams, const std::string & owner, uid_t * uid)
 {
 PARAM_VALUE pv;
 pv.param = owner;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 pvi = find(moduleParams.begin(), moduleParams.end(), pv);
 if (pvi == moduleParams.end())
     {
@@ -117,11 +120,11 @@ if (User2UID(pvi->value[0].c_str(), uid) < 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE_SETTINGS::ParseGroup(const vector<PARAM_VALUE> & moduleParams, const string & group, gid_t * gid)
+int FILES_STORE_SETTINGS::ParseGroup(const std::vector<PARAM_VALUE> & moduleParams, const std::string & group, gid_t * gid)
 {
 PARAM_VALUE pv;
 pv.param = group;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 pvi = find(moduleParams.begin(), moduleParams.end(), pv);
 if (pvi == moduleParams.end())
     {
@@ -138,7 +141,7 @@ if (Group2GID(pvi->value[0].c_str(), gid) < 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE_SETTINGS::ParseYesNo(const string & value, bool * val)
+int FILES_STORE_SETTINGS::ParseYesNo(const std::string & value, bool * val)
 {
 if (0 == strcasecmp(value.c_str(), "yes"))
     {
@@ -155,11 +158,11 @@ errorStr = "Incorrect value \'" + value + "\'.";
 return -1;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE_SETTINGS::ParseMode(const vector<PARAM_VALUE> & moduleParams, const string & modeStr, mode_t * mode)
+int FILES_STORE_SETTINGS::ParseMode(const std::vector<PARAM_VALUE> & moduleParams, const std::string & modeStr, mode_t * mode)
 {
 PARAM_VALUE pv;
 pv.param = modeStr;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 pvi = find(moduleParams.begin(), moduleParams.end(), pv);
 if (pvi == moduleParams.end())
     {
@@ -199,7 +202,7 @@ if (ParseGroup(s.moduleParams, "UserLogGroup", &userLogGID) < 0)
 if (ParseMode(s.moduleParams, "UserLogMode", &userLogMode) < 0)
     return -1;
 
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 PARAM_VALUE pv;
 pv.param = "RemoveBak";
 pvi = find(s.moduleParams.begin(), s.moduleParams.end(), pv);
@@ -252,7 +255,7 @@ adminsDir = workDir + "/admins/";
 return 0;
 }
 //-----------------------------------------------------------------------------
-const string & FILES_STORE_SETTINGS::GetStrError() const
+const std::string & FILES_STORE_SETTINGS::GetStrError() const
 {
 return errorStr;
 }
@@ -263,7 +266,7 @@ struct passwd * pw;
 pw = getpwnam(user);
 if (!pw)
     {
-    errorStr = string("User \'") + string(user) + string("\' not found in system.");
+    errorStr = std::string("User \'") + std::string(user) + std::string("\' not found in system.");
     printfd(__FILE__, "%s\n", errorStr.c_str());
     return -1;
     }
@@ -278,7 +281,7 @@ struct group * grp;
 grp = getgrnam(gr);
 if (!grp)
     {
-    errorStr = string("Group \'") + string(gr) + string("\' not found in system.");
+    errorStr = std::string("Group \'") + std::string(gr) + std::string("\' not found in system.");
     printfd(__FILE__, "%s\n", errorStr.c_str());
     return -1;
     }
@@ -294,7 +297,7 @@ char b;
 char c;
 if (strlen(str) > 3)
     {
-    errorStr = string("Error parsing mode \'") + str + string("\'");
+    errorStr = std::string("Error parsing mode \'") + str + std::string("\'");
     printfd(__FILE__, "%s\n", errorStr.c_str());
     return -1;
     }
@@ -302,7 +305,7 @@ if (strlen(str) > 3)
 for (int i = 0; i < 3; i++)
     if (str[i] > '7' || str[i] < '0')
         {
-        errorStr = string("Error parsing mode \'") + str + string("\'");
+        errorStr = std::string("Error parsing mode \'") + str + std::string("\'");
         printfd(__FILE__, "%s\n", errorStr.c_str());
         return -1;
         }
@@ -348,7 +351,7 @@ pthread_mutexattr_t attr;
 pthread_mutexattr_init(&attr);
 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
 pthread_mutex_init(&mutex, &attr);
-};
+}
 //-----------------------------------------------------------------------------
 int FILES_STORE::ParseSettings()
 {
@@ -361,14 +364,14 @@ if (ret)
 return ret;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::GetUsersList(vector<string> * userList) const
+int FILES_STORE::GetUsersList(std::vector<std::string> * userList) const
 {
-vector<string> files;
+std::vector<std::string> files;
 
 if (GetFileList(&files, storeSettings.GetUsersDir(), S_IFDIR, ""))
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = "Failed to open '" + storeSettings.GetUsersDir() + "': " + string(strerror(errno));
+    errorStr = "Failed to open '" + storeSettings.GetUsersDir() + "': " + std::string(strerror(errno));
     return -1;
     }
 
@@ -379,14 +382,14 @@ userList->swap(files);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::GetAdminsList(vector<string> * adminList) const
+int FILES_STORE::GetAdminsList(std::vector<std::string> * adminList) const
 {
-vector<string> files;
+std::vector<std::string> files;
 
 if (GetFileList(&files, storeSettings.GetAdminsDir(), S_IFREG, ".adm"))
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = "Failed to open '" + storeSettings.GetAdminsDir() + "': " + string(strerror(errno));
+    errorStr = "Failed to open '" + storeSettings.GetAdminsDir() + "': " + std::string(strerror(errno));
     return -1;
     }
 
@@ -397,14 +400,14 @@ adminList->swap(files);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::GetTariffsList(vector<string> * tariffList) const
+int FILES_STORE::GetTariffsList(std::vector<std::string> * tariffList) const
 {
-vector<string> files;
+std::vector<std::string> files;
 
 if (GetFileList(&files, storeSettings.GetTariffsDir(), S_IFREG, ".tf"))
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = "Failed to open '" + storeSettings.GetTariffsDir() + "': " + string(strerror(errno));
+    errorStr = "Failed to open '" + storeSettings.GetTariffsDir() + "': " + std::string(strerror(errno));
     return -1;
     }
 
@@ -434,8 +437,8 @@ while ((entry = readdir(d)))
     if (!(strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")))
         continue;
 
-    string str = path;
-    str += "/" + string(entry->d_name);
+    std::string str = path;
+    str += "/" + std::string(entry->d_name);
 
     struct stat st;
     if (stat(str.c_str(), &st))
@@ -481,16 +484,16 @@ if (rmdir(path))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::AddUser(const string & login) const
+int FILES_STORE::AddUser(const std::string & login) const
 {
-string fileName;
+std::string fileName;
 
 strprintf(&fileName, "%s%s", storeSettings.GetUsersDir().c_str(), login.c_str());
 
 if (mkdir(fileName.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) == -1)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = string("mkdir failed. Message: '") + strerror(errno) + "'";
+    errorStr = std::string("mkdir failed. Message: '") + strerror(errno) + "'";
     printfd(__FILE__, "FILES_STORE::AddUser - mkdir failed. Message: '%s'\n", strerror(errno));
     return -1;
     }
@@ -515,12 +518,12 @@ if (Touch(fileName))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::DelUser(const string & login) const
+int FILES_STORE::DelUser(const std::string & login) const
 {
-string dirName;
-string dirName1;
+std::string dirName;
+std::string dirName1;
 
-strprintf(&dirName, "%s/"DELETED_USERS_DIR, storeSettings.GetWorkDir().c_str());
+strprintf(&dirName, "%s/%s", storeSettings.GetWorkDir().c_str(), DELETED_USERS_DIR);
 if (access(dirName.c_str(), F_OK) != 0)
     {
     if (mkdir(dirName.c_str(), 0700) != 0)
@@ -534,7 +537,7 @@ if (access(dirName.c_str(), F_OK) != 0)
 
 if (access(dirName.c_str(), F_OK) == 0)
     {
-    strprintf(&dirName, "%s/"DELETED_USERS_DIR"/%s.%lu", storeSettings.GetWorkDir().c_str(), login.c_str(), time(NULL));
+    strprintf(&dirName, "%s/%s/%s.%lu", storeSettings.GetWorkDir().c_str(), DELETED_USERS_DIR, login.c_str(), time(NULL));
     strprintf(&dirName1, "%s/%s", storeSettings.GetUsersDir().c_str(), login.c_str());
     if (rename(dirName1.c_str(), dirName.c_str()))
         {
@@ -555,9 +558,9 @@ else
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreUserConf(USER_CONF * conf, const string & login) const
+int FILES_STORE::RestoreUserConf(USER_CONF * conf, const std::string & login) const
 {
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/conf";
 if (RestoreUserConf(conf, login, fileName))
     {
@@ -570,11 +573,11 @@ if (RestoreUserConf(conf, login, fileName))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreUserConf(USER_CONF * conf, const string & login, const string & fileName) const
+int FILES_STORE::RestoreUserConf(USER_CONF * conf, const std::string & login, const std::string & fileName) const
 {
 CONFIGFILE cf(fileName);
 int e = cf.Error();
-string str;
+std::string str;
 
 if (e)
     {
@@ -614,21 +617,21 @@ if (conf->tariffName.empty())
     return -1;
     }
 
-string ipStr;
+std::string ipStr;
 cf.ReadString("IP", &ipStr, "?");
-USER_IPS i;
+USER_IPS ips;
 try
     {
-    i = StrToIPS(ipStr);
+    ips = StrToIPS(ipStr);
     }
-catch (const string & s)
+catch (const std::string & s)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
     errorStr = "User \'" + login + "\' data not read. Parameter IP address. " + s;
     printfd(__FILE__, "FILES_STORE::RestoreUserConf - ip read failed for user '%s'\n", login.c_str());
     return -1;
     }
-conf->ips = i;
+conf->ips = ips;
 
 if (cf.ReadInt("alwaysOnline", &conf->alwaysOnline, 0) != 0)
     {
@@ -682,9 +685,9 @@ if (cf.ReadDouble("Credit", &conf->credit, 0) != 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreUserStat(USER_STAT * stat, const string & login) const
+int FILES_STORE::RestoreUserStat(USER_STAT * stat, const std::string & login) const
 {
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/stat";
 
 if (RestoreUserStat(stat, login, fileName))
@@ -698,7 +701,7 @@ if (RestoreUserStat(stat, login, fileName))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreUserStat(USER_STAT * stat, const string & login, const string & fileName) const
+int FILES_STORE::RestoreUserStat(USER_STAT * stat, const std::string & login, const std::string & fileName) const
 {
 CONFIGFILE cf(fileName);
 
@@ -721,7 +724,7 @@ for (int i = 0; i < DIR_NUM; i++)
     if (cf.ReadULongLongInt(s, &traff, 0) != 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = "User \'" + login + "\' stat not read. Parameter " + string(s);
+        errorStr = "User \'" + login + "\' stat not read. Parameter " + std::string(s);
         printfd(__FILE__, "FILES_STORE::RestoreUserStat - download stat read failed for user '%s'\n", login.c_str());
         return -1;
         }
@@ -731,7 +734,7 @@ for (int i = 0; i < DIR_NUM; i++)
     if (cf.ReadULongLongInt(s, &traff, 0) != 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr =   "User \'" + login + "\' stat not read. Parameter " + string(s);
+        errorStr =   "User \'" + login + "\' stat not read. Parameter " + std::string(s);
         printfd(__FILE__, "FILES_STORE::RestoreUserStat - upload stat read failed for user '%s'\n", login.c_str());
         return -1;
         }
@@ -789,9 +792,9 @@ if (cf.ReadTime("LastActivityTime", &stat->lastActivityTime, 0) != 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::SaveUserConf(const USER_CONF & conf, const string & login) const
+int FILES_STORE::SaveUserConf(const USER_CONF & conf, const std::string & login) const
 {
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/conf";
 
 CONFIGFILE cfstat(fileName, true);
@@ -801,7 +804,7 @@ int e = cfstat.Error();
 if (e)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = string("User \'") + login + "\' conf not written\n";
+    errorStr = std::string("User \'") + login + "\' conf not written\n";
     printfd(__FILE__, "FILES_STORE::SaveUserConf - conf write failed for user '%s'\n", login.c_str());
     return -1;
     }
@@ -838,17 +841,17 @@ for (int i = 0; i < USERDATA_NUM; i++)
     }
 cfstat.WriteInt("CreditExpire",    conf.creditExpire);
 
-stringstream ipStr;
+std::ostringstream ipStr;
 ipStr << conf.ips;
 cfstat.WriteString("IP", ipStr.str());
 
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::SaveUserStat(const USER_STAT & stat, const string & login) const
+int FILES_STORE::SaveUserStat(const USER_STAT & stat, const std::string & login) const
 {
 char s[22];
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/stat";
 
     {
@@ -858,7 +861,7 @@ fileName = storeSettings.GetUsersDir() + "/" + login + "/stat";
     if (e)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = string("User \'") + login + "\' stat not written\n";
+        errorStr = std::string("User \'") + login + "\' stat not written\n";
         printfd(__FILE__, "FILES_STORE::SaveUserStat - stat write failed for user '%s'\n", login.c_str());
         return -1;
         }
@@ -891,11 +894,11 @@ if (e)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteLogString(const string & str, const string & login) const
+int FILES_STORE::WriteLogString(const std::string & str, const std::string & login) const
 {
 FILE * f;
 time_t tm = time(NULL);
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/log";
 f = fopen(fileName.c_str(), "at");
 
@@ -927,11 +930,11 @@ if (e)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteLog2String(const string & str, const string & login) const
+int FILES_STORE::WriteLog2String(const std::string & str, const std::string & login) const
 {
 FILE * f;
 time_t tm = time(NULL);
-string fileName;
+std::string fileName;
 fileName = storeSettings.GetUsersDir() + "/" + login + "/log2";
 f = fopen(fileName.c_str(), "at");
 
@@ -963,30 +966,30 @@ if (e)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteUserChgLog(const string & login,
-                                 const string & admLogin,
+int FILES_STORE::WriteUserChgLog(const std::string & login,
+                                 const std::string & admLogin,
                                  uint32_t       admIP,
-                                 const string & paramName,
-                                 const string & oldValue,
-                                 const string & newValue,
-                                 const string & message) const
+                                 const std::string & paramName,
+                                 const std::string & oldValue,
+                                 const std::string & newValue,
+                                 const std::string & message) const
 {
-string userLogMsg = "Admin \'" + admLogin + "\', " + inet_ntostring(admIP) + ": \'"
+std::string userLogMsg = "Admin \'" + admLogin + "\', " + inet_ntostring(admIP) + ": \'"
     + paramName + "\' parameter changed from \'" + oldValue +
     "\' to \'" + newValue + "\'. " + message;
 
 return WriteLogString(userLogMsg, login);
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteUserConnect(const string & login, uint32_t ip) const
+int FILES_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
 {
-string logStr = "Connect, " + inet_ntostring(ip);
+std::string logStr = "Connect, " + inet_ntostring(ip);
 if (WriteLogString(logStr, login))
     return -1;
 return WriteLog2String(logStr, login);
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteUserDisconnect(const string & login,
+int FILES_STORE::WriteUserDisconnect(const std::string & login,
                                      const DIR_TRAFF & up,
                                      const DIR_TRAFF & down,
                                      const DIR_TRAFF & sessionUp,
@@ -995,7 +998,7 @@ int FILES_STORE::WriteUserDisconnect(const string & login,
                                      double freeMb,
                                      const std::string & reason) const
 {
-stringstream logStr;
+std::ostringstream logStr;
 logStr << "Disconnect, "
        << " session upload: \'"
        << sessionUp
@@ -1022,10 +1025,10 @@ logStr << " freeMb: \'"
 return WriteLog2String(logStr.str(), login);
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const
+int FILES_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const
 {
 // Classic stats
-string stat1;
+std::string stat1;
 strprintf(&stat1,"%s/%s/stat.%d.%02d",
         storeSettings.GetUsersDir().c_str(), login.c_str(), year + 1900, month + 1);
 
@@ -1040,7 +1043,7 @@ if (s.Error())
     }
 
 // New stats
-string stat2;
+std::string stat2;
 strprintf(&stat2,"%s/%s/stat2.%d.%02d",
         storeSettings.GetUsersDir().c_str(), login.c_str(), year + 1900, month + 1);
 
@@ -1079,9 +1082,9 @@ s2.WriteInt("LastActivityTime", stat.lastActivityTime);
 return 0;
 }
 //-----------------------------------------------------------------------------*/
-int FILES_STORE::AddAdmin(const string & login) const
+int FILES_STORE::AddAdmin(const std::string & login) const
 {
-string fileName;
+std::string fileName;
 strprintf(&fileName, "%s/%s.adm", storeSettings.GetAdminsDir().c_str(), login.c_str());
 
 if (Touch(fileName))
@@ -1095,9 +1098,9 @@ if (Touch(fileName))
 return 0;
 }
 //-----------------------------------------------------------------------------*/
-int FILES_STORE::DelAdmin(const string & login) const
+int FILES_STORE::DelAdmin(const std::string & login) const
 {
-string fileName;
+std::string fileName;
 strprintf(&fileName, "%s/%s.adm", storeSettings.GetAdminsDir().c_str(), login.c_str());
 if (unlink(fileName.c_str()))
     {
@@ -1116,7 +1119,7 @@ char passwordE[2 * ADM_PASSWD_LEN + 2];
 char pass[ADM_PASSWD_LEN + 1];
 char adminPass[ADM_PASSWD_LEN + 1];
 
-string fileName;
+std::string fileName;
 
 strprintf(&fileName, "%s/%s.adm", storeSettings.GetAdminsDir().c_str(), ac.login.c_str());
 
@@ -1165,9 +1168,9 @@ strprintf(&fileName, "%s/%s.adm", storeSettings.GetAdminsDir().c_str(), ac.login
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreAdmin(ADMIN_CONF * ac, const string & login) const
+int FILES_STORE::RestoreAdmin(ADMIN_CONF * ac, const std::string & login) const
 {
-string fileName;
+std::string fileName;
 strprintf(&fileName, "%s/%s.adm", storeSettings.GetAdminsDir().c_str(), login.c_str());
 CONFIGFILE cf(fileName);
 char pass[ADM_PASSWD_LEN + 1];
@@ -1175,7 +1178,7 @@ char password[ADM_PASSWD_LEN + 1];
 char passwordE[2 * ADM_PASSWD_LEN + 2];
 BLOWFISH_CTX ctx;
 
-string p;
+std::string p;
 
 if (cf.Error())
     {
@@ -1185,8 +1188,6 @@ if (cf.Error())
     return -1;
     }
 
-int a;
-
 if (cf.ReadString("password", &p, "*"))
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
@@ -1217,7 +1218,9 @@ else
 
 ac->password = password;
 
-if (cf.ReadInt("ChgConf", &a, 0) == 0)
+uint16_t a;
+
+if (cf.ReadUShortInt("ChgConf", &a, 0) == 0)
     ac->priv.userConf = a;
 else
     {
@@ -1227,7 +1230,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgPassword", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgPassword", &a, 0) == 0)
     ac->priv.userPasswd = a;
 else
     {
@@ -1237,7 +1240,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgStat", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgStat", &a, 0) == 0)
     ac->priv.userStat = a;
 else
     {
@@ -1247,7 +1250,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgCash", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgCash", &a, 0) == 0)
     ac->priv.userCash = a;
 else
     {
@@ -1257,7 +1260,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("UsrAddDel", &a, 0) == 0)
+if (cf.ReadUShortInt("UsrAddDel", &a, 0) == 0)
     ac->priv.userAddDel = a;
 else
     {
@@ -1267,7 +1270,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgAdmin", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgAdmin", &a, 0) == 0)
     ac->priv.adminChg = a;
 else
     {
@@ -1277,7 +1280,7 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgTariff", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgTariff", &a, 0) == 0)
     ac->priv.tariffChg = a;
 else
     {
@@ -1287,12 +1290,12 @@ else
     return -1;
     }
 
-if (cf.ReadInt("ChgService", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgService", &a, 0) == 0)
     ac->priv.serviceChg = a;
 else
     ac->priv.serviceChg = 0;
 
-if (cf.ReadInt("ChgCorp", &a, 0) == 0)
+if (cf.ReadUShortInt("ChgCorp", &a, 0) == 0)
     ac->priv.corpChg = a;
 else
     ac->priv.corpChg = 0;
@@ -1300,9 +1303,9 @@ else
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::AddTariff(const string & name) const
+int FILES_STORE::AddTariff(const std::string & name) const
 {
-string fileName;
+std::string fileName;
 strprintf(&fileName, "%s/%s.tf", storeSettings.GetTariffsDir().c_str(), name.c_str());
 if (Touch(fileName))
     {
@@ -1314,9 +1317,9 @@ if (Touch(fileName))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::DelTariff(const string & name) const
+int FILES_STORE::DelTariff(const std::string & name) const
 {
-string fileName;
+std::string fileName;
 strprintf(&fileName, "%s/%s.tf", storeSettings.GetTariffsDir().c_str(), name.c_str());
 if (unlink(fileName.c_str()))
     {
@@ -1329,11 +1332,11 @@ if (unlink(fileName.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::RestoreTariff(TARIFF_DATA * td, const string & tariffName) const
+int FILES_STORE::RestoreTariff(TARIFF_DATA * td, const std::string & tariffName) const
 {
-string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
+std::string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
 CONFIGFILE conf(fileName);
-string str;
+std::string str;
 td->tariffConf.name = tariffName;
 
 if (conf.Error() != 0)
@@ -1344,7 +1347,7 @@ if (conf.Error() != 0)
     return -1;
     }
 
-string param;
+std::string param;
 for (int i = 0; i<DIR_NUM; i++)
     {
     strprintf(&param, "Time%d", i);
@@ -1483,9 +1486,9 @@ else
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::SaveTariff(const TARIFF_DATA & td, const string & tariffName) const
+int FILES_STORE::SaveTariff(const TARIFF_DATA & td, const std::string & tariffName) const
 {
-string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
+std::string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
 
     {
     CONFIGFILE cf(fileName, true);
@@ -1500,7 +1503,7 @@ string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
         return e;
         }
 
-    string param;
+    std::string param;
     for (int i = 0; i < DIR_NUM; i++)
         {
         strprintf(&param, "PriceDayA%d", i);
@@ -1518,7 +1521,7 @@ string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
         strprintf(&param, "Threshold%d", i);
         cf.WriteInt(param, td.dirPrice[i].threshold);
 
-        string s;
+        std::string s;
         strprintf(&param, "Time%d", i);
 
         strprintf(&s, "%0d:%0d-%0d:%0d",
@@ -1560,9 +1563,9 @@ string fileName = storeSettings.GetTariffsDir() + "/" + tariffName + ".tf";
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
+int FILES_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                    time_t lastStat,
-                                   const string & login) const
+                                   const std::string & login) const
 {
 char fn[FN_STR_LEN];
 char dn[FN_STR_LEN];
@@ -1578,7 +1581,7 @@ if (access(dn, F_OK) != 0)
     if (mkdir(dn, 0700) != 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = "Directory \'" + string(dn) + "\' cannot be created.";
+        errorStr = "Directory \'" + std::string(dn) + "\' cannot be created.";
         printfd(__FILE__, "FILES_STORE::WriteDetailStat - mkdir failed. Message: '%s'\n", strerror(errno));
         return -1;
         }
@@ -1611,7 +1614,7 @@ if (access(dn, F_OK) != 0)
     if (mkdir(dn, 0700) != 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = "Directory \'" + string(dn) + "\' cannot be created.";
+        errorStr = "Directory \'" + std::string(dn) + "\' cannot be created.";
         printfd(__FILE__, "FILES_STORE::WriteDetailStat - mkdir failed. Message: '%s'\n", strerror(errno));
         return -1;
         }
@@ -1637,7 +1640,7 @@ if (access(dn, F_OK) != 0)
     if (mkdir(dn, 0700) != 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = "Directory \'" + string(dn) + "\' cannot be created.";
+        errorStr = "Directory \'" + std::string(dn) + "\' cannot be created.";
         printfd(__FILE__, "FILES_STORE::WriteDetailStat - mkdir failed. Message: '%s'\n", strerror(errno));
         return -1;
         }
@@ -1659,7 +1662,7 @@ statFile = fopen (fn, "at");
 if (!statFile)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = "File \'" + string(fn) + "\' cannot be written.";
+    errorStr = "File \'" + std::string(fn) + "\' cannot be written.";
     printfd(__FILE__, "FILES_STORE::WriteDetailStat - fopen failed. Message: '%s'\n", strerror(errno));
     return -1;
     }
@@ -1686,18 +1689,18 @@ if (fprintf(statFile, "-> %02d.%02d.%02d - %02d.%02d.%02d\n",
             h1, m1, s1, h2, m2, s2) < 0)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = string("fprint failed. Message: '") + strerror(errno) + "'";
+    errorStr = std::string("fprint failed. Message: '") + strerror(errno) + "'";
     printfd(__FILE__, "FILES_STORE::WriteDetailStat - fprintf failed. Message: '%s'\n", strerror(errno));
     fclose(statFile);
     return -1;
     }
 
-map<IP_DIR_PAIR, STAT_NODE>::const_iterator stIter;
+std::map<IP_DIR_PAIR, STAT_NODE>::const_iterator stIter;
 stIter = statTree.begin();
 
 while (stIter != statTree.end())
     {
-    string u, d;
+    std::string u, d;
     x2str(stIter->second.up, u);
     x2str(stIter->second.down, d);
     #ifdef TRAFF_STAT_WITH_PORTS
@@ -1726,7 +1729,7 @@ while (stIter != statTree.end())
                 stIter->second.cash) < 0)
         {
         STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-        errorStr = string("fprint failed. Message: '");
+        errorStr = std::string("fprint failed. Message: '");
         errorStr += strerror(errno);
         errorStr += "'";
         printfd(__FILE__, "FILES_STORE::WriteDetailStat - fprintf failed. Message: '%s'\n", strerror(errno));
@@ -1752,10 +1755,10 @@ if (e)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::AddMessage(STG_MSG * msg, const string & login) const
+int FILES_STORE::AddMessage(STG_MSG * msg, const std::string & login) const
 {
-string fn;
-string dn;
+std::string fn;
+std::string dn;
 struct timeval tv;
 
 strprintf(&dn, "%s/%s/messages", storeSettings.GetUsersDir().c_str(), login.c_str());
@@ -1792,16 +1795,16 @@ if (Touch(fn))
 return EditMessage(*msg, login);
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::EditMessage(const STG_MSG & msg, const string & login) const
+int FILES_STORE::EditMessage(const STG_MSG & msg, const std::string & login) const
 {
-string fileName;
+std::string fileName;
 
 FILE * msgFile;
 strprintf(&fileName, "%s/%s/messages/%lld", storeSettings.GetUsersDir().c_str(), login.c_str(), msg.header.id);
 
 if (access(fileName.c_str(), F_OK) != 0)
     {
-    string idstr;
+    std::string idstr;
     x2str(msg.header.id, idstr);
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
     errorStr = "Message for user \'";
@@ -1834,7 +1837,7 @@ res &= (fprintf(msgFile, "%s", msg.text.c_str()) >= 0);
 if (!res)
     {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    errorStr = string("fprintf failed. Message: '") + strerror(errno) + "'";
+    errorStr = std::string("fprintf failed. Message: '") + strerror(errno) + "'";
     printfd(__FILE__, "FILES_STORE::EditMessage - fprintf failed. Message: '%s'\n", strerror(errno));
     fclose(msgFile);
     return -1;
@@ -1855,32 +1858,32 @@ if (rename((fileName + ".new").c_str(), fileName.c_str()) < 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::GetMessage(uint64_t id, STG_MSG * msg, const string & login) const
+int FILES_STORE::GetMessage(uint64_t id, STG_MSG * msg, const std::string & login) const
 {
-string fn;
+std::string fn;
 strprintf(&fn, "%s/%s/messages/%lld", storeSettings.GetUsersDir().c_str(), login.c_str(), id);
 msg->header.id = id;
 return ReadMessage(fn, &msg->header, &msg->text);
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::DelMessage(uint64_t id, const string & login) const
+int FILES_STORE::DelMessage(uint64_t id, const std::string & login) const
 {
-string fn;
+std::string fn;
 strprintf(&fn, "%s/%s/messages/%lld", storeSettings.GetUsersDir().c_str(), login.c_str(), id);
 
 return unlink(fn.c_str());
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList, const string & login) const
+int FILES_STORE::GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList, const std::string & login) const
 {
-string dn(storeSettings.GetUsersDir() + "/" + login + "/messages/");
+std::string dn(storeSettings.GetUsersDir() + "/" + login + "/messages/");
 
 if (access(dn.c_str(), F_OK) != 0)
     {
     return 0;
     }
 
-vector<string> messages;
+std::vector<std::string> messages;
 GetFileList(&messages, dn, S_IFREG, "");
 
 for (unsigned i = 0; i < messages.size(); i++)
@@ -1892,7 +1895,7 @@ for (unsigned i = 0; i < messages.size(); i++)
         if (unlink((dn + messages[i]).c_str()))
             {
             STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-            errorStr = string("unlink failed. Message: '") + strerror(errno) + "'";
+            errorStr = std::string("unlink failed. Message: '") + strerror(errno) + "'";
             printfd(__FILE__, "FILES_STORE::GetMessageHdrs - unlink failed. Message: '%s'\n", strerror(errno));
             return -1;
             }
@@ -1910,7 +1913,7 @@ for (unsigned i = 0; i < messages.size(); i++)
         if (unlink((dn + messages[i]).c_str()))
             {
             STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-            errorStr = string("unlink failed. Message: '") + strerror(errno) + "'";
+            errorStr = std::string("unlink failed. Message: '") + strerror(errno) + "'";
             printfd(__FILE__, "FILES_STORE::GetMessageHdrs - unlink failed. Message: '%s'\n", strerror(errno));
             return -1;
             }
@@ -1923,9 +1926,9 @@ for (unsigned i = 0; i < messages.size(); i++)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FILES_STORE::ReadMessage(const string & fileName,
+int FILES_STORE::ReadMessage(const std::string & fileName,
                              STG_MSG_HDR * hdr,
-                             string * text) const
+                             std::string * text) const
 {
 FILE * msgFile;
 msgFile = fopen(fileName.c_str(), "rt");
@@ -2024,7 +2027,7 @@ if (f)
 return -1;
 }
 //-----------------------------------------------------------------------------
-int GetFileList(vector<string> * fileList, const string & directory, mode_t mode, const string & ext)
+int GetFileList(std::vector<std::string> * fileList, const std::string & directory, mode_t mode, const std::string & ext)
 {
 DIR * d = opendir(directory.c_str());
 
@@ -2040,7 +2043,7 @@ while ((entry = readdir(d)))
     if (!(strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")))
         continue;
 
-    string str = directory + "/" + string(entry->d_name);
+    std::string str = directory + "/" + std::string(entry->d_name);
 
     struct stat st;
     if (stat(str.c_str(), &st))
index 2316398f683f4efb7cfee9827f80e3a2d4d8b164..1d72f287d01dac7e1108b4e69bf97a62db3ccd3a 100644 (file)
@@ -39,8 +39,6 @@
 #include "stg/user_traff.h"
 #include "stg/logger.h"
 
-//-----------------------------------------------------------------------------
-extern "C" STORE * GetStore();
 //-----------------------------------------------------------------------------
 class FILES_STORE_SETTINGS {
 public:
@@ -199,7 +197,7 @@ private:
     int RemoveDir(const char * path) const;
     int Touch(const std::string & path) const;
 
-    mutable string errorStr;
+    mutable std::string errorStr;
     std::string version;
     FILES_STORE_SETTINGS storeSettings;
     MODULE_SETTINGS settings;
index e5c7b0b16343ee2655b39f2a670bda0063f88a8a..9cc7c3048b3462d088cd91ee21c94c6f307f4603 100644 (file)
 #include "stg/plugin_creator.h"
 #include "firebird_store.h"
 
-using namespace std;
-
+namespace
+{
 PLUGIN_CREATOR<FIREBIRD_STORE> frsc;
+}
+
+extern "C" STORE * GetStore();
 //-----------------------------------------------------------------------------
 STORE * GetStore()
 {
@@ -69,13 +72,13 @@ db->Disconnect();
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::ParseSettings()
 {
-vector<PARAM_VALUE>::iterator i;
-string s;
+std::vector<PARAM_VALUE>::iterator i;
+std::string s;
 
 for(i = settings.moduleParams.begin(); i != settings.moduleParams.end(); ++i)
     {
     s = i->param;
-    transform(s.begin(), s.end(), s.begin(), ToLower());
+    std::transform(s.begin(), s.end(), s.begin(), ToLower());
     if (s == "server")
         {
         db_server = *(i->value.begin());
index 38ff457d46a1df746829553bcd1b4f2d9f87c011..638067f2011516f1228af789cb3769f0757d4278 100644 (file)
@@ -32,7 +32,6 @@
 #include <ctime>
 #include <string>
 #include <vector>
-#include <map>
 
 #include "stg/store.h"
 #include "stg/locker.h"
 #include "stg/logger.h"
 
 struct ToLower {
-    char operator() (char c) const  { return std::tolower(c); }
+    char operator() (char c) const  { return static_cast<char>(std::tolower(c)); }
 };
 
-extern "C" STORE * GetStore();
-
 class FIREBIRD_STORE : public STORE {
 public:
     FIREBIRD_STORE();
@@ -93,7 +90,7 @@ public:
 
     int GetTariffsList(std::vector<std::string> * tariffsList) const;
     int AddTariff(const std::string & name) const;
-    int DelTariff(const string & name) const;
+    int DelTariff(const std::string & name) const;
     int SaveTariff(const TARIFF_DATA & td, const std::string & tariffName) const;
     int RestoreTariff(TARIFF_DATA * td, const std::string & tariffName) const;
 
@@ -103,12 +100,12 @@ public:
     int AddCorp(const std::string & name) const;
     int DelCorp(const std::string & name) const;
 
-    inline void SetSettings(const MODULE_SETTINGS & s) { settings = s; };
+    inline void SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     int ParseSettings();
 
-    inline const string & GetStrError() const { return strError; };
+    inline const std::string & GetStrError() const { return strError; }
 
-    inline const string & GetVersion() const { return version; };
+    inline const std::string & GetVersion() const { return version; }
 
     int GetServicesList(std::vector<std::string> * servicesList) const;
     int SaveService(const SERVICE_CONF & sc) const;
index 026fef924b4e3e1d3b8ebd8903e3b8e067115861..6b457de02603b90690a728998bb36196585dc1e8 100644 (file)
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetCorpsList(vector<string> * corpsList) const
+int FIREBIRD_STORE::GetCorpsList(std::vector<std::string> * corpsList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-string name;
+std::string name;
 
 try
     {
@@ -90,7 +90,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::RestoreCorp(CORP_CONF * cc, const string & name) const
+int FIREBIRD_STORE::RestoreCorp(CORP_CONF * cc, const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -128,7 +128,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddCorp(const string & name) const
+int FIREBIRD_STORE::AddCorp(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -155,7 +155,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelCorp(const string & name) const
+int FIREBIRD_STORE::DelCorp(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
index c6180c2608ff4f024b9c1e7a9c069bf6dc905ea0..e14ad356e9f6c46938dcb3db57d94827a48c031c 100644 (file)
  *
  */
 
-#include <sstream>
-
 #include "firebird_store.h"
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddMessage(STG_MSG * msg, const string & login) const
+int FIREBIRD_STORE::AddMessage(STG_MSG * msg, const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -70,7 +68,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::EditMessage(const STG_MSG & msg,
-                                const string & login) const
+                                const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -108,7 +106,7 @@ return 0;
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::GetMessage(uint64_t id,
                                STG_MSG * msg,
-                               const string &) const
+                               const std::string &) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -154,7 +152,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelMessage(uint64_t id, const string &) const
+int FIREBIRD_STORE::DelMessage(uint64_t id, const std::string &) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -181,8 +179,8 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList,
-                                   const string & login) const
+int FIREBIRD_STORE::GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList,
+                                   const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
index 84eab5fa885b66a8ad593d5a0cbd791f61824f1e..6f6bee30a01d51b1779afdcc1fe7cb98321e0144 100644 (file)
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetServicesList(vector<string> * servicesList) const
+int FIREBIRD_STORE::GetServicesList(std::vector<std::string> * servicesList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-string name;
+std::string name;
 
 try
     {
@@ -98,7 +98,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreService(SERVICE_CONF * sc,
-                                   const string & name) const
+                                   const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -117,7 +117,7 @@ try
         st->Get(4, sc->cost);
         int16_t pd;
         st->Get(5, pd);
-        sc->payDay = pd;
+        sc->payDay = static_cast<uint8_t>(pd);
         }
     else
         {
@@ -140,7 +140,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddService(const string & name) const
+int FIREBIRD_STORE::AddService(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -168,7 +168,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelService(const string & name) const
+int FIREBIRD_STORE::DelService(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
index 0fd3f2cd367071bb53b9d26f13ac7630f6e0dda4..1d74cf07e29d3f5978f0db3e3c2d415bfad66889 100644 (file)
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetTariffsList(vector<string> * tariffsList) const
+int FIREBIRD_STORE::GetTariffsList(std::vector<std::string> * tariffsList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-string name;
+std::string name;
 
 try
     {
@@ -64,7 +64,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddTariff(const string & name) const
+int FIREBIRD_STORE::AddTariff(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -92,7 +92,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelTariff(const string & name) const
+int FIREBIRD_STORE::DelTariff(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -120,7 +120,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveTariff(const TARIFF_DATA & td,
-                               const string & tariffName) const
+                               const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -228,7 +228,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreTariff(TARIFF_DATA * td,
-                                  const string & tariffName) const
+                                  const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
index aaa44f6bd37c8baf791de04a940a8a94985c3307..8b21907e76c1d58e52824b653b3877099530b3c4 100644 (file)
 #include "stg/ibpp.h"
 
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::GetUsersList(vector<string> * usersList) const
+int FIREBIRD_STORE::GetUsersList(std::vector<std::string> * usersList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr);
 IBPP::Statement st = IBPP::StatementFactory(db, tr);
 
-string name;
+std::string name;
 
 try
     {
@@ -63,7 +63,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::AddUser(const string & name) const
+int FIREBIRD_STORE::AddUser(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -91,7 +91,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::DelUser(const string & login) const
+int FIREBIRD_STORE::DelUser(const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -119,7 +119,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveUserStat(const USER_STAT & stat,
-                                 const string & login) const
+                                 const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -127,7 +127,7 @@ return SaveStat(stat, login);
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveStat(const USER_STAT & stat,
-                                 const string & login,
+                                 const std::string & login,
                                  int year,
                                  int month) const
 {
@@ -227,7 +227,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::SaveUserConf(const USER_CONF & conf,
-                                 const string & login) const
+                                 const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -237,7 +237,7 @@ IBPP::Statement st = IBPP::StatementFactory(db, tr);
 int i;
 int32_t uid;
 IBPP::Timestamp creditExpire;
-vector<string>::const_iterator it;
+std::vector<std::string>::const_iterator it;
 
 try
     {
@@ -359,7 +359,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreUserStat(USER_STAT * stat,
-                                    const string & login) const
+                                    const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -444,7 +444,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int FIREBIRD_STORE::RestoreUserConf(USER_CONF * conf,
-                                    const string & login) const
+                                    const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -455,7 +455,7 @@ int32_t uid;
 int i;
 IBPP::Timestamp timestamp;
 IP_MASK im;
-string name;
+std::string name;
 bool test;
 
 try
@@ -566,13 +566,13 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserChgLog(const string & login,
-                                    const string & admLogin,
+int FIREBIRD_STORE::WriteUserChgLog(const std::string & login,
+                                    const std::string & admLogin,
                                     uint32_t admIP,
-                                    const string & paramName,
-                                    const string & oldValue,
-                                    const string & newValue,
-                                    const string & message = "") const
+                                    const std::string & paramName,
+                                    const std::string & oldValue,
+                                    const std::string & newValue,
+                                    const std::string & message = "") const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -581,7 +581,7 @@ IBPP::Statement st = IBPP::StatementFactory(db, tr);
 IBPP::Timestamp now;
 now.Now();
 
-string temp = ""; // Composed message for log
+std::string temp = ""; // Composed message for log
 
 try
     {
@@ -632,7 +632,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserConnect(const string & login, uint32_t ip) const
+int FIREBIRD_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -662,7 +662,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteUserDisconnect(const string & login,
+int FIREBIRD_STORE::WriteUserDisconnect(const std::string & login,
                     const DIR_TRAFF & up,
                     const DIR_TRAFF & down,
                     const DIR_TRAFF & sessionUp,
@@ -717,9 +717,9 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
+int FIREBIRD_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                       time_t lastStat,
-                                      const string & login) const
+                                      const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -734,7 +734,7 @@ time_t2ts(lastStat, &statTime);
 try
     {
     tr->Start();
-    map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
+    std::map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
     it = statTree.begin();
     st->Prepare("insert into tb_detail_stats \
                     (till_time, from_time, fk_user, dir_num, \
@@ -769,7 +769,7 @@ catch (IBPP::Exception & ex)
 return 0;
 }
 //-----------------------------------------------------------------------------
-int FIREBIRD_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const
+int FIREBIRD_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
index 79ec39e35f8edafb791f709d79ff88886e94592c..b4ac87155a762d5510d4700f624decf959956fd2 100644 (file)
@@ -2,7 +2,6 @@
 #include <cerrno>
 #include <cstdio>
 #include <cstdlib>
-#include <string>
 #include <algorithm>
 
 #include <mysql.h>
 #include "mysql_store.h"
 
 #define adm_enc_passwd "cjeifY8m3"
-char qbuf[4096];
 
-using namespace std;
+namespace
+{
+char qbuf[4096];
 
 const int pt_mega = 1024 * 1024;
-const string badSyms = "'`";
+const std::string badSyms = "'`";
 const char repSym = '\"';
 const int RepitTimes = 3;
 
-int GetInt(const string & str, int * val, int defaultVal)
+template <typename T>
+int GetInt(const std::string & str, T * val, T defaultVal = T())
 {
     char *res;
     
-    *val = strtol(str.c_str(), &res, 10);
+    *val = static_cast<T>(strtoll(str.c_str(), &res, 10));
     
     if (*res != 0) 
     {
@@ -40,7 +41,7 @@ int GetInt(const string & str, int * val, int defaultVal)
     return 0;
 }
 
-int GetDouble(const string & str, double * val, double defaultVal)
+int GetDouble(const std::string & str, double * val, double defaultVal)
 {
     char *res;
     
@@ -55,7 +56,7 @@ int GetDouble(const string & str, double * val, double defaultVal)
     return 0;
 }
 
-int GetTime(const string & str, time_t * val, time_t defaultVal)
+int GetTime(const std::string & str, time_t * val, time_t defaultVal)
 {
     char *res;
     
@@ -71,17 +72,17 @@ int GetTime(const string & str, time_t * val, time_t defaultVal)
 }
 
 //-----------------------------------------------------------------------------
-string ReplaceStr(string source, const string symlist, const char chgsym)
+std::string ReplaceStr(std::string source, const std::string symlist, const char chgsym)
 {
-    string::size_type pos=0;
+    std::string::size_type pos=0;
 
-    while( (pos = source.find_first_of(symlist,pos)) != string::npos)
+    while( (pos = source.find_first_of(symlist,pos)) != std::string::npos)
         source.replace(pos, 1,1, chgsym);
 
     return source;
 }
 
-int GetULongLongInt(const string & str, uint64_t * val, uint64_t defaultVal)
+int GetULongLongInt(const std::string & str, uint64_t * val, uint64_t defaultVal)
 {
     char *res;
     
@@ -97,6 +98,9 @@ int GetULongLongInt(const string & str, uint64_t * val, uint64_t defaultVal)
 } 
 
 PLUGIN_CREATOR<MYSQL_STORE> msc;
+}
+
+extern "C" STORE * GetStore();
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -115,12 +119,12 @@ MYSQL_STORE_SETTINGS::MYSQL_STORE_SETTINGS()
 {
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE_SETTINGS::ParseParam(const vector<PARAM_VALUE> & moduleParams, 
-                        const string & name, string & result)
+int MYSQL_STORE_SETTINGS::ParseParam(const std::vector<PARAM_VALUE> & moduleParams, 
+                        const std::string & name, std::string & result)
 {
 PARAM_VALUE pv;
 pv.param = name;
-vector<PARAM_VALUE>::const_iterator pvi;
+std::vector<PARAM_VALUE>::const_iterator pvi;
 pvi = find(moduleParams.begin(), moduleParams.end(), pv);
 if (pvi == moduleParams.end())
     {
@@ -160,7 +164,7 @@ MYSQL_STORE::MYSQL_STORE()
       settings(),
       logger(GetPluginLogger(GetStgLogger(), "store_mysql"))
 {
-};
+}
 //-----------------------------------------------------------------------------
 int    MYSQL_STORE::MysqlQuery(const char* sQuery,MYSQL * sock) const
 {
@@ -211,7 +215,7 @@ else
     {
          if(mysql_select_db(sock, storeSettings.GetDBName().c_str()))
          {
-             string res = "CREATE DATABASE " + storeSettings.GetDBName();
+             std::string res = "CREATE DATABASE " + storeSettings.GetDBName();
             
             if(MysqlQuery(res.c_str(),sock))
             {
@@ -241,7 +245,7 @@ else
 return ret;
 }
 //-----------------------------------------------------------------------------
-bool MYSQL_STORE::IsTablePresent(const string & str,MYSQL * sock)
+bool MYSQL_STORE::IsTablePresent(const std::string & str,MYSQL * sock)
 {
 MYSQL_RES* result;
 
@@ -253,12 +257,12 @@ if (!(result=mysql_list_tables(sock,str.c_str() )))
     return -1;
 }
 
-unsigned int num_rows =  mysql_num_rows(result);
+my_ulonglong num_rows =  mysql_num_rows(result);
 
 if(result)
     mysql_free_result(result);
 
-return (num_rows == 1);
+return num_rows == 1;
 }
 //-----------------------------------------------------------------------------
 int MYSQL_STORE::CheckAllTables(MYSQL * sock)
@@ -294,7 +298,7 @@ if(!IsTablePresent("admins",sock))
 }
 
 //tariffs-----------------------------------------------------------------------
-string param, res;
+std::string param, res;
 if(!IsTablePresent("tariffs",sock))
 {
     res = "CREATE TABLE tariffs (name VARCHAR(40) DEFAULT '' PRIMARY KEY,";
@@ -523,13 +527,13 @@ return 0;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
-int MYSQL_STORE::GetAllParams(vector<string> * ParamList, 
-                            const string & table, const string & name) const
+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;
-unsigned int num,i;
+my_ulonglong num, i;
     
 ParamList->clear();
     
@@ -554,7 +558,7 @@ if (!(res=mysql_store_result(sock)))
 
 num = mysql_num_rows(res);
 
-for(i=0;i<num;i++)
+for(i = 0; i < num; i++)
 {
     row = mysql_fetch_row(res);    
     ParamList->push_back(row[0]);
@@ -567,7 +571,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::GetUsersList(vector<string> * usersList) const
+int MYSQL_STORE::GetUsersList(std::vector<std::string> * usersList) const
 {
 if(GetAllParams(usersList, "users", "login"))
     return -1;
@@ -575,7 +579,7 @@ if(GetAllParams(usersList, "users", "login"))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::GetAdminsList(vector<string> * adminsList) const
+int MYSQL_STORE::GetAdminsList(std::vector<std::string> * adminsList) const
 {
 if(GetAllParams(adminsList, "admins", "login"))
     return -1;
@@ -583,7 +587,7 @@ if(GetAllParams(adminsList, "admins", "login"))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::GetTariffsList(vector<string> * tariffsList) const
+int MYSQL_STORE::GetTariffsList(std::vector<std::string> * tariffsList) const
 {
 if(GetAllParams(tariffsList, "tariffs", "name"))
     return -1;
@@ -591,7 +595,7 @@ if(GetAllParams(tariffsList, "tariffs", "name"))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::AddUser(const string & login) const
+int MYSQL_STORE::AddUser(const std::string & login) const
 {
 sprintf(qbuf,"INSERT INTO users SET login='%s'", login.c_str());
     
@@ -605,7 +609,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::DelUser(const string & login) const
+int MYSQL_STORE::DelUser(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM users WHERE login='%s' LIMIT 1", login.c_str());
     
@@ -619,12 +623,12 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::RestoreUserConf(USER_CONF * conf, const string & login) const
+int MYSQL_STORE::RestoreUserConf(USER_CONF * conf, const std::string & login) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
-string query;
+std::string query;
 
 query = "SELECT login, Password, Passive, Down, DisabledDetailStat, \
          AlwaysOnline, Tariff, Address, Phone, Email, Note, \
@@ -666,7 +670,7 @@ if (mysql_num_rows(res) != 1)
 
 row = mysql_fetch_row(res);
 
-string param;
+std::string param;
 
 conf->password = row[1];
 
@@ -678,7 +682,7 @@ if (conf->password.empty())
     return -1;
     }
 
-if (GetInt(row[2],&conf->passive, 0) != 0)
+if (GetInt(row[2],&conf->passive) != 0)
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' data not read. Parameter Passive.";
@@ -686,7 +690,7 @@ if (GetInt(row[2],&conf->passive, 0) != 0)
     return -1;
     }
 
-if (GetInt(row[3], &conf->disabled, 0) != 0)
+if (GetInt(row[3], &conf->disabled) != 0)
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' data not read. Parameter Down.";
@@ -694,7 +698,7 @@ if (GetInt(row[3], &conf->disabled, 0) != 0)
     return -1;
     }
 
-if (GetInt(row[4], &conf->disabledDetailStat, 0) != 0)
+if (GetInt(row[4], &conf->disabledDetailStat) != 0)
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' data not read. Parameter DisabledDetailStat.";
@@ -702,7 +706,7 @@ if (GetInt(row[4], &conf->disabledDetailStat, 0) != 0)
     return -1;
     }
 
-if (GetInt(row[5], &conf->alwaysOnline, 0) != 0)
+if (GetInt(row[5], &conf->alwaysOnline) != 0)
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' data not read. Parameter AlwaysOnline.";
@@ -744,13 +748,13 @@ for (int i = 0; i < USERDATA_NUM; i++)
 
 GetTime(row[15+USERDATA_NUM], &conf->creditExpire, 0);
     
-string ipStr = row[16+USERDATA_NUM];
+std::string ipStr = row[16+USERDATA_NUM];
 USER_IPS i;
 try
     {
     i = StrToIPS(ipStr);
     }
-catch (const string & s)
+catch (const std::string & s)
     {
     mysql_free_result(res);
     errorStr = "User \'" + login + "\' data not read. Parameter IP address. " + s;
@@ -765,13 +769,13 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::RestoreUserStat(USER_STAT * stat, const string & login) const
+int MYSQL_STORE::RestoreUserStat(USER_STAT * stat, const std::string & login) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
 
-string query;
+std::string query;
 
 query = "SELECT ";
 
@@ -816,7 +820,7 @@ for (int i = 0; i < DIR_NUM; i++)
     if (GetULongLongInt(row[startPos+i*2], &traff, 0) != 0)
         {
         mysql_free_result(res);
-        errorStr = "User \'" + login + "\' stat not read. Parameter " + string(s);
+        errorStr = "User \'" + login + "\' stat not read. Parameter " + std::string(s);
         mysql_close(sock);
         return -1;
         }
@@ -826,7 +830,7 @@ for (int i = 0; i < DIR_NUM; i++)
     if (GetULongLongInt(row[startPos+i*2+1], &traff, 0) != 0)
         {
         mysql_free_result(res);
-        errorStr =   "User \'" + login + "\' stat not read. Parameter " + string(s);
+        errorStr =   "User \'" + login + "\' stat not read. Parameter " + std::string(s);
         mysql_close(sock);
         return -1;
         }
@@ -888,10 +892,10 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::SaveUserConf(const USER_CONF & conf, const string & login) const
+int MYSQL_STORE::SaveUserConf(const USER_CONF & conf, const std::string & login) const
 {
-string param;
-string res;
+std::string param;
+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', "\
@@ -922,7 +926,7 @@ for (int i = 0; i < USERDATA_NUM; i++)
 strprintf(&param, " CreditExpire=%d,", conf.creditExpire);
 res += param;
 
-stringstream ipStr;
+std::ostringstream ipStr;
 ipStr << conf.ips;
 
 strprintf(&param, " IP='%s'", ipStr.str().c_str());
@@ -941,10 +945,10 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::SaveUserStat(const USER_STAT & stat, const string & login) const
+int MYSQL_STORE::SaveUserStat(const USER_STAT & stat, const std::string & login) const
 {
-string param;
-string res;
+std::string param;
+std::string res;
 
 res = "UPDATE users SET";
 
@@ -981,9 +985,9 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteLogString(const string & str, const string & login) const
+int MYSQL_STORE::WriteLogString(const std::string & str, const std::string & login) const
 {
-string res, tempStr;
+std::string res, tempStr;
 time_t t;
 tm * lt;
 
@@ -1005,7 +1009,7 @@ if (!(result=mysql_list_tables(sock,tempStr.c_str() )))
     return -1;
 }
 
-unsigned int num_rows =  mysql_num_rows(result);
+my_ulonglong num_rows =  mysql_num_rows(result);
 
 mysql_free_result(result);
 
@@ -1025,7 +1029,7 @@ if (num_rows < 1)
 
 strprintf(&res, "%s -- %s",LogDate(t), str.c_str());
 
-string send;
+std::string send;
 
 strprintf(&send,"INSERT INTO logs_%02d_%4d SET login='%s', text='%s'",
         lt->tm_mon+1, lt->tm_year+1900,
@@ -1043,28 +1047,28 @@ return 0;
 
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteUserChgLog(const string & login,
-                                 const string & admLogin,
+int MYSQL_STORE::WriteUserChgLog(const std::string & login,
+                                 const std::string & admLogin,
                                  uint32_t       admIP,
-                                 const string & paramName,
-                                 const string & oldValue,
-                                 const string & newValue,
-                                 const string & message) const
+                                 const std::string & paramName,
+                                 const std::string & oldValue,
+                                 const std::string & newValue,
+                                 const std::string & message) const
 {
-string userLogMsg = "Admin \'" + admLogin + "\', " + inet_ntostring(admIP) + ": \'"
+std::string userLogMsg = "Admin \'" + admLogin + "\', " + inet_ntostring(admIP) + ": \'"
     + paramName + "\' parameter changed from \'" + oldValue +
     "\' to \'" + newValue + "\'. " + message;
 
 return WriteLogString(userLogMsg, login);
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteUserConnect(const string & login, uint32_t ip) const
+int MYSQL_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
 {
-string logStr = "Connect, " + inet_ntostring(ip);
+std::string logStr = "Connect, " + inet_ntostring(ip);
 return WriteLogString(logStr, login);
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteUserDisconnect(const string & login,
+int MYSQL_STORE::WriteUserDisconnect(const std::string & login,
                                      const DIR_TRAFF & up,
                                      const DIR_TRAFF & down,
                                      const DIR_TRAFF & sessionUp,
@@ -1073,12 +1077,12 @@ int MYSQL_STORE::WriteUserDisconnect(const string & login,
                                      double /*freeMb*/,
                                      const std::string & /*reason*/) const
 {
-string logStr = "Disconnect, ";
-stringstream sssu;
-stringstream sssd;
-stringstream ssmu;
-stringstream ssmd;
-stringstream sscash;
+std::string logStr = "Disconnect, ";
+std::ostringstream sssu;
+std::ostringstream sssd;
+std::ostringstream ssmu;
+std::ostringstream ssmd;
+std::ostringstream sscash;
 
 ssmu << up;
 ssmd << down;
@@ -1104,9 +1108,9 @@ return WriteLogString(logStr, login);
 }
 //-----------------------------------------------------------------------------
 int MYSQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, 
-                                const string & login) const
+                                const std::string & login) const
 {
-string param, res;
+std::string param, res;
 
 strprintf(&res, "INSERT INTO stat SET login='%s', month=%d, year=%d,", 
     login.c_str(), month+1, year+1900);
@@ -1133,7 +1137,7 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------*/
-int MYSQL_STORE::AddAdmin(const string & login) const
+int MYSQL_STORE::AddAdmin(const std::string & login) const
 {
 sprintf(qbuf,"INSERT INTO admins SET login='%s'", login.c_str());
     
@@ -1147,7 +1151,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------*/
-int MYSQL_STORE::DelAdmin(const string & login) const
+int MYSQL_STORE::DelAdmin(const std::string & login) const
 {
 sprintf(qbuf,"DELETE FROM admins where login='%s' LIMIT 1", login.c_str());
     
@@ -1208,7 +1212,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::RestoreAdmin(ADMIN_CONF * ac, const string & login) const
+int MYSQL_STORE::RestoreAdmin(ADMIN_CONF * ac, const std::string & login) const
 {
 char pass[ADM_PASSWD_LEN + 1];
 char password[ADM_PASSWD_LEN + 1];
@@ -1219,7 +1223,7 @@ memset(pass, 0, sizeof(pass));
 memset(password, 0, sizeof(password));
 memset(passwordE, 0, sizeof(passwordE));
 
-string p;
+std::string p;
 MYSQL_RES *res;
 MYSQL_ROW row;
 MYSQL * sock;
@@ -1252,7 +1256,6 @@ if ( mysql_num_rows(res) == 0)
 row = mysql_fetch_row(res);
 
 p = row[1];
-int a;
 
 if(p.length() == 0)
 {
@@ -1284,7 +1287,9 @@ else
 
 ac->password = password;
 
-if (GetInt(row[2], &a, 0) == 0) 
+uint16_t a;
+
+if (GetInt(row[2], &a) == 0) 
     ac->priv.userConf = a;
 else
     {
@@ -1294,7 +1299,7 @@ else
     return -1;
     }
 
-if (GetInt(row[3], &a, 0) == 0) 
+if (GetInt(row[3], &a) == 0) 
     ac->priv.userPasswd = a;
 else
     {
@@ -1304,7 +1309,7 @@ else
     return -1;
     }
 
-if (GetInt(row[4], &a, 0) == 0) 
+if (GetInt(row[4], &a) == 0) 
     ac->priv.userStat = a;
 else
     {
@@ -1314,7 +1319,7 @@ else
     return -1;
     }
 
-if (GetInt(row[5], &a, 0) == 0) 
+if (GetInt(row[5], &a) == 0) 
     ac->priv.userCash = a;
 else
     {
@@ -1324,7 +1329,7 @@ else
     return -1;
     }
 
-if (GetInt(row[6], &a, 0) == 0) 
+if (GetInt(row[6], &a) == 0) 
     ac->priv.userAddDel = a;
 else
     {
@@ -1334,7 +1339,7 @@ else
     return -1;
     }
 
-if (GetInt(row[7], &a, 0) == 0) 
+if (GetInt(row[7], &a) == 0) 
     ac->priv.tariffChg = a;
 else
     {
@@ -1344,7 +1349,7 @@ else
     return -1;
     }
 
-if (GetInt(row[8], &a, 0) == 0) 
+if (GetInt(row[8], &a) == 0) 
     ac->priv.adminChg = a;
 else
     {
@@ -1359,7 +1364,7 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::AddTariff(const string & name) const
+int MYSQL_STORE::AddTariff(const std::string & name) const
 {
 sprintf(qbuf,"INSERT INTO tariffs SET name='%s'", name.c_str());
     
@@ -1373,7 +1378,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::DelTariff(const string & name) const
+int MYSQL_STORE::DelTariff(const std::string & name) const
 {
 sprintf(qbuf,"DELETE FROM tariffs WHERE name='%s' LIMIT 1", name.c_str());
     
@@ -1387,7 +1392,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::RestoreTariff(TARIFF_DATA * td, const string & tariffName) const
+int MYSQL_STORE::RestoreTariff(TARIFF_DATA * td, const std::string & tariffName) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
@@ -1410,12 +1415,12 @@ if (!(res=mysql_store_result(sock)))
     return -1;
 }
 
-string str;
+std::string str;
 td->tariffConf.name = tariffName;
 
 row = mysql_fetch_row(res);
 
-string param;
+std::string param;
 for (int i = 0; i<DIR_NUM; i++)
     {
     strprintf(&param, "Time%d", i);
@@ -1475,7 +1480,7 @@ for (int i = 0; i<DIR_NUM; i++)
     td->dirPrice[i].priceNightB /= (1024*1024);
 
     strprintf(&param, "Threshold%d", i);
-    if (GetInt(row[5+i*8], &td->dirPrice[i].threshold, 0) < 0)
+    if (GetInt(row[5+i*8], &td->dirPrice[i].threshold) < 0)
         {
         mysql_free_result(res);
         errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param;
@@ -1484,7 +1489,7 @@ for (int i = 0; i<DIR_NUM; i++)
         }
 
     strprintf(&param, "SinglePrice%d", i);
-    if (GetInt(row[8+i*8], &td->dirPrice[i].singlePrice, 0) < 0)
+    if (GetInt(row[8+i*8], &td->dirPrice[i].singlePrice) < 0)
         {
         mysql_free_result(res);
         errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param;
@@ -1493,7 +1498,7 @@ for (int i = 0; i<DIR_NUM; i++)
         }
 
     strprintf(&param, "NoDiscount%d", i);
-    if (GetInt(row[7+i*8], &td->dirPrice[i].noDiscount, 0) < 0)
+    if (GetInt(row[7+i*8], &td->dirPrice[i].noDiscount) < 0)
         {
         mysql_free_result(res);
         errorStr = "Cannot read tariff " + tariffName + ". Parameter " + param;
@@ -1561,11 +1566,11 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::SaveTariff(const TARIFF_DATA & td, const string & tariffName) const
+int MYSQL_STORE::SaveTariff(const TARIFF_DATA & td, const std::string & tariffName) const
 {
-string param;
+std::string param;
 
-string res="UPDATE tariffs SET";
+std::string res="UPDATE tariffs SET";
 
 for (int i = 0; i < DIR_NUM; i++)
     {
@@ -1589,7 +1594,7 @@ for (int i = 0; i < DIR_NUM; i++)
         td.dirPrice[i].threshold);
     res += param;
 
-    string s;
+    std::string s;
     strprintf(&param, " Time%d", i);
 
     strprintf(&s, "%0d:%0d-%0d:%0d", 
@@ -1646,11 +1651,11 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree, 
+int MYSQL_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree, 
                                    time_t lastStat, 
-                                   const string & login) const
+                                   const std::string & login) const
 {
-string res, stTime, endTime, tempStr;
+std::string res, stTime, endTime, tempStr;
 time_t t;
 tm * lt;
 
@@ -1680,7 +1685,7 @@ if (!(result=mysql_list_tables(sock,tempStr.c_str() )))
     return -1;
 }
 
-unsigned int num_rows =  mysql_num_rows(result);
+my_ulonglong num_rows =  mysql_num_rows(result);
 
 mysql_free_result(result);
 
@@ -1731,7 +1736,7 @@ strprintf(&res,"INSERT INTO detailstat_%02d_%4d SET login='%s',"\
     endTime.c_str()
     );
 
-map<IP_DIR_PAIR, STAT_NODE>::const_iterator stIter;
+std::map<IP_DIR_PAIR, STAT_NODE>::const_iterator stIter;
 stIter = statTree.begin();
 
 while (stIter != statTree.end())
@@ -1762,17 +1767,17 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::AddMessage(STG_MSG * msg, const string & login) const
+int MYSQL_STORE::AddMessage(STG_MSG * msg, const std::string & login) const
 {
 struct timeval tv;
 
 gettimeofday(&tv, NULL);
 
-msg->header.id = ((long long)tv.tv_sec) * 1000000 + ((long long)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", 
     login.c_str(),
-    (long long)msg->header.id
+    static_cast<long long>(msg->header.id)
     );
     
 if(MysqlSetQuery(qbuf))
@@ -1785,9 +1790,9 @@ if(MysqlSetQuery(qbuf))
 return EditMessage(*msg, login);
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::EditMessage(const STG_MSG & msg, const string & login) const
+int MYSQL_STORE::EditMessage(const STG_MSG & msg, const std::string & login) const
 {
-string res;
+std::string res;
 
 strprintf(&res,"UPDATE messages SET type=%d, lastSendTime=%u, creationTime=%u, "\
     "showTime=%u, stgRepeat=%d, repeatPeriod=%u, text='%s' "\
@@ -1800,7 +1805,7 @@ strprintf(&res,"UPDATE messages SET type=%d, lastSendTime=%u, creationTime=%u, "
     msg.header.repeatPeriod,
     (ReplaceStr(msg.text,badSyms,repSym)).c_str(),
     login.c_str(),
-    (long long)msg.header.id
+    msg.header.id
     );
 
 if(MysqlSetQuery(res.c_str()))
@@ -1813,7 +1818,7 @@ if(MysqlSetQuery(res.c_str()))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::GetMessage(uint64_t id, STG_MSG * msg, const string & login) const
+int MYSQL_STORE::GetMessage(uint64_t id, STG_MSG * msg, const std::string & login) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
@@ -1896,10 +1901,10 @@ mysql_close(sock);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::DelMessage(uint64_t id, const 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", 
-    login.c_str(),(long long)id);
+        login.c_str(), static_cast<long long>(id));
     
 if(MysqlSetQuery(qbuf))
 {
@@ -1911,7 +1916,7 @@ if(MysqlSetQuery(qbuf))
 return 0;
 }
 //-----------------------------------------------------------------------------
-int MYSQL_STORE::GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList, const string & login) const
+int MYSQL_STORE::GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList, const std::string & login) const
 {
 MYSQL_RES *res;
 MYSQL_ROW row;
@@ -1934,10 +1939,11 @@ if (!(res=mysql_store_result(sock)))
     return -1;
 }
 
-unsigned int i, num_rows =  mysql_num_rows(res);
-long long int unsigned id = 0;
+unsigned int i;
+my_ulonglong num_rows = mysql_num_rows(res);
+uint64_t id = 0;
 
-for (i=0; i<num_rows; i++)
+for (i = 0; i < num_rows; i++)
 {
     row = mysql_fetch_row(res);
     if (str2x(row[1], id))
index 25cf5a3de62949acc85bbb43a3fa907a0130a4c5..af747c14518662884bbbf27359b22e7b8bff6758 100644 (file)
 #include <mysql/mysql.h>
 
 #include <string>
+#include <vector>
+#include <map>
 
 #include "stg/module_settings.h"
 #include "stg/store.h"
 #include "stg/user_traff.h"
 #include "stg/logger.h"
 
-using namespace std;
-//-----------------------------------------------------------------------------
-extern "C" STORE * GetStore();
 //-----------------------------------------------------------------------------
 class MYSQL_STORE_SETTINGS
 {
@@ -26,12 +25,12 @@ public:
     MYSQL_STORE_SETTINGS();
     virtual ~MYSQL_STORE_SETTINGS() {}
     virtual int ParseSettings(const MODULE_SETTINGS & s);
-    virtual const string & GetStrError() const { return errorStr; }
+    virtual const std::string & GetStrError() const { return errorStr; }
 
-    const string & GetDBUser() const { return dbUser; }
-    const string & GetDBPassword() const { return dbPass; }
-    const string & GetDBHost() const { return dbHost; }
-    const string & GetDBName() const { return dbName; }
+    const std::string & GetDBUser() const { return dbUser; }
+    const std::string & GetDBPassword() const { return dbPass; }
+    const std::string & GetDBHost() const { return dbHost; }
+    const std::string & GetDBName() const { return dbName; }
 
 private:
     MYSQL_STORE_SETTINGS(const MYSQL_STORE_SETTINGS & rvalue);
@@ -39,15 +38,15 @@ private:
 
     const MODULE_SETTINGS * settings;
 
-    int     ParseParam(const vector<PARAM_VALUE> & moduleParams, 
-                       const string & name, string & result);
+    int     ParseParam(const std::vector<PARAM_VALUE> & moduleParams, 
+                       const std::string & name, std::string & result);
 
-    string  errorStr;
+    std::string  errorStr;
 
-    string  dbUser;
-    string  dbPass;
-    string  dbName;
-    string  dbHost;
+    std::string  dbUser;
+    std::string  dbPass;
+    std::string  dbName;
+    std::string  dbHost;
 };
 //-----------------------------------------------------------------------------
 class MYSQL_STORE: public STORE
@@ -55,25 +54,25 @@ class MYSQL_STORE: public STORE
 public:
     MYSQL_STORE();
     virtual ~MYSQL_STORE() {}
-    virtual const string & GetStrError() const { return errorStr; }
+    virtual const std::string & GetStrError() const { return errorStr; }
 
     //User
-    virtual int GetUsersList(vector<string> * usersList) const;
-    virtual int AddUser(const string & login) const;
-    virtual int DelUser(const string & login) const;
-    virtual int SaveUserStat(const USER_STAT & stat, const string & login) const;
-    virtual int SaveUserConf(const USER_CONF & conf, const string & login) const;
-    virtual int RestoreUserStat(USER_STAT * stat, const string & login) const;
-    virtual int RestoreUserConf(USER_CONF * conf, const string & login) const;
-    virtual int WriteUserChgLog(const string & login,
-                                const string & admLogin,
+    virtual int GetUsersList(std::vector<std::string> * usersList) const;
+    virtual int AddUser(const std::string & login) const;
+    virtual int DelUser(const std::string & login) const;
+    virtual int SaveUserStat(const USER_STAT & stat, const std::string & login) const;
+    virtual int SaveUserConf(const USER_CONF & conf, const std::string & login) const;
+    virtual int RestoreUserStat(USER_STAT * stat, const std::string & login) const;
+    virtual int RestoreUserConf(USER_CONF * conf, const std::string & login) const;
+    virtual int WriteUserChgLog(const std::string & login,
+                                const std::string & admLogin,
                                 uint32_t       admIP,
-                                const string & paramName,
-                                const string & oldValue,
-                                const string & newValue,
-                                const string & message = "") const;
-    virtual int WriteUserConnect(const string & login, uint32_t ip) const;
-    virtual int WriteUserDisconnect(const string & login,
+                                const std::string & paramName,
+                                const std::string & oldValue,
+                                const std::string & newValue,
+                                const std::string & message = "") const;
+    virtual int WriteUserConnect(const std::string & login, uint32_t ip) const;
+    virtual int WriteUserDisconnect(const std::string & login,
                                     const DIR_TRAFF & up,
                                     const DIR_TRAFF & down,
                                     const DIR_TRAFF & sessionUp,
@@ -82,64 +81,64 @@ public:
                                     double freeMb,
                                     const std::string & reason) const;
 
-    virtual int WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
+    virtual int WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                   time_t lastStat,
-                                  const string & login) const;
+                                  const std::string & login) const;
 
-    virtual int AddMessage(STG_MSG * msg, const string & login) const;
-    virtual int EditMessage(const STG_MSG & msg, const string & login) const;
-    virtual int GetMessage(uint64_t id, STG_MSG * msg, const string & login) const;
-    virtual int DelMessage(uint64_t id, const string & login) const;
-    virtual int GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList, const string & login) const;
+    virtual int AddMessage(STG_MSG * msg, const std::string & login) const;
+    virtual int EditMessage(const STG_MSG & msg, const std::string & login) const;
+    virtual int GetMessage(uint64_t id, STG_MSG * msg, const std::string & login) const;
+    virtual int DelMessage(uint64_t id, const std::string & login) const;
+    virtual int GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList, const std::string & login) const;
 
-    virtual int SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const;
+    virtual int SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const;
 
     //Admin
-    virtual int GetAdminsList(vector<string> * adminsList) const;
-    virtual int AddAdmin(const string & login) const;
-    virtual int DelAdmin(const string & login) const;
-    virtual int RestoreAdmin(ADMIN_CONF * ac, const string & login) const;
+    virtual int GetAdminsList(std::vector<std::string> * adminsList) const;
+    virtual int AddAdmin(const std::string & login) const;
+    virtual int DelAdmin(const std::string & login) const;
+    virtual int RestoreAdmin(ADMIN_CONF * ac, const std::string & login) const;
     virtual int SaveAdmin(const ADMIN_CONF & ac) const;
 
     //Tariff
-    virtual int GetTariffsList(vector<string> * tariffsList) const;
-    virtual int AddTariff(const string & name) const;
-    virtual int DelTariff(const string & name) const;
-    virtual int SaveTariff(const TARIFF_DATA & td, const string & tariffName) const;
-    virtual int RestoreTariff(TARIFF_DATA * td, const string & tariffName) const;
+    virtual int GetTariffsList(std::vector<std::string> * tariffsList) const;
+    virtual int AddTariff(const std::string & name) const;
+    virtual int DelTariff(const std::string & name) const;
+    virtual int SaveTariff(const TARIFF_DATA & td, const std::string & tariffName) const;
+    virtual int RestoreTariff(TARIFF_DATA * td, const std::string & tariffName) const;
 
     //Corparation
-    virtual int GetCorpsList(vector<string> *) const {return 0;};
-    virtual int SaveCorp(const CORP_CONF &) const {return 0;};
-    virtual int RestoreCorp(CORP_CONF *, const string &) const {return 0;};
-    virtual int AddCorp(const string &) const {return 0;};
-    virtual int DelCorp(const string &) const {return 0;};
+    virtual int GetCorpsList(std::vector<std::string> *) const {return 0;}
+    virtual int SaveCorp(const CORP_CONF &) const {return 0;}
+    virtual int RestoreCorp(CORP_CONF *, const std::string &) const {return 0;}
+    virtual int AddCorp(const std::string &) const {return 0;}
+    virtual int DelCorp(const std::string &) const {return 0;}
 
     // Services
-    virtual int GetServicesList(vector<string> *) const {return 0;};
-    virtual int SaveService(const SERVICE_CONF &) const {return 0;};
-    virtual int RestoreService(SERVICE_CONF *, const string &) const {return 0;};
-    virtual int AddService(const string &) const {return 0;};
-    virtual int DelService(const string &) const {return 0;};
+    virtual int GetServicesList(std::vector<std::string> *) const {return 0;}
+    virtual int SaveService(const SERVICE_CONF &) const {return 0;}
+    virtual int RestoreService(SERVICE_CONF *, const std::string &) const {return 0;}
+    virtual int AddService(const std::string &) const {return 0;}
+    virtual int DelService(const std::string &) const {return 0;}
 
     virtual void            SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     virtual int             ParseSettings();
-    virtual const string &  GetVersion() const { return version; }
+    virtual const std::string &  GetVersion() const { return version; }
 
 private:
     MYSQL_STORE(const MYSQL_STORE & rvalue);
     MYSQL_STORE & operator=(const MYSQL_STORE & rvalue);
 
-    virtual int WriteLogString(const string & str, const string & login) const;
-    int GetAllParams(vector<string> * ParamList, const string & table, const string & name) const;
+    virtual int WriteLogString(const std::string & str, const std::string & login) const;
+    int GetAllParams(std::vector<std::string> * ParamList, const std::string & table, const std::string & name) const;
     int CheckAllTables(MYSQL * sock);
-    bool IsTablePresent(const string & str,MYSQL * sock);
-    mutable string          errorStr;
+    bool IsTablePresent(const std::string & str,MYSQL * sock);
+    mutable std::string          errorStr;
     int                        MysqlQuery(const char* sQuery,MYSQL * sock) const;
     int                     MysqlGetQuery(const char * Query,MYSQL * & sock) const;
     int                     MysqlSetQuery(const char * Query) const;
     MYSQL  *                MysqlConnect() const ;
-    string                  version;
+    std::string                  version;
     MYSQL_STORE_SETTINGS    storeSettings;
     MODULE_SETTINGS         settings;
 
index 7c79baff6b6df487391136caf3356d9f94db4b11..dd2fbbab7a168ed159feff737cf04e63be0f4898 100644 (file)
 #include "postgresql_store_utils.h"
 #include "postgresql_store.h"
 
-PLUGIN_CREATOR<POSTGRESQL_STORE> pqStoreeCreator;
+namespace
+{
+PLUGIN_CREATOR<POSTGRESQL_STORE> pgsc;
+}
+
+extern "C" STORE * GetStore();
 
 //-----------------------------------------------------------------------------
 STORE * GetStore()
 {
-return pqStoreeCreator.GetPlugin();
+return pgsc.GetPlugin();
 }
 
 //-----------------------------------------------------------------------------
@@ -88,7 +93,7 @@ pthread_mutex_destroy(&mutex);
 int POSTGRESQL_STORE::ParseSettings()
 {
 std::vector<PARAM_VALUE>::iterator i;
-string s;
+std::string s;
 
 for(i = settings.moduleParams.begin(); i != settings.moduleParams.end(); ++i)
     {
index a30d3852d97a95ae6ab0078f0c2f2b22ec5fd992..72a2c22c01c951fbd7bed410f12189036456776b 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <string>
 #include <vector>
-#include <map>
 
 #include "stg/store.h"
 #include "stg/logger.h"
@@ -42,8 +41,6 @@
 // Recommended DB version is 6 (support FreeMb logging on disconnects)
 #define DB_MIN_VERSION 5
 
-extern "C" STORE * GetStore();
-
 class POSTGRESQL_STORE : public STORE {
 public:
     POSTGRESQL_STORE();
@@ -97,7 +94,7 @@ public:
     // Tariffs
     int GetTariffsList(std::vector<std::string> * tariffsList) const;
     int AddTariff(const std::string & name) const;
-    int DelTariff(const string & name) const;
+    int DelTariff(const std::string & name) const;
     int SaveTariff(const TARIFF_DATA & td, const std::string & tariffName) const;
     int RestoreTariff(TARIFF_DATA * td, const std::string & tariffName) const;
 
@@ -116,11 +113,11 @@ public:
     int DelService(const std::string & name) const;
 
     // Settings
-    inline void SetSettings(const MODULE_SETTINGS & s) { settings = s; };
+    inline void SetSettings(const MODULE_SETTINGS & s) { settings = s; }
     int ParseSettings();
 
-    inline const string & GetStrError() const { return strError; };
-    inline const string & GetVersion() const { return versionString; };
+    inline const std::string & GetStrError() const { return strError; }
+    inline const std::string & GetVersion() const { return versionString; }
 private:
     POSTGRESQL_STORE(const POSTGRESQL_STORE & rvalue);
     POSTGRESQL_STORE & operator=(const POSTGRESQL_STORE & rvalue);
@@ -131,8 +128,8 @@ private:
 
     int EscapeString(std::string & value) const;
 
-    std::string Int2TS(uint32_t value) const;
-    uint32_t TS2Int(const std::string & value) const;
+    std::string Int2TS(time_t value) const;
+    time_t TS2Int(const std::string & value) const;
 
     int SaveStat(const USER_STAT & stat, const std::string & login, int year = 0, int month = 0) const;
 
@@ -163,6 +160,4 @@ private:
     PLUGIN_LOGGER logger;
 };
 
-extern const volatile time_t stgTime;
-
 #endif //POSTGRESQL_STORE_H
index 5b27cb8034cb7996b5c2cecfc3d76e0fbe85064c..1e9db12dbd3731f05b5f2acfb71f14a6421f06cc 100644 (file)
@@ -134,10 +134,10 @@ for (int i = 0; i < ADM_PASSWD_LEN / 8; i++)
 cryptedPass[ADM_PASSWD_LEN] = 0;
 Encode12(encodedPass, cryptedPass, ADM_PASSWD_LEN);
 
-std::string password = encodedPass;
+std::string pass = encodedPass;
 std::string login = ac.login;
 
-if (EscapeString(password))
+if (EscapeString(pass))
     {
     printfd(__FILE__, "POSTGRESQL_STORE::SaveAdmin(): 'Failed to escape password'\n");
     if (RollbackTransaction())
@@ -159,7 +159,7 @@ if (EscapeString(login))
 
 std::stringstream query;
 query << "UPDATE tb_admins SET "
-          << "passwd = '" << password << "', "
+          << "passwd = '" << pass << "', "
           << "chg_conf = " << ac.priv.userConf << ", "
           << "chg_password = " << ac.priv.userPasswd << ", "
           << "chg_stat = " << ac.priv.userStat << ", "
@@ -195,7 +195,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::RestoreAdmin(ADMIN_CONF * ac, const string & login) const
+int POSTGRESQL_STORE::RestoreAdmin(ADMIN_CONF * ac, const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -234,7 +234,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT login, passwd, \
                  chg_conf, chg_password, chg_stat, \
                  chg_cash, usr_add_del, chg_tariff, \
@@ -316,7 +316,7 @@ ac->password = adminPass;
 return 0;
 }
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddAdmin(const string & login) const
+int POSTGRESQL_STORE::AddAdmin(const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -351,7 +351,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "INSERT INTO tb_admins \
               (login, passwd, \
               chg_conf, chg_password, chg_stat, \
@@ -386,7 +386,7 @@ if (CommitTransaction())
 return 0;
 }
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelAdmin(const string & login) const
+int POSTGRESQL_STORE::DelAdmin(const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -421,7 +421,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_admins WHERE login = '" << elogin << "'";
 
 result = PQexec(connection, query.str().c_str());
index c358a4c5fb7364e0c4f1b9ff9d97e21a96bdef0e..1d33d5b0f85a3ed6fc72430aa2ca412b31ada313 100644 (file)
@@ -36,7 +36,7 @@
 #include "stg/locker.h"
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::GetCorpsList(vector<string> * corpsList) const
+int POSTGRESQL_STORE::GetCorpsList(std::vector<std::string> * corpsList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -127,7 +127,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "UPDATE tb_corporations SET "
           << "cash = " << cc.cash
       << "WHERE name = '" << ename << "'";
@@ -158,7 +158,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::RestoreCorp(CORP_CONF * cc, const string & name) const
+int POSTGRESQL_STORE::RestoreCorp(CORP_CONF * cc, const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -193,7 +193,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT cash FROM tb_corporations WHERE name = '" << ename << "'";
 
 result = PQexec(connection, query.str().c_str());
@@ -241,7 +241,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddCorp(const string & name) const
+int POSTGRESQL_STORE::AddCorp(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -276,7 +276,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "INSERT INTO tb_corporations \
               (name, cash) \
           VALUES \
@@ -308,7 +308,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelCorp(const string & name) const
+int POSTGRESQL_STORE::DelCorp(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -343,7 +343,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_corporations WHERE name = '" << ename << "'";
 
 result = PQexec(connection, query.str().c_str());
index 4260c3b4493551da4c0aef7e674b7c5e11a7839a..bccef5aa4a805ae40e9dc0831cacbead6fa4087c 100644 (file)
@@ -38,7 +38,7 @@
 #include "stg/message.h"
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddMessage(STG_MSG * msg, const string & login) const
+int POSTGRESQL_STORE::AddMessage(STG_MSG * msg, const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -84,7 +84,7 @@ if (EscapeString(etext))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT sp_add_message("
       << "'" << elogin << "', "
       << "CAST(1 AS SMALLINT), " // Here need to be a version, but, it's uninitiated actually
@@ -141,7 +141,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::EditMessage(const STG_MSG & msg,
-                                  const string & login) const
+                                  const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -187,7 +187,7 @@ if (EscapeString(etext))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "UPDATE tb_messages SET "
           << "fk_user = (SELECT pk_user FROM tb_users WHERE name = '" << elogin << "'), "
           << "ver = " << msg.header.ver << ", "
@@ -227,7 +227,7 @@ return 0;
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::GetMessage(uint64_t id,
                                STG_MSG * msg,
-                               const string &) const
+                               const std::string &) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -242,7 +242,7 @@ if (PQstatus(connection) != CONNECTION_OK)
         }
     }
 
-string login;
+std::string login;
 PGresult * result;
 
 if (StartTransaction())
@@ -251,7 +251,7 @@ if (StartTransaction())
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT ver, msg_type, last_send_time, \
                  creation_time, show_time, repeat, \
                  repeat_period, msg_text \
@@ -286,17 +286,10 @@ if (tuples != 1)
     return -1;
     }
 
-/*std::stringstream tuple;
-
-for (int i = 0; i < 8; ++i)
-    {
-    tuple << PQgetvalue(result, 0, i) << " ";
-    }*/
-
 str2x(PQgetvalue(result, 0, 0), msg->header.ver);
 str2x(PQgetvalue(result, 0, 1), msg->header.type);
-msg->header.lastSendTime = TS2Int(PQgetvalue(result, 0, 2));
-msg->header.creationTime = TS2Int(PQgetvalue(result, 0, 3));
+msg->header.lastSendTime = static_cast<unsigned int>(TS2Int(PQgetvalue(result, 0, 2)));
+msg->header.creationTime = static_cast<unsigned int>(TS2Int(PQgetvalue(result, 0, 3)));
 str2x(PQgetvalue(result, 0, 4), msg->header.showTime);
 str2x(PQgetvalue(result, 0, 5), msg->header.repeat);
 str2x(PQgetvalue(result, 0, 6), msg->header.repeatPeriod);
@@ -304,15 +297,6 @@ msg->text = PQgetvalue(result, 0, 7);
 
 PQclear(result);
 
-/*tuple >> msg->header.ver;
-tuple >> msg->header.type;
-tuple >> msg->header.lastSendTime;
-tuple >> msg->header.creationTime;
-tuple >> msg->header.showTime;
-tuple >> msg->header.repeat;
-tuple >> msg->header.repeatPeriod;
-tuple >> msg->text;*/
-
 if (CommitTransaction())
     {
     printfd(__FILE__, "POSTGRESQL_STORE::GetMessage(): 'Failed to commit transaction'\n");
@@ -322,7 +306,7 @@ if (CommitTransaction())
 return 0;
 }
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelMessage(uint64_t id, const string &) const
+int POSTGRESQL_STORE::DelMessage(uint64_t id, const std::string &) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -345,7 +329,7 @@ if (StartTransaction())
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_messages WHERE pk_message = " << id;
 
 result = PQexec(connection, query.str().c_str());
@@ -373,8 +357,8 @@ if (CommitTransaction())
 return 0;
 }
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::GetMessageHdrs(vector<STG_MSG_HDR> * hdrsList,
-                                   const string & login) const
+int POSTGRESQL_STORE::GetMessageHdrs(std::vector<STG_MSG_HDR> * hdrsList,
+                                   const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -409,7 +393,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT pk_message, ver, msg_type, \
                  last_send_time, creation_time, show_time, \
                  repeat, repeat_period \
@@ -441,8 +425,8 @@ for (int i = 0; i < tuples; ++i)
     tuple << PQgetvalue(result, i, 0) << " ";
     tuple << PQgetvalue(result, i, 1) << " ";
     tuple << PQgetvalue(result, i, 2) << " ";
-    header.lastSendTime = TS2Int(PQgetvalue(result, i, 3));
-    header.creationTime = TS2Int(PQgetvalue(result, i, 4));
+    header.lastSendTime = static_cast<unsigned int>(TS2Int(PQgetvalue(result, i, 3)));
+    header.creationTime = static_cast<unsigned int>(TS2Int(PQgetvalue(result, i, 4)));
     tuple << PQgetvalue(result, i, 5) << " ";
     tuple << PQgetvalue(result, i, 6) << " ";
     tuple << PQgetvalue(result, i, 7) << " ";
index b509c0f0202b7fdb88621dc931f744f2385f7f09..825f798261410fec3da02be913c53cdc630adaf0 100644 (file)
@@ -37,7 +37,7 @@
 #include "stg/locker.h"
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::GetServicesList(vector<string> * servicesList) const
+int POSTGRESQL_STORE::GetServicesList(std::vector<std::string> * servicesList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -139,7 +139,7 @@ if (EscapeString(ecomment))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "UPDATE tb_services SET "
           << "comment = '" << ecomment << "', "
           << "cost = " << sc.cost << ", "
@@ -173,7 +173,7 @@ return 0;
 
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::RestoreService(SERVICE_CONF * sc,
-                                   const string & name) const
+                                   const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -208,7 +208,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT comment, cost, pay_day FROM tb_services WHERE name = '" << ename << "'";
 
 result = PQexec(connection, query.str().c_str());
@@ -260,7 +260,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddService(const string & name) const
+int POSTGRESQL_STORE::AddService(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -295,7 +295,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "INSERT INTO tb_services \
               (name, comment, cost, pay_day) \
           VALUES \
@@ -327,7 +327,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelService(const string & name) const
+int POSTGRESQL_STORE::DelService(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -362,7 +362,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_services WHERE name = '" << ename << "'";
 
 result = PQexec(connection, query.str().c_str());
index 7d63b57420cd2f4973f02a29a2413fde10094896..fb8caf9dee0b97b9d9a8a76724bd3f4595ae0301 100644 (file)
@@ -37,7 +37,7 @@
 #include "stg/locker.h"
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::GetTariffsList(vector<string> * tariffsList) const
+int POSTGRESQL_STORE::GetTariffsList(std::vector<std::string> * tariffsList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -93,7 +93,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddTariff(const string & name) const
+int POSTGRESQL_STORE::AddTariff(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -128,7 +128,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT sp_add_tariff('" << ename << "', " << DIR_NUM << ")";
 
 result = PQexec(connection, query.str().c_str());
@@ -156,7 +156,7 @@ if (CommitTransaction())
 return 0;
 }
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelTariff(const string & name) const
+int POSTGRESQL_STORE::DelTariff(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -191,7 +191,7 @@ if (EscapeString(ename))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_tariffs WHERE name = '" << ename << "'";
 
 result = PQexec(connection, query.str().c_str());
@@ -220,7 +220,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::SaveTariff(const TARIFF_DATA & td,
-                                 const string & tariffName) const
+                                 const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -259,10 +259,12 @@ int32_t id, i;
 double pda, pdb, pna, pnb;
 int threshold;
 
-std::stringstream query;
-query << "SELECT pk_tariff FROM tb_tariffs WHERE name = '" << ename << "'";
+    {
+    std::ostringstream query;
+    query << "SELECT pk_tariff FROM tb_tariffs WHERE name = '" << ename << "'";
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -290,22 +292,26 @@ if (tuples != 1)
     return -1;
     }
 
-std::stringstream tuple;
-tuple << PQgetvalue(result, 0, 0);
+    {
+    std::stringstream tuple;
+    tuple << PQgetvalue(result, 0, 0);
 
-PQclear(result);
+    PQclear(result);
 
-tuple >> id;
+    tuple >> id;
+    }
 
-query.str("");
-query << "UPDATE tb_tariffs SET \
-              fee = " << td.tariffConf.fee << ", \
-              free = " << td.tariffConf.free << ", \
-              passive_cost = " << td.tariffConf.passiveCost << ", \
-              traff_type = " << td.tariffConf.traffType << " \
-          WHERE pk_tariff = " << id;
+    {
+    std::ostringstream query;
+    query << "UPDATE tb_tariffs SET \
+                  fee = " << td.tariffConf.fee << ", \
+                  free = " << td.tariffConf.free << ", \
+                  passive_cost = " << td.tariffConf.passiveCost << ", \
+                  traff_type = " << td.tariffConf.traffType << " \
+              WHERE pk_tariff = " << id;
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_COMMAND_OK)
     {
@@ -347,22 +353,24 @@ for(i = 0; i < DIR_NUM; i++)
         threshold = td.dirPrice[i].threshold;
         }
 
-    std::stringstream query;
-    query << "UPDATE tb_tariffs_params SET \
-                  price_day_a = " << pda << ", \
-                  price_day_b = " << pdb << ", \
-                  price_night_a = " << pna << ", \
-                  price_night_b = " << pnb << ", \
-                  threshold = " << threshold << ", \
-                  time_day_begins = CAST('" << td.dirPrice[i].hDay
-                                            << ":"
-                                            << td.dirPrice[i].mDay << "' AS TIME), \
-                  time_day_ends = CAST('" << td.dirPrice[i].hNight
-                                          << ":"
-                                          << td.dirPrice[i].mNight << "' AS TIME) \
-             WHERE fk_tariff = " << id << " AND dir_num = " << i;
-
-    result = PQexec(connection, query.str().c_str());
+        {
+        std::ostringstream query;
+        query << "UPDATE tb_tariffs_params SET \
+                      price_day_a = " << pda << ", \
+                      price_day_b = " << pdb << ", \
+                      price_night_a = " << pna << ", \
+                      price_night_b = " << pnb << ", \
+                      threshold = " << threshold << ", \
+                      time_day_begins = CAST('" << td.dirPrice[i].hDay
+                                                << ":"
+                                                << td.dirPrice[i].mDay << "' AS TIME), \
+                      time_day_ends = CAST('" << td.dirPrice[i].hNight
+                                              << ":"
+                                              << td.dirPrice[i].mNight << "' AS TIME) \
+                 WHERE fk_tariff = " << id << " AND dir_num = " << i;
+
+        result = PQexec(connection, query.str().c_str());
+        }
 
     if (PQresultStatus(result) != PGRES_COMMAND_OK)
         {
@@ -389,7 +397,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::RestoreTariff(TARIFF_DATA * td,
-                                  const string & tariffName) const
+                                  const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -426,7 +434,7 @@ if (EscapeString(ename))
 
 td->tariffConf.name = tariffName;
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT pk_tariff, \
                  fee, \
                 free, \
@@ -462,19 +470,22 @@ if (tuples != 1)
     return -1;
     }
 
-std::stringstream tuple;
-tuple << PQgetvalue(result, 0, 0) << " ";
-tuple << PQgetvalue(result, 0, 1) << " ";
-tuple << PQgetvalue(result, 0, 2) << " ";
-tuple << PQgetvalue(result, 0, 3) << " ";
-tuple << PQgetvalue(result, 0, 4) << " ";
-
 int id;
-tuple >> id;
-tuple >> td->tariffConf.fee;
-tuple >> td->tariffConf.free;
-tuple >> td->tariffConf.passiveCost;
-tuple >> td->tariffConf.traffType;
+
+    {
+    std::stringstream tuple;
+    tuple << PQgetvalue(result, 0, 0) << " ";
+    tuple << PQgetvalue(result, 0, 1) << " ";
+    tuple << PQgetvalue(result, 0, 2) << " ";
+    tuple << PQgetvalue(result, 0, 3) << " ";
+    tuple << PQgetvalue(result, 0, 4) << " ";
+
+    tuple >> id;
+    tuple >> td->tariffConf.fee;
+    tuple >> td->tariffConf.free;
+    tuple >> td->tariffConf.passiveCost;
+    tuple >> td->tariffConf.traffType;
+    }
 
 PQclear(result);
 
@@ -515,34 +526,36 @@ if (tuples != DIR_NUM)
 
 for (int i = 0; i < std::min(tuples, DIR_NUM); ++i)
     {
-    std::stringstream tuple;
-    tuple << PQgetvalue(result, i, 0) << " ";
-    tuple << PQgetvalue(result, i, 1) << " ";
-    tuple << PQgetvalue(result, i, 2) << " ";
-    tuple << PQgetvalue(result, i, 3) << " ";
-    tuple << PQgetvalue(result, i, 4) << " ";
-    tuple << PQgetvalue(result, i, 5) << " ";
-    tuple << PQgetvalue(result, i, 6) << " ";
-    tuple << PQgetvalue(result, i, 7) << " ";
-    tuple << PQgetvalue(result, i, 8) << " ";
-    tuple << PQgetvalue(result, i, 9) << " ";
-
     int dir;
 
-    tuple >> dir;
-    tuple >> td->dirPrice[dir].priceDayA;
-    td->dirPrice[dir].priceDayA /= 1024 * 1024;
-    tuple >> td->dirPrice[dir].priceDayB;
-    td->dirPrice[dir].priceDayB /= 1024 * 1024;
-    tuple >> td->dirPrice[dir].priceNightA;
-    td->dirPrice[dir].priceNightA /= 1024 * 1024;
-    tuple >> td->dirPrice[dir].priceNightB;
-    td->dirPrice[dir].priceNightB /= 1024 * 1024;
-    tuple >> td->dirPrice[dir].threshold;
-    tuple >> td->dirPrice[dir].hDay;
-    tuple >> td->dirPrice[dir].mDay;
-    tuple >> td->dirPrice[dir].hNight;
-    tuple >> td->dirPrice[dir].mNight;
+        {
+        std::stringstream tuple;
+        tuple << PQgetvalue(result, i, 0) << " ";
+        tuple << PQgetvalue(result, i, 1) << " ";
+        tuple << PQgetvalue(result, i, 2) << " ";
+        tuple << PQgetvalue(result, i, 3) << " ";
+        tuple << PQgetvalue(result, i, 4) << " ";
+        tuple << PQgetvalue(result, i, 5) << " ";
+        tuple << PQgetvalue(result, i, 6) << " ";
+        tuple << PQgetvalue(result, i, 7) << " ";
+        tuple << PQgetvalue(result, i, 8) << " ";
+        tuple << PQgetvalue(result, i, 9) << " ";
+
+        tuple >> dir;
+        tuple >> td->dirPrice[dir].priceDayA;
+        td->dirPrice[dir].priceDayA /= 1024 * 1024;
+        tuple >> td->dirPrice[dir].priceDayB;
+        td->dirPrice[dir].priceDayB /= 1024 * 1024;
+        tuple >> td->dirPrice[dir].priceNightA;
+        td->dirPrice[dir].priceNightA /= 1024 * 1024;
+        tuple >> td->dirPrice[dir].priceNightB;
+        td->dirPrice[dir].priceNightB /= 1024 * 1024;
+        tuple >> td->dirPrice[dir].threshold;
+        tuple >> td->dirPrice[dir].hDay;
+        tuple >> td->dirPrice[dir].mDay;
+        tuple >> td->dirPrice[dir].hNight;
+        tuple >> td->dirPrice[dir].mNight;
+        }
 
     if (std::fabs(td->dirPrice[dir].priceDayA - td->dirPrice[dir].priceNightA) > 1.0e-3 &&
         std::fabs(td->dirPrice[dir].priceDayB - td->dirPrice[dir].priceNightB) > 1.0e-3)
index 11c757f263b13043bda75dc54280fda34b3618b8..4cd64418e9d3f370263e2d1553f13073da07c29b 100644 (file)
@@ -39,7 +39,7 @@
 #include "postgresql_store.h"
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::GetUsersList(vector<string> * usersList) const
+int POSTGRESQL_STORE::GetUsersList(std::vector<std::string> * usersList) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -95,7 +95,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::AddUser(const string & name) const
+int POSTGRESQL_STORE::AddUser(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -130,7 +130,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT sp_add_user('" << elogin << "')";
 
 result = PQexec(connection, query.str().c_str());
@@ -159,7 +159,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::DelUser(const string & login) const
+int POSTGRESQL_STORE::DelUser(const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -194,7 +194,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "DELETE FROM tb_users WHERE name = '" << elogin << "'";
 
 result = PQexec(connection, query.str().c_str());
@@ -223,7 +223,7 @@ return 0;
 }
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::SaveUserStat(const USER_STAT & stat,
-                                   const string & login) const
+                                   const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -231,7 +231,7 @@ return SaveStat(stat, login);
 }
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::SaveStat(const USER_STAT & stat,
-                               const string & login,
+                               const std::string & login,
                                int year,
                                int month) const
 {
@@ -266,7 +266,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "UPDATE tb_users SET "
             "cash = " << stat.cash << ", "
             "free_mb = " << stat.freeMb << ", "
@@ -334,7 +334,7 @@ return 0;
 
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::SaveUserConf(const USER_CONF & conf,
-                                 const string & login) const
+                                 const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -369,7 +369,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT pk_user FROM tb_users WHERE name = '" << elogin << "'";
 
 result = PQexec(connection, query.str().c_str());
@@ -400,14 +400,16 @@ if (tuples != 1)
     return -1;
     }
 
-std::stringstream tuple;
-tuple << PQgetvalue(result, 0, 0);
+uint32_t uid;
 
-PQclear(result);
+    {
+    std::stringstream tuple;
+    tuple << PQgetvalue(result, 0, 0);
 
-uint32_t uid;
+    PQclear(result);
 
-tuple >> uid;
+    tuple >> uid;
+    }
 
 std::string eaddress = conf.address;
 std::string eemail = conf.email;
@@ -603,7 +605,7 @@ return 0;
 
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::RestoreUserStat(USER_STAT * stat,
-                                    const string & login) const
+                                    const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -638,14 +640,16 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
-query << "SELECT cash, free_mb, "
-            "last_activity_time, last_cash_add, "
-            "last_cash_add_time, passive_time "
-         "FROM tb_users "
-         "WHERE name = '" << elogin << "'";
+    {
+    std::ostringstream query;
+    query << "SELECT cash, free_mb, "
+                "last_activity_time, last_cash_add, "
+                "last_cash_add_time, passive_time "
+             "FROM tb_users "
+             "WHERE name = '" << elogin << "'";
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -673,29 +677,32 @@ if (tuples != 1)
     return -1;
     }
 
-std::stringstream tuple;
-tuple << PQgetvalue(result, 0, 0) << " ";
-tuple << PQgetvalue(result, 0, 1) << " ";
-stat->lastActivityTime = TS2Int(PQgetvalue(result, 0, 2));
-tuple << PQgetvalue(result, 0, 3) << " ";
-stat->lastCashAddTime = TS2Int(PQgetvalue(result, 0, 4));
-tuple << PQgetvalue(result, 0, 5) << " ";
-
-PQclear(result);
+    {
+    std::stringstream tuple;
+    tuple << PQgetvalue(result, 0, 0) << " ";
+    tuple << PQgetvalue(result, 0, 1) << " ";
+    stat->lastActivityTime = TS2Int(PQgetvalue(result, 0, 2));
+    tuple << PQgetvalue(result, 0, 3) << " ";
+    stat->lastCashAddTime = TS2Int(PQgetvalue(result, 0, 4));
+    tuple << PQgetvalue(result, 0, 5) << " ";
 
-tuple >> stat->cash
-      >> stat->freeMb
-      >> stat->lastCashAdd
-      >> stat->passiveTime;
+    PQclear(result);
 
-query.str("");
+    tuple >> stat->cash
+          >> stat->freeMb
+          >> stat->lastCashAdd
+          >> stat->passiveTime;
+    }
 
-query << "SELECT dir_num, upload, download "
-         "FROM tb_stats_traffic "
-         "WHERE fk_user IN (SELECT pk_user FROM tb_users WHERE name = '" << elogin << "') AND "
-               "DATE_TRUNC('month', stats_date) = DATE_TRUNC('month', CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP))";
+    {
+    std::ostringstream query;
+    query << "SELECT dir_num, upload, download "
+             "FROM tb_stats_traffic "
+             "WHERE fk_user IN (SELECT pk_user FROM tb_users WHERE name = '" << elogin << "') AND "
+                   "DATE_TRUNC('month', stats_date) = DATE_TRUNC('month', CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP))";
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -738,7 +745,7 @@ return 0;
 
 //-----------------------------------------------------------------------------
 int POSTGRESQL_STORE::RestoreUserConf(USER_CONF * conf,
-                                    const string & login) const
+                                    const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -773,21 +780,23 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
-query << "SELECT tb_users.pk_user, tb_users.address, tb_users.always_online, "
-                "tb_users.credit, tb_users.credit_expire, tb_users.disabled, "
-                "tb_users.disabled_detail_stat, tb_users.email, tb_users.grp, "
-                "tb_users.note, tb_users.passive, tb_users.passwd, tb_users.phone, "
-                "tb_users.real_name, tf1.name, tf2.name, tb_corporations.name "
-         "FROM tb_users LEFT JOIN tb_tariffs AS tf1 "
-                            "ON tf1.pk_tariff = tb_users.fk_tariff "
-                       "LEFT JOIN tb_tariffs AS tf2 "
-                            "ON tf2.pk_tariff = tb_users.fk_tariff_change "
-                       "LEFT JOIN tb_corporations "
-                            "ON tb_corporations.pk_corporation = tb_users.fk_corporation "
-         "WHERE tb_users.name = '" << elogin << "'";
+    {
+    std::ostringstream query;
+    query << "SELECT tb_users.pk_user, tb_users.address, tb_users.always_online, "
+                    "tb_users.credit, tb_users.credit_expire, tb_users.disabled, "
+                    "tb_users.disabled_detail_stat, tb_users.email, tb_users.grp, "
+                    "tb_users.note, tb_users.passive, tb_users.passwd, tb_users.phone, "
+                    "tb_users.real_name, tf1.name, tf2.name, tb_corporations.name "
+             "FROM tb_users LEFT JOIN tb_tariffs AS tf1 "
+                                "ON tf1.pk_tariff = tb_users.fk_tariff "
+                           "LEFT JOIN tb_tariffs AS tf2 "
+                                "ON tf2.pk_tariff = tb_users.fk_tariff_change "
+                           "LEFT JOIN tb_corporations "
+                                "ON tb_corporations.pk_corporation = tb_users.fk_corporation "
+             "WHERE tb_users.name = '" << elogin << "'";
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -817,43 +826,46 @@ if (tuples != 1)
 
 uint32_t uid;
 
-std::stringstream tuple;
-
-tuple << PQgetvalue(result, 0, 0) << " ";               // uid
-conf->address = PQgetvalue(result, 0, 1);               // address
-conf->alwaysOnline = !strncmp(PQgetvalue(result, 0, 2), "t", 1);
-tuple << PQgetvalue(result, 0, 3) << " ";               // credit
-conf->creditExpire = TS2Int(PQgetvalue(result, 0, 4));  // creditExpire
-conf->disabled = !strncmp(PQgetvalue(result, 0, 5), "t", 1);
-conf->disabledDetailStat = !strncmp(PQgetvalue(result, 0, 6), "t", 1);
-conf->email = PQgetvalue(result, 0, 7);                 // email
-conf->group = PQgetvalue(result, 0, 8);                 // group
-conf->note = PQgetvalue(result, 0, 9);                  // note
-conf->passive = !strncmp(PQgetvalue(result, 0, 10), "t", 1);
-conf->password = PQgetvalue(result, 0, 11);             // password
-conf->phone = PQgetvalue(result, 0, 12);                // phone
-conf->realName = PQgetvalue(result, 0, 13);             // realName
-conf->tariffName = PQgetvalue(result, 0, 14);           // tariffName
-conf->nextTariff = PQgetvalue(result, 0, 15);           // nextTariff
-conf->corp = PQgetvalue(result, 0, 16);                 // corp
+    {
+    std::stringstream tuple;
+    tuple << PQgetvalue(result, 0, 0) << " ";               // uid
+    conf->address = PQgetvalue(result, 0, 1);               // address
+    conf->alwaysOnline = !strncmp(PQgetvalue(result, 0, 2), "t", 1);
+    tuple << PQgetvalue(result, 0, 3) << " ";               // credit
+    conf->creditExpire = TS2Int(PQgetvalue(result, 0, 4));  // creditExpire
+    conf->disabled = !strncmp(PQgetvalue(result, 0, 5), "t", 1);
+    conf->disabledDetailStat = !strncmp(PQgetvalue(result, 0, 6), "t", 1);
+    conf->email = PQgetvalue(result, 0, 7);                 // email
+    conf->group = PQgetvalue(result, 0, 8);                 // group
+    conf->note = PQgetvalue(result, 0, 9);                  // note
+    conf->passive = !strncmp(PQgetvalue(result, 0, 10), "t", 1);
+    conf->password = PQgetvalue(result, 0, 11);             // password
+    conf->phone = PQgetvalue(result, 0, 12);                // phone
+    conf->realName = PQgetvalue(result, 0, 13);             // realName
+    conf->tariffName = PQgetvalue(result, 0, 14);           // tariffName
+    conf->nextTariff = PQgetvalue(result, 0, 15);           // nextTariff
+    conf->corp = PQgetvalue(result, 0, 16);                 // corp
 
-PQclear(result);
+    PQclear(result);
 
-if (conf->tariffName == "")
-    conf->tariffName = NO_TARIFF_NAME;
-if (conf->corp == "")
-    conf->corp = NO_CORP_NAME;
+    if (conf->tariffName == "")
+        conf->tariffName = NO_TARIFF_NAME;
+    if (conf->corp == "")
+        conf->corp = NO_CORP_NAME;
 
-tuple >> uid
-      >> conf->credit;
+    tuple >> uid
+          >> conf->credit;
+    }
 
-query.str("");
-query << "SELECT name FROM tb_services "
-         "WHERE pk_service IN (SELECT fk_service "
-                              "FROM tb_users_services "
-                              "WHERE fk_user = " << uid << ")";
+    {
+    std::ostringstream query;
+    query << "SELECT name FROM tb_services "
+             "WHERE pk_service IN (SELECT fk_service "
+                                  "FROM tb_users_services "
+                                  "WHERE fk_user = " << uid << ")";
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -876,12 +888,14 @@ for (int i = 0; i < tuples; ++i)
 
 PQclear(result);
 
-query.str("");
-query << "SELECT num, data "
-         "FROM tb_users_data "
-         "WHERE fk_user = " << uid;
+    {
+    std::ostringstream query;
+    query << "SELECT num, data "
+             "FROM tb_users_data "
+             "WHERE fk_user = " << uid;
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -916,12 +930,14 @@ for (int i = 0; i < tuples; ++i)
 
 PQclear(result);
 
-query.str("");
-query << "SELECT host(ip), masklen(ip) "
-         "FROM tb_allowed_ip "
-         "WHERE fk_user = " << uid;
+    {
+    std::ostringstream query;
+    query << "SELECT host(ip), masklen(ip) "
+             "FROM tb_allowed_ip "
+             "WHERE fk_user = " << uid;
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -970,13 +986,13 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::WriteUserChgLog(const string & login,
-                                    const string & admLogin,
+int POSTGRESQL_STORE::WriteUserChgLog(const std::string & login,
+                                    const std::string & admLogin,
                                     uint32_t admIP,
-                                    const string & paramName,
-                                    const string & oldValue,
-                                    const string & newValue,
-                                    const string & message = "") const
+                                    const std::string & paramName,
+                                    const std::string & oldValue,
+                                    const std::string & newValue,
+                                    const std::string & message = "") const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -1056,7 +1072,7 @@ if (EscapeString(enew))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 query << "SELECT sp_add_param_log_entry("
             "'" << elogin << "', "
             "'" << eadminLogin << "', CAST('"
@@ -1093,7 +1109,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::WriteUserConnect(const string & login, uint32_t ip) const
+int POSTGRESQL_STORE::WriteUserConnect(const std::string & login, uint32_t ip) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -1128,7 +1144,7 @@ if (EscapeString(elogin))
     return -1;
     }
 
-std::stringstream query;
+std::ostringstream query;
 if (version < 6)
     {
     query << "SELECT sp_add_session_log_entry("
@@ -1172,7 +1188,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::WriteUserDisconnect(const string & login,
+int POSTGRESQL_STORE::WriteUserDisconnect(const std::string & login,
                     const DIR_TRAFF & up,
                     const DIR_TRAFF & down,
                     const DIR_TRAFF & sessionUp,
@@ -1226,26 +1242,28 @@ if (EscapeString(ereason))
     return -1;
     }
 
-std::stringstream query;
-if (version < 6)
     {
-    // Old database version - no freeMb logging support
-    query << "SELECT sp_add_session_log_entry("
-                "'" << elogin << "', "
-                "CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP), "
-                "'d', CAST('0.0.0.0/0' AS INET), "
-                << cash << ")";
-    }
-else
-    {
-    query << "SELECT sp_add_session_log_entry("
-                "'" << elogin << "', "
-                "CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP), "
-                "'d', CAST('0.0.0.0/0' AS INET), "
-                << cash << ", " << freeMb << ", '" << ereason << "')";
-    }
+    std::ostringstream query;
+    if (version < 6)
+        {
+        // Old database version - no freeMb logging support
+        query << "SELECT sp_add_session_log_entry("
+                    "'" << elogin << "', "
+                    "CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP), "
+                    "'d', CAST('0.0.0.0/0' AS INET), "
+                    << cash << ")";
+        }
+    else
+        {
+        query << "SELECT sp_add_session_log_entry("
+                    "'" << elogin << "', "
+                    "CAST('" << Int2TS(stgTime) << "' AS TIMESTAMP), "
+                    "'d', CAST('0.0.0.0/0' AS INET), "
+                    << cash << ", " << freeMb << ", '" << ereason << "')";
+        }
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_TUPLES_OK)
     {
@@ -1291,7 +1309,7 @@ PQclear(result);
 
 for (int i = 0; i < DIR_NUM; ++i)
     {
-    std::stringstream query;
+    std::ostringstream query;
     query << "INSERT INTO tb_sessions_data "
                 "(fk_session_log, "
                  "dir_num, "
@@ -1334,9 +1352,9 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::WriteDetailedStat(const map<IP_DIR_PAIR, STAT_NODE> & statTree,
+int POSTGRESQL_STORE::WriteDetailedStat(const std::map<IP_DIR_PAIR, STAT_NODE> & statTree,
                                       time_t lastStat,
-                                      const string & login) const
+                                      const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -1371,12 +1389,12 @@ if (EscapeString(elogin))
     return -1;
     }
 
-map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
+std::map<IP_DIR_PAIR, STAT_NODE>::const_iterator it;
 time_t currTime = time(NULL);
 
 for (it = statTree.begin(); it != statTree.end(); ++it)
     {
-    std::stringstream query;
+    std::ostringstream query;
     query << "INSERT INTO tb_detail_stats "
                 "(till_time, from_time, fk_user, "
                  "dir_num, ip, download, upload, cost) "
@@ -1417,7 +1435,7 @@ return 0;
 }
 
 //-----------------------------------------------------------------------------
-int POSTGRESQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const string & login) const
+int POSTGRESQL_STORE::SaveMonthStat(const USER_STAT & stat, int month, int year, const std::string & login) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
@@ -1430,21 +1448,23 @@ int POSTGRESQL_STORE::SaveUserServices(uint32_t uid,
 {
 PGresult * result;
 
-std::stringstream query;
-query << "DELETE FROM tb_users_services WHERE fk_user = " << uid;
+    {
+    std::ostringstream query;
+    query << "DELETE FROM tb_users_services WHERE fk_user = " << uid;
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+
+    if (PQresultStatus(result) != PGRES_COMMAND_OK)
+        {
+        strError = PQresultErrorMessage(result);
+        PQclear(result);
+        printfd(__FILE__, "POSTGRESQL_STORE::SaveUserServices(): '%s'\n", strError.c_str());
+        return -1;
+        }
 
-if (PQresultStatus(result) != PGRES_COMMAND_OK)
-    {
-    strError = PQresultErrorMessage(result);
     PQclear(result);
-    printfd(__FILE__, "POSTGRESQL_STORE::SaveUserServices(): '%s'\n", strError.c_str());
-    return -1;
     }
 
-PQclear(result);
-
 std::vector<std::string>::const_iterator it;
 
 for (it = services.begin(); it != services.end(); ++it)
@@ -1457,7 +1477,7 @@ for (it = services.begin(); it != services.end(); ++it)
         return -1;
         }
 
-    std::stringstream query;
+    std::ostringstream query;
     query << "INSERT INTO tb_users_services "
                 "(fk_user, fk_service) "
              "VALUES "
@@ -1488,10 +1508,12 @@ int POSTGRESQL_STORE::SaveUserIPs(uint32_t uid,
 {
 PGresult * result;
 
-std::stringstream query;
-query << "DELETE FROM tb_allowed_ip WHERE fk_user = " << uid;
+    {
+    std::ostringstream query;
+    query << "DELETE FROM tb_allowed_ip WHERE fk_user = " << uid;
 
-result = PQexec(connection, query.str().c_str());
+    result = PQexec(connection, query.str().c_str());
+    }
 
 if (PQresultStatus(result) != PGRES_COMMAND_OK)
     {
@@ -1505,7 +1527,7 @@ PQclear(result);
 
 for (int i = 0; i < ips.Count(); ++i)
     {
-    std::stringstream query;
+    std::ostringstream query;
     query << "INSERT INTO tb_allowed_ip "
                 "(fk_user, ip) "
              "VALUES "
@@ -1545,7 +1567,7 @@ for (unsigned i = 0; i < data.size(); ++i)
 
     PGresult * result;
 
-    std::stringstream query;
+    std::ostringstream query;
     query << "SELECT sp_set_user_data("
                 << uid << ", "
                 << "CAST(" << i << " AS SMALLINT), "
index c36df0cd02efa1600ee39f032315f6c970585abe..f5dec89ff5ec223159423d3cabe3d2846157ed6e 100644 (file)
@@ -34,6 +34,8 @@
 #include "stg/common.h"
 #include "postgresql_store.h"
 
+extern volatile time_t stgTime;
+
 int POSTGRESQL_STORE::StartTransaction() const
 {
 PGresult * result = PQexec(connection, "BEGIN");
@@ -110,24 +112,23 @@ delete[] buf;
 return 0;
 }
 
-std::string POSTGRESQL_STORE::Int2TS(uint32_t ts) const
+std::string POSTGRESQL_STORE::Int2TS(time_t ts) const
 {
 char buf[32];
 struct tm brokenTime;
-time_t tt = ts;
 
 brokenTime.tm_wday = 0;
 brokenTime.tm_yday = 0;
 brokenTime.tm_isdst = 0;
 
-gmtime_r(&tt, &brokenTime);
+gmtime_r(&ts, &brokenTime);
 
 strftime(buf, 32, "%Y-%m-%d %H:%M:%S", &brokenTime);
 
 return buf;
 }
 
-uint32_t POSTGRESQL_STORE::TS2Int(const std::string & ts) const
+time_t POSTGRESQL_STORE::TS2Int(const std::string & ts) const
 {
 struct tm brokenTime;
 
index e09cccd24ece285531ba2222b2cf64889aecf65b..4ffa6ecfa708b046bc1b00a8b5fd27563d15de62 100644 (file)
@@ -5,7 +5,7 @@
 
 struct ToLower : public std::unary_function<char, char>
 {
-char operator() (char c) const  { return std::tolower(c); }
+char operator() (char c) const  { return static_cast<char>(std::tolower(c)); }
 };
 
 #endif
index 85b0f4e51105f0cf01bea9dddcb7da40aa560626..832bf7e9ed54356313beb197670282481f3e67e6 100644 (file)
@@ -48,7 +48,7 @@ const PRIV * priv = admin->GetPriv();
 
 if (!priv->serviceChg)
     {
-    string s = admin->GetLogStr() + " Add service \'" + service.name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Add service \'" + service.name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -79,14 +79,14 @@ WriteServLog("%s %s", admin->GetLogStr().c_str(), strError.c_str());
 return -1;
 }
 //-----------------------------------------------------------------------------
-int SERVICES_IMPL::Del(const string & name, const ADMIN * admin)
+int SERVICES_IMPL::Del(const std::string & name, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 const PRIV * priv = admin->GetPriv();
 
 if (!priv->serviceChg)
     {
-    string s = admin->GetLogStr() + " Delete service \'" + name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Delete service \'" + name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -101,7 +101,7 @@ if (si == data.end())
     return -1;
     }
 
-map<int, const_srv_iter>::iterator csi;
+std::map<int, const_srv_iter>::iterator csi;
 csi = searchDescriptors.begin();
 while (csi != searchDescriptors.end())
     {
@@ -130,7 +130,7 @@ const PRIV * priv = admin->GetPriv();
 
 if (!priv->serviceChg)
     {
-    string s = admin->GetLogStr() + " Change service \'" + service.name + "\'. Access denied.";
+    std::string s = admin->GetLogStr() + " Change service \'" + service.name + "\'. Access denied.";
     strError = "Access denied.";
     WriteServLog(s.c_str());
     return -1;
@@ -162,7 +162,7 @@ return 0;
 bool SERVICES_IMPL::Read()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-vector<string> servicesList;
+std::vector<std::string> servicesList;
 if (store->GetServicesList(&servicesList) < 0)
     {
     WriteServLog(store->GetStrError().c_str());
@@ -184,7 +184,7 @@ for (size_t i = 0; i < servicesList.size(); i++)
 return false;
 }
 //-----------------------------------------------------------------------------
-bool SERVICES_IMPL::Find(const string & name, SERVICE_CONF * service)
+bool SERVICES_IMPL::Find(const std::string & name, SERVICE_CONF * service)
 {
 assert(service != NULL && "Pointer to service is not null");
 
@@ -203,7 +203,7 @@ if (si != data.end())
 return true;
 }
 //-----------------------------------------------------------------------------
-bool SERVICES_IMPL::Exists(const string & name) const
+bool SERVICES_IMPL::Exists(const std::string & name) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 if (data.empty())
index 2bb9c8797c44a8d00f5c5b536f37436053e84913..31aa72b2ed612e43e1bb8aeb383233d5bc873811 100644 (file)
@@ -58,8 +58,8 @@ private:
     SERVICES_IMPL(const SERVICES_IMPL & rvalue);
     SERVICES_IMPL & operator=(const SERVICES_IMPL & rvalue);
 
-    typedef list<SERVICE_CONF>::iterator       srv_iter;
-    typedef list<SERVICE_CONF>::const_iterator const_srv_iter;
+    typedef std::list<SERVICE_CONF>::iterator       srv_iter;
+    typedef std::list<SERVICE_CONF>::const_iterator const_srv_iter;
 
     bool Read();
 
index 739bbcc946cc273c9d85c9f54fcb0a4f7d77e0a6..4a048333a4a5049ead5a6a19b19e10b77f797dd0 100644 (file)
@@ -85,7 +85,7 @@ public:
     bool                GetFreeMbAllowInet() const { return freeMbAllowInet; }
     bool                GetDayFeeIsLastDay() const { return dayFeeIsLastDay; }
     bool                GetWriteFreeMbTraffCost() const
-        { return writeFreeMbTraffCost; };
+        { return writeFreeMbTraffCost; }
     bool                GetShowFeeInCash() const { return showFeeInCash; }
     const std::string & GetMonitorDir() const { return monitorDir; }
     bool                GetMonitoring() const { return monitoring; }
index 235c669e0df09dcea32c31d94e9b5347932b88ff..81128c7a776a867dcf5f8f0f7d2c7c8d1b0c0d8c 100644 (file)
@@ -6,6 +6,10 @@
 
 #include "stg/common.h"
 
+#include "stg_timer.h"
+
+void * StgTimer(void *);
+
 static int nonstop;
 static pthread_t thrStgTimer;
 static bool isTimerRunning = false;
@@ -88,7 +92,7 @@ static int a = 0;
 isTimerRunning = false;
 
 if (a == 0)
-    if (pthread_create(&thrStgTimer, NULL, StgTimer, NULL))
+    if (pthread_create(&thrStgTimer, NULL, &StgTimer, NULL))
         {
         isTimerRunning = false;
         return -1;
@@ -113,10 +117,10 @@ return isTimerRunning;
 int stgUsleep(unsigned long t)
 {
 #ifdef STG_TIMER_DEBUG
-struct timespec ts = {(t / TIME_SPEED) / 1000000, ((t / TIME_SPEED) % 1000000) * 1000};
+struct timespec ts = {static_cast<time_t>((t / TIME_SPEED) / 1000000), static_cast<long>(((t / TIME_SPEED) % 1000000) * 1000)};
 return nanosleep(&ts, NULL);
 #else
-struct timespec ts = {t / 1000000, (t % 1000000) * 1000};
+struct timespec ts = {static_cast<time_t>(t / 1000000), static_cast<long>((t % 1000000) * 1000)};
 return nanosleep(&ts, NULL);
 #endif
 }
index c57008e559cf816b669b24216e28700521a29925..75553b3eb95afda9f10ebe9f58f352102ca40ee0 100644 (file)
@@ -9,7 +9,7 @@
 
 #include <ctime>
 
-extern volatile const time_t stgTime;
+extern volatile time_t stgTime;
 int RunStgTimer();
 void StopStgTimer();
 void WaitTimer();
index bf272f3128a34f9939ba136fa29e68a95044964e..c6785cead85c26f71ea5e273014f0d71428a8d5f 100644 (file)
@@ -119,7 +119,7 @@ else
     }
 }
 //-----------------------------------------------------------------------------
-double TARIFF_IMPL::GetPriceWithoutFreeMb(int dir, int mb, time_t t) const
+double TARIFF_IMPL::GetPriceWithoutFreeMb(int dir, int64_t mb, time_t t) const
 {
 int interval = Interval(dir, t);
 
@@ -143,45 +143,5 @@ else if (!sp && th)
     return tariffData.dirPrice[dir].priceNightA;
 else
     return tariffData.dirPrice[dir].priceDayA;
-
-/*if (tariffData.dirPrice[dir].noDiscount && tariffData.dirPrice[dir].singlePrice)
-    {
-    return tariffData.dirPrice[dir].priceDayA;
-    }
-else
-    {
-    if (tariffData.dirPrice[dir].noDiscount)
-        {
-        // Without threshold
-        if (interval == TARIFF_DAY)
-            return tariffData.dirPrice[dir].priceDayA;
-        else
-            return tariffData.dirPrice[dir].priceNightA;
-        }
-
-    if (tariffData.dirPrice[dir].singlePrice)
-        {
-        // Without day/night
-        if (mb < tariffData.dirPrice[dir].threshold)
-            return tariffData.dirPrice[dir].priceDayA;
-        else
-            return tariffData.dirPrice[dir].priceDayB;
-        }
-
-    if (mb < tariffData.dirPrice[dir].threshold)
-        {
-        if (interval == TARIFF_DAY)
-            return tariffData.dirPrice[dir].priceDayA;
-        else
-            return tariffData.dirPrice[dir].priceNightA;
-        }
-    else
-        {
-        if (interval == TARIFF_DAY)
-            return tariffData.dirPrice[dir].priceDayB;
-        else
-            return tariffData.dirPrice[dir].priceNightB;
-        }
-    }*/
 }
 //-----------------------------------------------------------------------------
index f33c08af0aa1340b3ba1bf0db72e60e964d0709c..122dabd044de29178d083c0849c4b4ba857a9fef 100644 (file)
@@ -48,20 +48,20 @@ public:
     TARIFF_IMPL()
         : TARIFF(),
           tariffData()
-    {};
+    {}
     TARIFF_IMPL(const std::string & name)
         : TARIFF(),
           tariffData(name)
-    {};
+    {}
     TARIFF_IMPL(const TARIFF_DATA & td)
         : TARIFF(),
           tariffData(td)
-    {};
+    {}
     TARIFF_IMPL(const TARIFF_IMPL & t)
         : TARIFF(),
           tariffData(t.tariffData)
-    {};
-    virtual ~TARIFF_IMPL() {};
+    {}
+    virtual ~TARIFF_IMPL() {}
 
     double  GetPriceWithTraffType(uint64_t up,
                                   uint64_t down,
@@ -90,7 +90,7 @@ public:
 private:
     TARIFF_DATA     tariffData;
 
-    double  GetPriceWithoutFreeMb(int dir, int mb, time_t t) const;
+    double  GetPriceWithoutFreeMb(int dir, int64_t mb, time_t t) const;
     int     Interval(int dir, time_t t) const;
 };
 
index ab3d970fa38f650edd5aa4e9ff5d320c745fa0cb..dbd3d2e397934e442e8dd980716c588b8159ef76 100644 (file)
@@ -72,9 +72,9 @@ if (store->GetTariffsList(&tariffsList))
     WriteServLog("%s", store->GetStrError().c_str());
     }
 
-int tariffsNum = tariffsList.size();
+Tariffs::size_type tariffsNum = tariffsList.size();
 
-for (int i = 0; i < tariffsNum; i++)
+for (Tariffs::size_type i = 0; i < tariffsNum; i++)
     {
     TARIFF_DATA td;
     if (store->RestoreTariff(&td, tariffsList[i]))
@@ -258,7 +258,7 @@ void TARIFFS_IMPL::GetTariffsData(std::list<TARIFF_DATA> * tdl)
 assert(tdl != NULL && "Tariffs data list is not null");
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-std::list<TARIFF_IMPL>::const_iterator it = tariffs.begin();
+Tariffs::const_iterator it = tariffs.begin();
 for (; it != tariffs.end(); ++it)
     {
     tdl->push_back(it->GetTariffData());
index caeb811d954bdafe9d277f44a0077987e1d6a005..37c76fc4070ff812e12886c70cffeec2a51f9195 100644 (file)
@@ -45,15 +45,17 @@ class ADMIN;
 
 class TARIFFS_IMPL : public TARIFFS {
 public:
+    typedef std::list<TARIFF_IMPL> Tariffs;
+
     TARIFFS_IMPL(STORE * store);
     virtual ~TARIFFS_IMPL();
-    int     ReadTariffs ();
+    int ReadTariffs ();
     const TARIFF * FindByName(const std::string & name) const;
-    const TARIFF * GetNoTariff() const { return &noTariff; };
-    size_t  Count() const;
-    int     Del(const std::string & name, const ADMIN * admin);
-    int     Add(const std::string & name, const ADMIN * admin);
-    int     Chg(const TARIFF_DATA & td, const ADMIN * admin);
+    const TARIFF * GetNoTariff() const { return &noTariff; }
+    size_t Count() const;
+    int Del(const std::string & name, const ADMIN * admin);
+    int Add(const std::string & name, const ADMIN * admin);
+    int Chg(const TARIFF_DATA & td, const ADMIN * admin);
 
     void AddNotifierAdd(NOTIFIER_BASE<TARIFF_DATA> * notifier);
     void DelNotifierAdd(NOTIFIER_BASE<TARIFF_DATA> * notifier);
@@ -61,7 +63,7 @@ public:
     void AddNotifierDel(NOTIFIER_BASE<TARIFF_DATA> * notifier);
     void DelNotifierDel(NOTIFIER_BASE<TARIFF_DATA> * notifier);
 
-    void    GetTariffsData(std::list<TARIFF_DATA> * tdl);
+    void GetTariffsData(std::list<TARIFF_DATA> * tdl);
 
     const std::string & GetStrError() const { return strError; }
 
@@ -69,7 +71,7 @@ private:
     TARIFFS_IMPL(const TARIFFS_IMPL & rvalue);
     TARIFFS_IMPL & operator=(const TARIFFS_IMPL & rvalue);
 
-    std::list<TARIFF_IMPL>  tariffs;
+    Tariffs                 tariffs;
     STORE *                 store;
     STG_LOGGER &            WriteServLog;
     mutable pthread_mutex_t mutex;
index c2088e0f2009cc210b6b0c1e514b163921c5ca6a..6f16be9aa2ac48013ae533d163f6314349f71df2 100644 (file)
@@ -202,11 +202,11 @@ void TRAFFCOUNTER_IMPL::Process(const RAW_PACKET & rawPacket)
 if (!running)
     return;
 
-static time_t touchTime = stgTime - MONITOR_TIME_DELAY_SEC;
+time_t touchTime = stgTime - MONITOR_TIME_DELAY_SEC;
 
 if (monitoring && (touchTime + MONITOR_TIME_DELAY_SEC <= stgTime))
     {
-    static std::string monFile = monitorDir + "/traffcounter_p";
+    std::string monFile = monitorDir + "/traffcounter_p";
     printfd(__FILE__, "Monitor=%d file TRAFFCOUNTER %s\n", monitoring, monFile.c_str());
     touchTime = stgTime;
     TouchFile(monFile.c_str());
@@ -292,12 +292,12 @@ void TRAFFCOUNTER_IMPL::FlushAndRemove()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-int oldPacketsSize = packets.size();
-int oldIp2packetsSize = ip2packets.size();
+Packets::size_type oldPacketsSize = packets.size();
+Index::size_type oldIp2packetsSize = ip2packets.size();
 
 pp_iter pi;
 pi = packets.begin();
-std::map<RAW_PACKET, PACKET_EXTRA_DATA> newPackets;
+Packets newPackets;
 ip2packets.erase(ip2packets.begin(), ip2packets.end());
 while (pi != packets.end())
     {
@@ -673,13 +673,13 @@ while (fgets(str, 1023, f))
     rul.proto = 0xff;
     rul.dir = 0xff;
 
-    for (size_t i = 0; i < PROTOMAX; i++)
+    for (uint8_t i = 0; i < PROTOMAX; i++)
         {
         if (strcasecmp(tp, protoName[i]) == 0)
             rul.proto = i;
         }
 
-    for (size_t i = 0; i < DIR_NUM + 1; i++)
+    for (uint32_t i = 0; i < DIR_NUM + 1; i++)
         {
         if (td == dirName[i])
             rul.dir = i;
@@ -747,9 +747,9 @@ bool TRAFFCOUNTER_IMPL::ParseAddress(const char * ta, RULE * rule) const
 {
 char addr[50], mask[20], port1[20], port2[20], ports[40];
 
-int len = strlen(ta);
+size_t len = strlen(ta);
 char n = 0;
-int i, p;
+size_t i, p;
 memset(addr, 0, sizeof(addr));
 for (i = 0; i < len; i++)
     {
@@ -829,15 +829,15 @@ uint16_t prt1, prt2, msk;
 struct in_addr ipaddr;
 char *res;
 
-msk = strtol(mask, &res, 10);
+msk = static_cast<uint16_t>(strtol(mask, &res, 10));
 if (*res != 0)
     return true;
 
-prt1 = strtol(port1, &res, 10);
+prt1 = static_cast<uint16_t>(strtol(port1, &res, 10));
 if (*res != 0)
     return true;
 
-prt2 = strtol(port2, &res, 10);
+prt2 = static_cast<uint16_t>(strtol(port2, &res, 10));
 if (*res != 0)
     return true;
 
@@ -902,9 +902,9 @@ switch (rule.proto)
 printf("dir=%u \n", static_cast<unsigned>(rule.dir));
 }
 //-----------------------------------------------------------------------------
-void TRAFFCOUNTER_IMPL::SetMonitorDir(const std::string & monitorDir)
+void TRAFFCOUNTER_IMPL::SetMonitorDir(const std::string & dir)
 {
-TRAFFCOUNTER_IMPL::monitorDir = monitorDir;
-monitoring = (monitorDir != "");
+monitorDir = dir;
+monitoring = !monitorDir.empty();
 }
 //-----------------------------------------------------------------------------
index 2a9fca5a61590dddb0bd4bb716a028e20f989fd8..f4049433717972955a618818ecc29768e0ac2970 100644 (file)
@@ -221,15 +221,18 @@ private:
     void        UnSetUserNotifiers(USER_IMPL * user);
 
     typedef std::list<RULE>::iterator rule_iter;
-    typedef std::map<RAW_PACKET, PACKET_EXTRA_DATA>::iterator pp_iter;
-    typedef std::multimap<uint32_t, pp_iter>::iterator ip2p_iter;
-    typedef std::multimap<uint32_t, pp_iter>::const_iterator ip2p_citer;
 
     std::list<RULE>          rules;
 
-    std::map<RAW_PACKET, PACKET_EXTRA_DATA> packets; // Packets tree
+    typedef std::map<RAW_PACKET, PACKET_EXTRA_DATA> Packets;
+    typedef Packets::iterator pp_iter;
+    typedef std::multimap<uint32_t, pp_iter> Index;
+    typedef Index::iterator ip2p_iter;
+    typedef Index::const_iterator ip2p_citer;
 
-    std::multimap<uint32_t, pp_iter> ip2packets; // IP-to-Packet index
+    Packets packets; // Packets tree
+
+    Index ip2packets; // IP-to-Packet index
 
     std::string              dirName[DIR_NUM + 1];
 
index 80568561a3458b0c3265d76e11dbfc7bddae4cbc..ac8399cabe77cf7149267dcdc71562eab1ac7563 100644 (file)
@@ -336,7 +336,7 @@ property.cash.DelBeforeNotifier(&cashNotifier);
 pthread_mutex_destroy(&mutex);
 }
 //-----------------------------------------------------------------------------
-void USER_IMPL::SetLogin(string const & l)
+void USER_IMPL::SetLogin(const std::string & l)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 assert(login.empty() && "Login is already set");
@@ -576,7 +576,7 @@ STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 if (!fakeConnect)
     {
-    string scriptOnConnect = settings->GetScriptsDir() + "/OnConnect";
+    std::string scriptOnConnect = settings->GetScriptsDir() + "/OnConnect";
 
     if (access(scriptOnConnect.c_str(), X_OK) == 0)
         {
@@ -587,7 +587,7 @@ if (!fakeConnect)
             dirsStr[i] = enabledDirs[i] ? '1' : '0';
             }
 
-        string scriptOnConnectParams;
+        std::string scriptOnConnectParams;
         strprintf(&scriptOnConnectParams,
                 "%s \"%s\" \"%s\" \"%f\" \"%d\" \"%s\"",
                 scriptOnConnect.c_str(),
@@ -633,7 +633,7 @@ if (!lastIPForDisconnect)
 
 if (!fakeDisconnect)
     {
-    string scriptOnDisonnect = settings->GetScriptsDir() + "/OnDisconnect";
+    std::string scriptOnDisonnect = settings->GetScriptsDir() + "/OnDisconnect";
 
     if (access(scriptOnDisonnect.c_str(), X_OK) == 0)
         {
@@ -644,7 +644,7 @@ if (!fakeDisconnect)
             dirsStr[i] = enabledDirs[i] ? '1' : '0';
             }
 
-        string scriptOnDisonnectParams;
+        std::string scriptOnDisonnectParams;
         strprintf(&scriptOnDisonnectParams,
                 "%s \"%s\" \"%s\" \"%f\" \"%d\" \"%s\"",
                 scriptOnDisonnect.c_str(),
@@ -683,37 +683,37 @@ void USER_IMPL::PrintUser() const
 {
 //return;
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-cout << "============================================================" << endl;
-cout << "id=" << id << endl;
-cout << "login=" << login << endl;
-cout << "password=" << password << endl;
-cout << "passive=" << passive << endl;
-cout << "disabled=" << disabled << endl;
-cout << "disabledDetailStat=" << disabledDetailStat << endl;
-cout << "alwaysOnline=" << alwaysOnline << endl;
-cout << "tariffName=" << tariffName << endl;
-cout << "address=" << address << endl;
-cout << "phone=" << phone << endl;
-cout << "email=" << email << endl;
-cout << "note=" << note << endl;
-cout << "realName=" <<realName << endl;
-cout << "group=" << group << endl;
-cout << "credit=" << credit << endl;
-cout << "nextTariff=" << nextTariff << endl;
-cout << "userdata0" << userdata0 << endl;
-cout << "userdata1" << userdata1 << endl;
-cout << "creditExpire=" << creditExpire << endl;
-cout << "ips=" << ips << endl;
-cout << "------------------------" << endl;
-cout << "up=" << up << endl;
-cout << "down=" << down << endl;
-cout << "cash=" << cash << endl;
-cout << "freeMb=" << freeMb << endl;
-cout << "lastCashAdd=" << lastCashAdd << endl;
-cout << "lastCashAddTime=" << lastCashAddTime << endl;
-cout << "passiveTime=" << passiveTime << endl;
-cout << "lastActivityTime=" << lastActivityTime << endl;
-cout << "============================================================" << endl;
+std::cout << "============================================================" << std::endl;
+std::cout << "id=" << id << std::endl;
+std::cout << "login=" << login << std::endl;
+std::cout << "password=" << password << std::endl;
+std::cout << "passive=" << passive << std::endl;
+std::cout << "disabled=" << disabled << std::endl;
+std::cout << "disabledDetailStat=" << disabledDetailStat << std::endl;
+std::cout << "alwaysOnline=" << alwaysOnline << std::endl;
+std::cout << "tariffName=" << tariffName << std::endl;
+std::cout << "address=" << address << std::endl;
+std::cout << "phone=" << phone << std::endl;
+std::cout << "email=" << email << std::endl;
+std::cout << "note=" << note << std::endl;
+std::cout << "realName=" <<realName << std::endl;
+std::cout << "group=" << group << std::endl;
+std::cout << "credit=" << credit << std::endl;
+std::cout << "nextTariff=" << nextTariff << std::endl;
+std::cout << "userdata0" << userdata0 << std::endl;
+std::cout << "userdata1" << userdata1 << std::endl;
+std::cout << "creditExpire=" << creditExpire << std::endl;
+std::cout << "ips=" << ips << std::endl;
+std::cout << "------------------------" << std::endl;
+std::cout << "up=" << up << std::endl;
+std::cout << "down=" << down << std::endl;
+std::cout << "cash=" << cash << std::endl;
+std::cout << "freeMb=" << freeMb << std::endl;
+std::cout << "lastCashAdd=" << lastCashAdd << std::endl;
+std::cout << "lastCashAddTime=" << lastCashAddTime << std::endl;
+std::cout << "passiveTime=" << passiveTime << std::endl;
+std::cout << "lastActivityTime=" << lastActivityTime << std::endl;
+std::cout << "============================================================" << std::endl;
 }
 //-----------------------------------------------------------------------------
 void USER_IMPL::Run()
@@ -808,11 +808,11 @@ if (settings->GetShowFeeInCash() || tariff == NULL)
 return (cash - tariff->GetFee() >= -credit);
 }
 //-----------------------------------------------------------------------------
-string USER_IMPL::GetEnabledDirs()
+std::string USER_IMPL::GetEnabledDirs()
 {
 //STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-string dirs = "";
+std::string dirs = "";
 for(int i = 0; i < DIR_NUM; i++)
     dirs += enabledDirs[i] ? "1" : "0";
 return dirs;
@@ -895,13 +895,13 @@ IP_DIR_PAIR idp(ip, dir, port);
 IP_DIR_PAIR idp(ip, dir);
 #endif
 
-map<IP_DIR_PAIR, STAT_NODE>::iterator lb;
+std::map<IP_DIR_PAIR, STAT_NODE>::iterator lb;
 lb = traffStat.lower_bound(idp);
 if (lb == traffStat.end() || lb->first != idp)
     {
     traffStat.insert(lb,
-                     pair<IP_DIR_PAIR, STAT_NODE>(idp,
-                                                  STAT_NODE(len, 0, cost)));
+                     std::make_pair(idp,
+                                    STAT_NODE(len, 0, cost)));
     }
 else
     {
@@ -986,13 +986,13 @@ IP_DIR_PAIR idp(ip, dir, port);
 IP_DIR_PAIR idp(ip, dir);
 #endif
 
-map<IP_DIR_PAIR, STAT_NODE>::iterator lb;
+std::map<IP_DIR_PAIR, STAT_NODE>::iterator lb;
 lb = traffStat.lower_bound(idp);
 if (lb == traffStat.end() || lb->first != idp)
     {
     traffStat.insert(lb,
-                     pair<IP_DIR_PAIR, STAT_NODE>(idp,
-                                                  STAT_NODE(0, len, cost)));
+                     std::make_pair(idp,
+                                    STAT_NODE(0, len, cost)));
     }
 else
     {
@@ -1053,11 +1053,11 @@ void USER_IMPL::OnAdd()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-string scriptOnAdd = settings->GetScriptsDir() + "/OnUserAdd";
+std::string scriptOnAdd = settings->GetScriptsDir() + "/OnUserAdd";
 
 if (access(scriptOnAdd.c_str(), X_OK) == 0)
     {
-    string scriptOnAddParams;
+    std::string scriptOnAddParams;
     strprintf(&scriptOnAddParams,
             "%s \"%s\"",
             scriptOnAdd.c_str(),
@@ -1075,11 +1075,11 @@ void USER_IMPL::OnDelete()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-string scriptOnDel = settings->GetScriptsDir() + "/OnUserDel";
+std::string scriptOnDel = settings->GetScriptsDir() + "/OnUserDel";
 
 if (access(scriptOnDel.c_str(), X_OK) == 0)
     {
-    string scriptOnDelParams;
+    std::string scriptOnDelParams;
     strprintf(&scriptOnDelParams,
             "%s \"%s\"",
             scriptOnDel.c_str(),
@@ -1160,12 +1160,12 @@ if (tms.tm_year % 4 == 0 && tms.tm_mon == 1)
     secMonth += 24 * 3600;
     }
 
-int dt = secMonth - passiveTime;
+time_t dt = secMonth - passiveTime;
 
 if (dt < 0)
     dt = 0;
 
-return double(dt) / (secMonth);
+return static_cast<double>(dt) / secMonth;
 }
 //-----------------------------------------------------------------------------
 void USER_IMPL::SetPassiveTimeAsNewUser()
@@ -1363,9 +1363,9 @@ else
         msg->header.repeat--;
         #ifndef DEBUG
         //TODO: gcc v. 4.x generate ICE on x86_64
-        msg->header.lastSendTime = time(NULL);
+        msg->header.lastSendTime = static_cast<int>(time(NULL));
         #else
-        msg->header.lastSendTime = stgTime;
+        msg->header.lastSendTime = static_cast<int>(stgTime);
         #endif
         if (store->AddMessage(msg, login))
             {
@@ -1384,7 +1384,7 @@ int USER_IMPL::SendMessage(STG_MSG & msg) const
 {
 // No lock `cause we are already locked from caller
 int ret = -1;
-set<const AUTH*>::iterator it(authorizedBy.begin());
+std::set<const AUTH*>::iterator it(authorizedBy.begin());
 while (it != authorizedBy.end())
     {
     if (!(*it++)->SendMessage(msg, currIP))
@@ -1394,9 +1394,9 @@ if (!ret)
     {
 #ifndef DEBUG
     //TODO: gcc v. 4.x generate ICE on x86_64
-    msg.header.lastSendTime = time(NULL);
+    msg.header.lastSendTime = static_cast<int>(time(NULL));
 #else
-    msg.header.lastSendTime = stgTime;
+    msg.header.lastSendTime = static_cast<int>(stgTime);
 #endif
     msg.header.repeat--;
     }
@@ -1482,7 +1482,7 @@ else if (!oldValue && newValue && user->IsInetable())
 
 }
 //-----------------------------------------------------------------------------
-void CHG_TARIFF_NOTIFIER::Notify(const string &, const string & newTariff)
+void CHG_TARIFF_NOTIFIER::Notify(const std::string &, const std::string & newTariff)
 {
 if (user->settings->GetReconnectOnTariffChange() && user->connected)
     user->Disconnect(false, "Change tariff");
index 2fc563dff61647387faf929db6689cfd5dd27afc..5e8f49dbad303a53d95607d4776c1bbe73f83c70 100644 (file)
@@ -182,7 +182,7 @@ public:
 
     bool            GetConnected() const { return connected; }
     time_t          GetConnectedModificationTime() const { return connected.ModificationTime(); }
-    int             GetAuthorized() const { return authorizedBy.size(); }
+    int             GetAuthorized() const { return static_cast<int>(authorizedBy.size()); }
     int             Authorize(uint32_t ip, uint32_t enabledDirs, const AUTH * auth);
     void            Unauthorize(const AUTH * auth);
     bool            IsAuthorizedBy(const AUTH * auth) const;
@@ -197,8 +197,8 @@ public:
 
     const std::string & GetStrError() const { return errorStr; }
 
-    USER_PROPERTIES & GetProperty() { return property; };
-    const USER_PROPERTIES & GetProperty() const { return property; };
+    USER_PROPERTIES & GetProperty() { return property; }
+    const USER_PROPERTIES & GetProperty() const { return property; }
 
     void            SetDeleted() { deleted = true; }
     bool            GetDeleted() const { return deleted; }
index fc2b8d2fcdc4f5889793658d0373718c5bb7fc21..17d1e4f77fcd88099fb75d6e00bf8163f48aaae4 100644 (file)
@@ -46,9 +46,7 @@
 #include "users_impl.h"
 #include "stg_timer.h"
 
-using namespace std;
-
-extern const volatile time_t stgTime;
+extern volatile time_t stgTime;
 
 //#define USERS_DEBUG 1
 
@@ -88,9 +86,9 @@ USERS_IMPL::~USERS_IMPL()
 pthread_mutex_destroy(&mutex);
 }
 //-----------------------------------------------------------------------------
-int USERS_IMPL::FindByNameNonLock(const string & login, user_iter * user)
+int USERS_IMPL::FindByNameNonLock(const std::string & login, user_iter * user)
 {
-map<string, user_iter>::iterator iter;
+std::map<std::string, user_iter>::iterator iter;
 iter = loginIndex.find(login);
 if (iter != loginIndex.end())
     {
@@ -101,7 +99,7 @@ if (iter != loginIndex.end())
 return -1;
 }
 //-----------------------------------------------------------------------------
-int USERS_IMPL::FindByName(const string & login, USER_PTR * user)
+int USERS_IMPL::FindByName(const std::string & login, USER_PTR * user)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 user_iter u;
@@ -112,10 +110,10 @@ if (res)
 return 0;
 }
 //-----------------------------------------------------------------------------
-bool USERS_IMPL::TariffInUse(const string & tariffName) const
+bool USERS_IMPL::TariffInUse(const std::string & tariffName) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-list<USER_IMPL>::const_iterator iter;
+std::list<USER_IMPL>::const_iterator iter;
 iter = users.begin();
 while (iter != users.end())
     {
@@ -126,7 +124,7 @@ while (iter != users.end())
 return false;
 }
 //-----------------------------------------------------------------------------
-int USERS_IMPL::Add(const string & login, const ADMIN * admin)
+int USERS_IMPL::Add(const std::string & login, const ADMIN * admin)
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 const PRIV * priv = admin->GetPriv();
@@ -184,7 +182,7 @@ AddUserIntoIndexes(users.begin());
 
     {
     // Fire all "on add" notifiers
-    set<NOTIFIER_BASE<USER_PTR> *>::iterator ni = onAddNotifiers.begin();
+    std::set<NOTIFIER_BASE<USER_PTR> *>::iterator ni = onAddNotifiers.begin();
     while (ni != onAddNotifiers.end())
         {
         (*ni)->Notify(&users.front());
@@ -194,7 +192,7 @@ AddUserIntoIndexes(users.begin());
 
     {
     // Fire all "on add" implementation notifiers
-    set<NOTIFIER_BASE<USER_IMPL_PTR> *>::iterator ni = onAddNotifiersImpl.begin();
+    std::set<NOTIFIER_BASE<USER_IMPL_PTR> *>::iterator ni = onAddNotifiersImpl.begin();
     while (ni != onAddNotifiersImpl.end())
         {
         (*ni)->Notify(&users.front());
@@ -205,7 +203,7 @@ AddUserIntoIndexes(users.begin());
 return 0;
 }
 //-----------------------------------------------------------------------------
-void USERS_IMPL::Del(const string & login, const ADMIN * admin)
+void USERS_IMPL::Del(const std::string & login, const ADMIN * admin)
 {
 const PRIV * priv = admin->GetPriv();
 user_iter u;
@@ -233,7 +231,7 @@ if (!priv->userAddDel)
     }
 
     {
-    set<NOTIFIER_BASE<USER_PTR> *>::iterator ni = onDelNotifiers.begin();
+    std::set<NOTIFIER_BASE<USER_PTR> *>::iterator ni = onDelNotifiers.begin();
     while (ni != onDelNotifiers.end())
         {
         (*ni)->Notify(&(*u));
@@ -242,7 +240,7 @@ if (!priv->userAddDel)
     }
 
     {
-    set<NOTIFIER_BASE<USER_IMPL_PTR> *>::iterator ni = onDelNotifiersImpl.begin();
+    std::set<NOTIFIER_BASE<USER_IMPL_PTR> *>::iterator ni = onDelNotifiersImpl.begin();
     while (ni != onDelNotifiersImpl.end())
         {
         (*ni)->Notify(&(*u));
@@ -322,7 +320,7 @@ return true;
 //-----------------------------------------------------------------------------
 int USERS_IMPL::ReadUsers()
 {
-vector<string> usersList;
+std::vector<std::string> usersList;
 usersList.clear();
 if (store->GetUsersList(&usersList) < 0)
     {
@@ -371,7 +369,7 @@ int day = t.tm_mday;
 printfd(__FILE__,"Day = %d Min = %d\n", day, min);
 
 time_t touchTime = stgTime - MONITOR_TIME_DELAY_SEC;
-string monFile = us->settings->GetMonitorDir() + "/users_r";
+std::string monFile = us->settings->GetMonitorDir() + "/users_r";
 printfd(__FILE__, "Monitor=%d file USERS %s\n", us->settings->GetMonitoring(), monFile.c_str());
 
 us->isRunning = true;
@@ -380,7 +378,7 @@ while (us->nonstop)
     //printfd(__FILE__,"New Minute. old = %02d current = %02d\n", min, t->tm_min);
     //printfd(__FILE__,"New Day.    old = %2d current = %2d\n", day, t->tm_mday);
 
-    for_each(us->users.begin(), us->users.end(), mem_fun_ref(&USER_IMPL::Run));
+    for_each(us->users.begin(), us->users.end(), std::mem_fun_ref(&USER_IMPL::Run));
 
     tt = stgTime;
     localtime_r(&tt, &t);
@@ -419,7 +417,7 @@ while (ui != us->users.end())
     ++ui;
     }
 
-list<USER_TO_DEL>::iterator iter;
+std::list<USER_TO_DEL>::iterator iter;
 iter = us->usersToDelete.begin();
 while (iter != us->usersToDelete.end())
     {
@@ -439,7 +437,7 @@ void USERS_IMPL::NewMinute(const struct tm & t)
 if (t.tm_hour == 23 && t.tm_min == 59)
     {
     printfd(__FILE__,"MidnightResetSessionStat\n");
-    for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::MidnightResetSessionStat));
+    for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::MidnightResetSessionStat));
     }
 
 if (TimeToWriteDetailStat(t))
@@ -448,14 +446,14 @@ if (TimeToWriteDetailStat(t))
     int usersCnt = 0;
 
     // ðÉÛÅÍ ÀÚÅÒÏ× ÞÁÓÔÑÍÉ. ÷ ÐÅÒÅÒÙ×ÁÈ ×ÙÚÙ×ÁÅÍ USER::Run
-    list<USER_IMPL>::iterator usr = users.begin();
+    std::list<USER_IMPL>::iterator usr = users.begin();
     while (usr != users.end())
         {
         usersCnt++;
         usr->WriteDetailStat();
         ++usr;
         if (usersCnt % 10 == 0)
-            for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::Run));
+            for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::Run));
         }
     }
 
@@ -486,14 +484,14 @@ if (!settings->GetDayFeeIsLastDay())
 if (settings->GetSpreadFee())
     {
     printfd(__FILE__, "Spread DayFee\n");
-    for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::ProcessDayFeeSpread));
+    for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::ProcessDayFeeSpread));
     }
 else
     {
     if (t.tm_mday == dayFee)
         {
         printfd(__FILE__, "DayFee\n");
-        for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::ProcessDayFee));
+        for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::ProcessDayFee));
         }
     }
 
@@ -512,7 +510,7 @@ if (dayResetTraff == 0)
 if (t1.tm_mday == dayResetTraff)
     {
     printfd(__FILE__, "ResetTraff\n");
-    for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::ProcessNewMonth));
+    for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::ProcessNewMonth));
     //for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::SetPrepaidTraff));
     }
 }
@@ -571,15 +569,15 @@ if (isRunning)
     }
 
 printfd(__FILE__, "Before USERS::Run()\n");
-for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::Run));
+for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::Run));
 
 // 'cause bind2st accepts only constant first param
-for (list<USER_IMPL>::iterator it = users.begin();
+for (std::list<USER_IMPL>::iterator it = users.begin();
      it != users.end();
      ++it)
     it->WriteDetailStat(true);
 
-for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::WriteStat));
+for_each(users.begin(), users.end(), std::mem_fun_ref(&USER_IMPL::WriteStat));
 //for_each(users.begin(), users.end(), mem_fun_ref(&USER_IMPL::WriteConf));
 
 printfd(__FILE__, "USERS::Stop()\n");
@@ -592,7 +590,7 @@ STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
 printfd(__FILE__, "RealDelUser() users to del: %d\n", usersToDelete.size());
 
-list<USER_TO_DEL>::iterator iter;
+std::list<USER_TO_DEL>::iterator iter;
 iter = usersToDelete.begin();
 while (iter != usersToDelete.end())
     {
@@ -625,7 +623,7 @@ if (!ip)
 
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-const map<uint32_t, user_iter>::iterator it(
+const std::map<uint32_t, user_iter>::iterator it(
         ipIndex.lower_bound(ip)
 );
 
@@ -641,7 +639,7 @@ assert(ip && "User has non-null ip");
 
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-const map<uint32_t, user_iter>::iterator it(
+const std::map<uint32_t, user_iter>::iterator it(
         ipIndex.find(ip)
 );
 
@@ -653,7 +651,7 @@ ipIndex.erase(it);
 //-----------------------------------------------------------------------------
 bool USERS_IMPL::FindByIPIdx(uint32_t ip, user_iter & iter) const
 {
-map<uint32_t, user_iter>::const_iterator it(ipIndex.find(ip));
+std::map<uint32_t, user_iter>::const_iterator it(ipIndex.find(ip));
 if (it == ipIndex.end())
     return false;
 iter = it->second;
@@ -692,7 +690,7 @@ bool USERS_IMPL::IsIPInIndex(uint32_t ip) const
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
 
-map<uint32_t, user_iter>::const_iterator it(ipIndex.find(ip));
+std::map<uint32_t, user_iter>::const_iterator it(ipIndex.find(ip));
 
 return it != ipIndex.end();
 }
index 2ea32c2b7060f0017c5298931e829ff7674af154..787b813d3728bf975571f4401756ad3863526a8a 100644 (file)
 #   define INET_ADDRSTRLEN 16
 #endif
 
-using namespace std;
+namespace
+{
+//---------------------------------------------------------------------------
+unsigned char koi2win[] = {
+        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+        0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+        0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+        0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+        0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+        0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+        0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+        0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+        0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+        0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+        0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+        0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+        0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+        0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+        0xA0, 0xA1, 0xA2, 0xB8, 0xBA, 0xA5, 0xB3, 0xBF,
+        0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xB4, 0xAE, 0xAF,
+        0xB0, 0xB1, 0xB2, 0xA8, 0xAA, 0xB5, 0xB2, 0xAF,
+        0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xA5, 0xBE, 0xBF,
+        0xFE, 0xE0, 0xE1, 0xF6, 0xE4, 0xE5, 0xF4, 0xE3,
+        0xF5, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE,
+        0xEF, 0xFF, 0xF0, 0xF1, 0xF2, 0xF3, 0xE6, 0xE2,
+        0xFC, 0xFB, 0xE7, 0xF8, 0xFD, 0xF9, 0xF7, 0xFA,
+        0xDE, 0xC0, 0xC1, 0xD6, 0xC4, 0xC5, 0xD4, 0xC3,
+        0xD5, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE,
+        0xCF, 0xDF, 0xD0, 0xD1, 0xD2, 0xD3, 0xC6, 0xC2,
+        0xDC, 0xDB, 0xC7, 0xD8, 0xDD, 0xD9, 0xD7, 0xDA};
+
+
+unsigned char win2koi[] = {
+        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+        0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+        0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+        0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+        0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+        0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+        0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+        0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+        0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+        0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+        0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+        0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+        0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+        0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xBD, 0xA6, 0xA7,
+        0xB3, 0xA9, 0xB4, 0xAB, 0xAC, 0xAD, 0xAE, 0xB7,
+        0xB0, 0xB1, 0xB6, 0xA6, 0xAD, 0xB5, 0xB6, 0xB7,
+        0xA3, 0xB9, 0xA4, 0xBB, 0xBC, 0xBD, 0xBE, 0xA7,
+        0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA,
+        0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0,
+        0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE,
+        0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1,
+        0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA,
+        0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
+        0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE,
+        0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1};
+}
 
 #ifdef WIN32
 //-----------------------------------------------------------------------------
@@ -136,7 +207,7 @@ printf("%s", buff);
 return 0;
 }
 //-----------------------------------------------------------------------------
-int strprintf(string * str, const char * fmt, ...)
+int strprintf(std::string * str, const char * fmt, ...)
 {
 char buff[1024];
 
@@ -150,11 +221,13 @@ buff[1023] = 0;
 return n;
 }
 //-----------------------------------------------------------------------------
-const char *IntToKMG(long long a, int stat)
+const char *IntToKMG(int64_t a, int stat)
 {
-static int64_t M = 1024*1024;
-static int64_t G = 1024*1024*1024;
+static const double K = 1024;
+static const double M = 1024 * 1024;
+static const double G = 1024 * 1024 * 1024;
 static char str[30];
+double value = a;
 
 switch (stat)
     {
@@ -166,108 +239,39 @@ switch (stat)
         #endif
         break;
     case ST_KB:
-        sprintf(str, "%.2f kb", double(a)/1024.0);
+        sprintf(str, "%.2f kb", value / K);
         break;
     case ST_MB:
-        sprintf(str, "%.2f Mb", double(a)/(1024.0*1024.0));
+        sprintf(str, "%.2f Mb", value / M);
         break;
     default:
         if (a > G)
             {
-            sprintf(str, "%.2f Gb", double(a)/double(G));
+            sprintf(str, "%.2f Gb", value / G);
             return &str[0];
             }
         if (a < -G)
             {
-            sprintf(str, "%.2f Gb", double(a)/double(G));
+            sprintf(str, "%.2f Gb", value / G);
             return &str[0];
             }
         if (a > M)
             {
-            sprintf(str, "%.2f Mb", double(a)/double(M));
+            sprintf(str, "%.2f Mb", value / M);
             return &str[0];
             }
         if (a < -M)
             {
-            sprintf(str, "%.2f Mb", double(a)/double(M));
+            sprintf(str, "%.2f Mb", value / M);
             return &str[0];
             }
 
-        sprintf(str, "%.2f kb", double(a)/1024.0);
+        sprintf(str, "%.2f kb", value / K);
         break;
     }
 return str;
 }
 //---------------------------------------------------------------------------
-unsigned char koi2win[] = {
-        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
-        0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
-        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
-        0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
-        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
-        0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
-        0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-        0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-        0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-        0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
-        0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-        0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-        0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-        0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
-        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
-        0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
-        0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
-        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
-        0xA0, 0xA1, 0xA2, 0xB8, 0xBA, 0xA5, 0xB3, 0xBF,
-        0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xB4, 0xAE, 0xAF,
-        0xB0, 0xB1, 0xB2, 0xA8, 0xAA, 0xB5, 0xB2, 0xAF,
-        0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xA5, 0xBE, 0xBF,
-        0xFE, 0xE0, 0xE1, 0xF6, 0xE4, 0xE5, 0xF4, 0xE3,
-        0xF5, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE,
-        0xEF, 0xFF, 0xF0, 0xF1, 0xF2, 0xF3, 0xE6, 0xE2,
-        0xFC, 0xFB, 0xE7, 0xF8, 0xFD, 0xF9, 0xF7, 0xFA,
-        0xDE, 0xC0, 0xC1, 0xD6, 0xC4, 0xC5, 0xD4, 0xC3,
-        0xD5, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE,
-        0xCF, 0xDF, 0xD0, 0xD1, 0xD2, 0xD3, 0xC6, 0xC2,
-        0xDC, 0xDB, 0xC7, 0xD8, 0xDD, 0xD9, 0xD7, 0xDA};
-
-
-unsigned char win2koi[] = {
-        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-        0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
-        0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-        0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
-        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
-        0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
-        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
-        0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
-        0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-        0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-        0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-        0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
-        0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
-        0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
-        0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
-        0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
-        0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
-        0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
-        0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
-        0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
-        0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xBD, 0xA6, 0xA7,
-        0xB3, 0xA9, 0xB4, 0xAB, 0xAC, 0xAD, 0xAE, 0xB7,
-        0xB0, 0xB1, 0xB6, 0xA6, 0xAD, 0xB5, 0xB6, 0xB7,
-        0xA3, 0xB9, 0xA4, 0xBB, 0xBC, 0xBD, 0xBE, 0xA7,
-        0xE1, 0xE2, 0xF7, 0xE7, 0xE4, 0xE5, 0xF6, 0xFA,
-        0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0,
-        0xF2, 0xF3, 0xF4, 0xF5, 0xE6, 0xE8, 0xE3, 0xFE,
-        0xFB, 0xFD, 0xFF, 0xF9, 0xF8, 0xFC, 0xE0, 0xF1,
-        0xC1, 0xC2, 0xD7, 0xC7, 0xC4, 0xC5, 0xD6, 0xDA,
-        0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
-        0xD2, 0xD3, 0xD4, 0xD5, 0xC6, 0xC8, 0xC3, 0xDE,
-        0xDB, 0xDD, 0xDF, 0xD9, 0xD8, 0xDC, 0xC0, 0xD1};
-//---------------------------------------------------------------------------
 void KOIToWin(const char * s1, char * s2, int l)
 {
 unsigned char t;
@@ -294,7 +298,7 @@ for (int j = 0; j < l; j++)
     }
 }
 //---------------------------------------------------------------------------
-void KOIToWin(const string & s1, string * s2)
+void KOIToWin(const std::string & s1, std::string * s2)
 {
 s2->erase(s2->begin(), s2->end());
 unsigned char t;
@@ -306,7 +310,7 @@ for (int j = 0; j < (int)s1.length(); j++)
     }
 }
 //---------------------------------------------------------------------------
-void WinToKOI(const string & s1, string * s2)
+void WinToKOI(const std::string & s1, std::string * s2)
 {
 s2->erase(s2->begin(), s2->end());
 unsigned char t;
@@ -318,7 +322,7 @@ for (int j = 0; j < (int)s1.length(); j++)
     }
 }
 //---------------------------------------------------------------------------
-void Encode12str(string & dst, const string & src)
+void Encode12str(std::string & dst, const std::string & src)
 {
 dst.erase(dst.begin(), dst.end());
 for (size_t i = 0; i < src.length(); i++)
@@ -339,7 +343,7 @@ for (size_t i = 0; i < src.length() / 2; i++)
     c1 -= 'a';
     c2 -= 'a';
 
-    dst.push_back(c1 + (c2 << 4));
+    dst.push_back(static_cast<char>(c1 + (c2 << 4)));
     }
 }
 //---------------------------------------------------------------------------
@@ -372,7 +376,7 @@ for (size_t i = 0; ; i++)
     c1 -= 'a';
     c2 -= 'a';
 
-    dst[i] = c1 + (c2 << 4);
+    dst[i] = static_cast<char>(c1 + (c2 << 4));
     }
 dst[strlen(src) / 2] = 0;
 }
@@ -610,7 +614,7 @@ if (msk == 0) return 0;
 return htonl(0xFFffFFff << (32 - msk));
 }
 //---------------------------------------------------------------------------
-void TouchFile(const string & fileName)
+void TouchFile(const std::string & fileName)
 {
 FILE * f = fopen(fileName.c_str(), "w");
 if (f)
@@ -689,28 +693,28 @@ strcpy(str, strdc);
 #endif //WIN32
 void SwapBytes(uint16_t & value)
 {
-    value = (value >> 8) |
-            (value << 8);
+    value = static_cast<uint16_t>((value >> 8) |
+                                  (value << 8));
 }
 //---------------------------------------------------------------------------
 void SwapBytes(uint32_t & value)
 {
-    value = (value >> 24) |
-            ((value << 8) &  0x00FF0000L)|
-            ((value >> 8) &  0x0000FF00L)|
-            (value << 24);
+    value = static_cast<uint32_t>((value >> 24) |
+                                  ((value << 8) &  0x00FF0000L) |
+                                  ((value >> 8) &  0x0000FF00L) |
+                                  (value << 24));
 }
 //---------------------------------------------------------------------------
 void SwapBytes(uint64_t & value)
 {
-    value = (value >> 56) |
-            ((value << 40) & 0x00FF000000000000LL) |
-            ((value << 24) & 0x0000FF0000000000LL) |
-            ((value << 8)  & 0x000000FF00000000LL) |
-            ((value >> 8)  & 0x00000000FF000000LL) |
-            ((value >> 24) & 0x0000000000FF0000LL) |
-            ((value >> 40) & 0x000000000000FF00LL) |
-            (value << 56);
+    value = static_cast<uint64_t>((value >> 56) |
+                                  ((value << 40) & 0x00FF000000000000LL) |
+                                  ((value << 24) & 0x0000FF0000000000LL) |
+                                  ((value << 8)  & 0x000000FF00000000LL) |
+                                  ((value >> 8)  & 0x00000000FF000000LL) |
+                                  ((value >> 24) & 0x0000000000FF0000LL) |
+                                  ((value >> 40) & 0x000000000000FF00LL) |
+                                  (value << 56));
 }
 //---------------------------------------------------------------------------
 void SwapBytes(int16_t & value)
@@ -734,9 +738,9 @@ void SwapBytes(int64_t & value)
     value = temp;
 }
 //---------------------------------------------------------------------------
-int str2x(const std::string & str, int & x)
+int str2x(const std::string & str, int32_t & x)
 {
-x = strtol(str.c_str(), NULL, 10);
+x = static_cast<int32_t>(strtol(str.c_str(), NULL, 10));
 
 if (errno == ERANGE)
     return -1;
@@ -744,29 +748,9 @@ if (errno == ERANGE)
 return 0;
 }
 //---------------------------------------------------------------------------
-int str2x(const std::string & str, unsigned & x)
+int str2x(const std::string & str, uint32_t & x)
 {
-x = strtoul(str.c_str(), NULL, 10);
-
-if (errno == ERANGE)
-    return -1;
-
-return 0;
-}
-//---------------------------------------------------------------------------
-int str2x(const std::string & str, long & x)
-{
-x = strtol(str.c_str(), NULL, 10);
-
-if (errno == ERANGE)
-    return -1;
-
-return 0;
-}
-//---------------------------------------------------------------------------
-int str2x(const std::string & str, unsigned long & x)
-{
-x = strtoul(str.c_str(), NULL, 10);
+x = static_cast<uint32_t>(strtoul(str.c_str(), NULL, 10));
 
 if (errno == ERANGE)
     return -1;
@@ -775,7 +759,7 @@ return 0;
 }
 #ifndef WIN32
 //---------------------------------------------------------------------------
-int str2x(const std::string & str, long long & x)
+int str2x(const std::string & str, int64_t & x)
 {
 x = strtoll(str.c_str(), NULL, 10);
 
@@ -785,7 +769,7 @@ if (errno == ERANGE)
 return 0;
 }
 //---------------------------------------------------------------------------
-int str2x(const std::string & str, unsigned long long & x)
+int str2x(const std::string & str, uint64_t & x)
 {
 x = strtoull(str.c_str(), NULL, 10);
 
@@ -796,17 +780,12 @@ return 0;
 }
 #endif
 //---------------------------------------------------------------------------
-const std::string & x2str(unsigned x, std::string & s)
-{
-return unsigned2str(x, s);
-}
-//---------------------------------------------------------------------------
-const std::string & x2str(unsigned long x, std::string & s)
+const std::string & x2str(uint32_t x, std::string & s)
 {
 return unsigned2str(x, s);
 }
 //---------------------------------------------------------------------------
-const std::string & x2str(unsigned long long x, std::string & s)
+const std::string & x2str(uint64_t x, std::string & s)
 {
 return unsigned2str(x, s);
 }
@@ -982,14 +961,14 @@ if (str2x<int>(str, *val))
 return 0;
 }
 
-int ParseUnsigned(const string & str, unsigned * val)
+int ParseUnsigned(const std::string & str, unsigned * val)
 {
 if (str2x<unsigned>(str, *val))
     return -1;
 return 0;
 }
 
-int ParseIntInRange(const string & str, int min, int max, int * val)
+int ParseIntInRange(const std::string & str, int min, int max, int * val)
 {
 if (ParseInt(str, val) != 0)
     return -1;
@@ -1000,7 +979,7 @@ if (*val < min || *val > max)
 return 0;
 }
 
-int ParseUnsignedInRange(const string & str, unsigned min,
+int ParseUnsignedInRange(const std::string & str, unsigned min,
                          unsigned max, unsigned * val)
 {
 if (ParseUnsigned(str, val) != 0)
index df93815215e4f32a8fd85e5882967f218116c555..80d32aba45a45116b523e81a4340e30b16e8c3fa 100644 (file)
@@ -52,7 +52,7 @@
 #define ST_MB   3
 
 //-----------------------------------------------------------------------------
-const char    * IntToKMG(long long a, int statType = ST_F);
+const char    * IntToKMG(int64_t a, int statType = ST_F);
 const char    * LogDate(time_t t);
 int             ParesTimeStat(const char * str);
 int             IsTimeStat(struct tm * t, int statTime);
@@ -236,18 +236,15 @@ const std::string & unsigned2str(varT x, std::string & s)
     return s;
 }
 //-----------------------------------------------------------------------------
-int str2x(const std::string & str, int & x);
-int str2x(const std::string & str, unsigned & x);
-int str2x(const std::string & str, long & x);
-int str2x(const std::string & str, unsigned long & x);
+int str2x(const std::string & str, int32_t & x);
+int str2x(const std::string & str, uint32_t & x);
 #ifndef WIN32
-int str2x(const std::string & str, long long & x);
-int str2x(const std::string & str, unsigned long long & x);
+int str2x(const std::string & str, int64_t & x);
+int str2x(const std::string & str, uint64_t & x);
 #endif
 //-----------------------------------------------------------------------------
-const std::string & x2str(unsigned x, std::string & s);
-const std::string & x2str(unsigned long x, std::string & s);
-const std::string & x2str(unsigned long long x, std::string & s);
+const std::string & x2str(uint32_t x, std::string & s);
+const std::string & x2str(uint64_t x, std::string & s);
 //-----------------------------------------------------------------------------
 char * stg_strptime(const char *, const char *, struct tm *);
 time_t stg_timegm(struct tm *);
index 0e1fde27e177c118f9716bc53c3b5071cde235e6..38b86b47fd9398d68f8554eb529bbc764b3b8524 100644 (file)
@@ -10,6 +10,8 @@
 #define _XOPEN_SOURCE
 #include <time.h>
 
+#include "stg/common.h"
+
 char * stg_strptime(const char * a, const char * b, struct tm * tm)
 {
 return strptime(a, b, tm);
index 3c3f3917a986951ab357a8bb0043b9a114205b0f..4fb72f618ddc6e5f60abab6dff8d754280008446 100644 (file)
@@ -73,8 +73,9 @@ std::string Trim(std::string val)
 {
 return TrimR(TrimL(val));
 }
-//---------------------------------------------------------------------------
 }
+//---------------------------------------------------------------------------
+} // namespace anonymous
 
 //---------------------------------------------------------------------------
 bool StringCaseCmp(const std::string & str1, const std::string & str2)
@@ -114,8 +115,13 @@ while (getline(f, line))
         return;
         }
 
+<<<<<<< Updated upstream
     std::string parameter = Trim(line.substr(0, pos));
     std::string value = Trim(line.substr(pos + 1));
+=======
+    std::string parameter = line.substr(0, pos);
+    std::string value = line.substr(pos + 1);
+>>>>>>> Stashed changes
     param_val[parameter] = value;
     }
 }
@@ -184,7 +190,7 @@ const std::map<std::string, std::string>::const_iterator it(param_val.find(param
 if (it != param_val.end())
     {
     char *res;
-    *val = strtol(it->second.c_str(), &res, 10);
+    *val = static_cast<int>(strtol(it->second.c_str(), &res, 10));
     if (*res != 0)
         {
         *val = defaultVal; //Error!
@@ -204,7 +210,7 @@ const std::map<std::string, std::string>::const_iterator it(param_val.find(param
 if (it != param_val.end())
     {
     char *res;
-    *val = strtoul(it->second.c_str(), &res, 10);
+    *val = static_cast<unsigned int>(strtoul(it->second.c_str(), &res, 10));
     if (*res != 0)
         {
         *val = defaultVal; //Error!
index be7acafe997a908d19795c50752c3b5da6f141e5..bd78ae2d52afcac35548246b2ec4e0f1bc94c4a0 100644 (file)
@@ -64,7 +64,6 @@ public:
     int ReadDouble(const std::string & param, double * val, double defaultVal) const;
 
     void WriteString(const std::string & param, const char * val) { return WriteString(param, std::string(val)); }
-    void WriteString(const std::string & param, const std::string & val);
     void WriteInt(const std::string & param, int64_t val);
     void WriteDouble(const std::string & param, double val);
 
index 8c2a82ade7fe9c55cc76d51daf89d9896a594046..930750135ac6bb9fbb84a0421335fd6dd05a64b7 100644 (file)
@@ -110,7 +110,7 @@ public:
     DOTCONFDocument(CaseSensitive caseSensitivity = CASESENSITIVE);
     virtual ~DOTCONFDocument();
 
-    void setErrorCallback(DOTCONFCallback _callback, void * _data) { errorCallback = _callback; errorCallbackData = _data; };
+    void setErrorCallback(DOTCONFCallback _callback, void * _data) { errorCallback = _callback; errorCallbackData = _data; }
 
     int setContent(const char * _fileName);
 
index 8284fe9b141cdf5d96fbf952dc6fdf63c4408f1e..27d368af977fddf9fa6bd8d439de854d4e6b6199 100644 (file)
@@ -465,7 +465,7 @@ struct GDS
 #ifdef IBPP_WINDOWS\r
                mHandle = 0;\r
 #endif\r
-       };\r
+       }\r
 };\r
 \r
 extern GDS gds;\r
index cfdd61fe339c9c7806dfa185da75302cee81a311..298fe70613218655dc47317464cab19f881dcaee 100644 (file)
@@ -118,7 +118,7 @@ int BlobImpl::Read(void* buffer, int size)
 \r
        IBS status;\r
        unsigned short bytesread;\r
-       int result = (*gds.Call()->m_get_segment)(status.Self(), &mHandle, &bytesread,\r
+       ISC_STATUS result = (*gds.Call()->m_get_segment)(status.Self(), &mHandle, &bytesread,\r
                                        (unsigned short)size, (char*)buffer);\r
        if (result == isc_segstr_eof) return 0; // Fin du blob\r
        if (result != isc_segment && status.Errors())\r
@@ -230,7 +230,7 @@ void BlobImpl::Load(std::string& data)
        {\r
                status.Reset();\r
                unsigned short bytesread;\r
-               int result = (*gds.Call()->m_get_segment)(status.Self(), &mHandle,\r
+               ISC_STATUS result = (*gds.Call()->m_get_segment)(status.Self(), &mHandle,\r
                                                &bytesread, (unsigned short)blklen,\r
                                                        const_cast<char*>(data.data()+pos));\r
                if (result == isc_segstr_eof) break;    // End of blob\r
index c108aaceb021b51f2220f03b021b6bf201cfa518..9c43ba2020abce852cba3e8f1598020aa5c3d447 100644 (file)
@@ -104,8 +104,10 @@ typedef unsigned __int64   ISC_UINT64;
 #ifdef  ISC_INT64_DEFINED\r
 #undef  ISC_INT64_DEFINED\r
 #else\r
-typedef long long int                  ISC_INT64;\r
-typedef unsigned long long int ISC_UINT64;\r
+//typedef long long int                        ISC_INT64;\r
+//typedef unsigned long long int       ISC_UINT64;\r
+typedef int64_t        ISC_INT64;\r
+typedef uint64_t       ISC_UINT64;\r
 #endif\r
 \r
 // Nickolay: it is easier to assume that integer is at least 32-bit.\r
index 37a19add995f52bf2c52e635b63d9ce6bfc89994..0029094eef1167f070c883b683e08cc2ce9a9c22 100644 (file)
@@ -223,7 +223,7 @@ namespace IBPP
                int mDate;      // The date : 1 == 1 Jan 1900\r
 \r
        public:\r
-               void Clear()    { mDate = MinDate - 1; };\r
+               void Clear()    { mDate = MinDate - 1; }\r
                void Today();\r
                void SetDate(int year, int month, int day);\r
                void SetDate(int dt);\r
@@ -236,7 +236,7 @@ namespace IBPP
                void StartOfMonth();\r
                void EndOfMonth();\r
        \r
-               Date()                  { Clear(); };\r
+               Date()                  { Clear(); }\r
                Date(int dt)    { SetDate(dt); }\r
                Date(int year, int month, int day);\r
                Date(const Date&);                                                      // Copy Constructor\r
@@ -248,7 +248,7 @@ namespace IBPP
                bool operator<(const Date& rv) const { return mDate < rv.GetDate(); }\r
                bool operator>(const Date& rv) const { return mDate > rv.GetDate(); }\r
 \r
-               virtual ~Date() { };\r
+               virtual ~Date() { }\r
        };\r
 \r
        /* Class Time represent purely a Time. It is usefull in interactions\r
@@ -283,7 +283,7 @@ namespace IBPP
                bool operator<(const Time& rv) const { return mTime < rv.GetTime(); }\r
                bool operator>(const Time& rv) const { return mTime > rv.GetTime(); }\r
 \r
-               virtual ~Time() { };\r
+               virtual ~Time() { }\r
        };\r
 \r
        /* Class Timestamp represent a date AND a time. It is usefull in\r
@@ -386,7 +386,7 @@ namespace IBPP
                User& operator=(const User& r)  { copyfrom(r); return *this; }\r
                User(const User& r)                             { copyfrom(r); }\r
                User() : userid(0), groupid(0)  { }\r
-               ~User() { };\r
+               ~User() { }\r
        };\r
 \r
        //      Interface Wrapper\r
@@ -480,7 +480,7 @@ namespace IBPP
                virtual IBlob* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-               virtual ~IBlob() { };\r
+               virtual ~IBlob() { }\r
        };\r
 \r
        /*      IArray is the interface to the array capabilities of IBPP. Array is the\r
@@ -506,7 +506,7 @@ namespace IBPP
                virtual IArray* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-               virtual ~IArray() { };\r
+               virtual ~IArray() { }\r
        };\r
 \r
        /* IService is the interface to the service capabilities of IBPP. Service is\r
@@ -551,7 +551,7 @@ namespace IBPP
                virtual IService* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-               virtual ~IService() { };\r
+               virtual ~IService() { }\r
        };\r
 \r
        /*      IDatabase is the interface to the database connections in IBPP. Database\r
@@ -591,7 +591,7 @@ namespace IBPP
                virtual IDatabase* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-           virtual ~IDatabase() { };\r
+           virtual ~IDatabase() { }\r
        };\r
 \r
        /* ITransaction is the interface to the transaction connections in IBPP.\r
@@ -621,7 +621,7 @@ namespace IBPP
                virtual ITransaction* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-           virtual ~ITransaction() { };\r
+           virtual ~ITransaction() { }\r
        };\r
 \r
        /*\r
@@ -700,7 +700,7 @@ namespace IBPP
                virtual IRow* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-           virtual ~IRow() {};\r
+           virtual ~IRow() {}\r
        };\r
 \r
        /* IStatement is the interface to the statements execution in IBPP.\r
@@ -799,7 +799,7 @@ namespace IBPP
                virtual IStatement* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-           virtual ~IStatement() { };\r
+           virtual ~IStatement() { }\r
 \r
                // DEPRECATED METHODS (WON'T BE AVAILABLE IN VERSIONS 3.x)\r
                virtual bool Get(int, char*) = 0;                                       // DEPRECATED\r
@@ -832,7 +832,7 @@ namespace IBPP
                virtual IEvents* AddRef() = 0;\r
                virtual void Release() = 0;\r
 \r
-           virtual ~IEvents() { };\r
+           virtual ~IEvents() { }\r
        };\r
        \r
        /* Class EventInterface is merely a pure interface.\r
@@ -844,7 +844,7 @@ namespace IBPP
        {\r
        public:\r
                virtual void ibppEventHandler(Events, const std::string&, int) = 0;\r
-               virtual ~EventInterface() { };\r
+               virtual ~EventInterface() { }\r
        };\r
 \r
        //      --- Factories ---\r
index 1a3031fe80943e7f88a34f2544bab57d1b38a429..e2271cf4b544011cc471d67af06e21bac4207568 100644 (file)
@@ -422,7 +422,7 @@ bool StatementImpl::Fetch()
                        _("No statement has been executed or no result set available."));\r
 \r
        IBS status;\r
-       int code = (*gds.Call()->m_dsql_fetch)(status.Self(), &mHandle, 1, mOutRow->Self());\r
+       ISC_STATUS code = (*gds.Call()->m_dsql_fetch)(status.Self(), &mHandle, 1, mOutRow->Self());\r
        if (code == 100)        // This special code means "no more rows"\r
        {\r
                mResultSetAvailable = false;\r
@@ -452,7 +452,7 @@ bool StatementImpl::Fetch(IBPP::Row& row)
        row = rowimpl;\r
 \r
        IBS status;\r
-       int code = (*gds.Call()->m_dsql_fetch)(status.Self(), &mHandle, 1,\r
+       ISC_STATUS code = (*gds.Call()->m_dsql_fetch)(status.Self(), &mHandle, 1,\r
                                        rowimpl->Self());\r
        if (code == 100)        // This special code means "no more rows"\r
        {\r
index c9a38774a25507de990d2af4f8ebaa73f885b07d..47eb61c7b94ecc5c47af89a2324e2d6e46d7b203 100644 (file)
@@ -103,9 +103,9 @@ void TransactionImpl::AddReservation(IBPP::Database db,
                                        tpb->Insert(table);\r
                                        tpb->Insert(isc_tpb_protected);\r
                                        break;\r
-                       default :\r
+                       /*default :\r
                                        throw LogicExceptionImpl("Transaction::AddReservation",\r
-                                               _("Illegal TTR value detected."));\r
+                                               _("Illegal TTR value detected."));*/\r
                }\r
        }\r
        else throw LogicExceptionImpl("Transaction::AddReservation",\r
@@ -306,7 +306,7 @@ void TransactionImpl::AttachDatabaseImpl(DatabaseImpl* dbi,
                                                                tpb->Insert(isc_tpb_rec_version); break;\r
                case IBPP::ilReadCommitted :    tpb->Insert(isc_tpb_read_committed);\r
                                                                                tpb->Insert(isc_tpb_no_rec_version); break;\r
-               default :                                               tpb->Insert(isc_tpb_concurrency); break;\r
+                case IBPP::ilConcurrency :                                             tpb->Insert(isc_tpb_concurrency); break;\r
        }\r
 \r
     if (lr == IBPP::lrNoWait) tpb->Insert(isc_tpb_nowait);\r
index 7a8d0b8d30113a80431a1ab1ccd2f1519fcdddbd..51ceb738e53253cfec1a2e9dd54605a20cf997a9 100644 (file)
@@ -67,7 +67,7 @@ public:
         pthread_mutex_unlock(&lockerMutex);
         #endif
         pthread_mutex_lock(mutex);
-        };
+        }
 
     ~STG_LOCKER()
         {
@@ -77,7 +77,7 @@ public:
         std::cout << "Unlock: " << lockID << " " << file << ":" << line << " " << mutex << " " << pthread_self() << std::endl;
         pthread_mutex_unlock(&lockerMutex);
         #endif
-        };
+        }
 private:
     STG_LOCKER(const STG_LOCKER & rvalue);
     STG_LOCKER & operator=(const STG_LOCKER & rvalue);
index dc87178e4a487dedc58d8cedce793106edf450aa..c55801ac2a32570fb41348b2f74a2d604332122b 100644 (file)
@@ -11,8 +11,8 @@ STG_LOGGER & GetStgLogger();
 class STG_LOGGER_LOCKER
 {
 public:
-    STG_LOGGER_LOCKER(pthread_mutex_t * m) : mutex(m) { pthread_mutex_lock(mutex); };
-    ~STG_LOGGER_LOCKER() { pthread_mutex_unlock(mutex); };
+    STG_LOGGER_LOCKER(pthread_mutex_t * m) : mutex(m) { pthread_mutex_lock(mutex); }
+    ~STG_LOGGER_LOCKER() { pthread_mutex_unlock(mutex); }
 
 private:
     STG_LOGGER_LOCKER(const STG_LOGGER_LOCKER & rvalue);
index b1b777813fc617f0710ae51799a76b3c80a2f804..b25f68472235640cbedc72e596cbe4bebb61b789 100644 (file)
@@ -84,6 +84,9 @@ struct PING_MESSAGE
 class STG_PINGER
 {
 public:
+    typedef std::multimap<uint32_t, time_t> PingIPs;
+    typedef PingIPs::size_type SizeType;
+
             STG_PINGER(time_t delay = 15);
             ~STG_PINGER();
 
@@ -91,7 +94,7 @@ public:
     int     Stop();
     void    AddIP(uint32_t ip);
     void    DelIP(uint32_t ip);
-    int     GetPingIPNum() const;
+    SizeType GetPingIPNum() const { return pingIP.size(); }
     void    PrintAllIP();
     int     GetIPTime(uint32_t ip, time_t * t) const;
     void    SetDelayTime(time_t d) { delay = d; }
@@ -108,7 +111,7 @@ private:
     static void * RunSendPing(void * d);
     static void * RunRecvPing(void * d);
 
-    int         delay;
+    time_t      delay;
     bool        nonstop;
     bool        isRunningRecver;
     bool        isRunningSender;
index 664367e897e6c0d7fc084d9efabd59f32ef14171..edc8c174c7fb06a831707aba2d9e5876e7b23955 100644 (file)
@@ -165,11 +165,6 @@ while (iter != ipToDel.end())
 ipToDel.erase(ipToDel.begin(), ipToDel.end());
 }
 //-----------------------------------------------------------------------------
-int STG_PINGER::GetPingIPNum() const
-{
-return pingIP.size();
-}
-//-----------------------------------------------------------------------------
 void STG_PINGER::PrintAllIP()
 {
 STG_LOCKER lock(&mutex, __FILE__, __LINE__);
@@ -202,20 +197,20 @@ return 0;
 //-----------------------------------------------------------------------------
 uint16_t STG_PINGER::PingCheckSum(void * data, int len)
 {
-unsigned short * buf = (unsigned short *)data;
-unsigned int sum = 0;
-unsigned short result;
+uint16_t * buf = static_cast<uint16_t *>(data);
+uint32_t sum = 0;
+uint32_t result;
 
 for ( sum = 0; len > 1; len -= 2 )
     sum += *buf++;
 
 if ( len == 1 )
-    sum += *(unsigned char*)buf;
+    sum += *reinterpret_cast<uint8_t*>(buf);
 
 sum = (sum >> 16) + (sum & 0xFFFF);
 sum += (sum >> 16);
 result = ~sum;
-return result;
+return static_cast<uint16_t>(result);
 }
 //-----------------------------------------------------------------------------
 int STG_PINGER::SendPing(uint32_t ip)
@@ -228,7 +223,7 @@ addr.sin_addr.s_addr = ip;
 
 memset(&pmSend, 0, sizeof(pmSend));
 pmSend.hdr.type = ICMP_ECHO;
-pmSend.hdr.un.echo.id = pid;
+pmSend.hdr.un.echo.id = static_cast<uint16_t>(pid);
 memcpy(pmSend.msg, &ip, sizeof(ip));
 
 pmSend.hdr.checksum = PingCheckSum(&pmSend, sizeof(pmSend));
@@ -250,19 +245,17 @@ uint32_t ipAddr = 0;
 
 char buf[128];
 memset(buf, 0, sizeof(buf));
-int bytes;
 socklen_t len = sizeof(addr);
 
-bytes = recvfrom(recvSocket, &buf, sizeof(buf), 0, (struct sockaddr*)&addr, &len);
-if (bytes > 0)
+if (recvfrom(recvSocket, &buf, sizeof(buf), 0, reinterpret_cast<struct sockaddr*>(&addr), &len))
     {
-    struct IP_HDR * ip = (struct IP_HDR *)buf;
-    struct ICMP_HDR *icmp = (struct ICMP_HDR *)(buf + ip->ihl * 4);
+    struct IP_HDR * ip = static_cast<struct IP_HDR *>(static_cast<void *>(buf));
+    struct ICMP_HDR *icmp = static_cast<struct ICMP_HDR *>(static_cast<void *>(buf + ip->ihl * 4));
 
     if (icmp->un.echo.id != pid)
         return 0;
 
-    ipAddr = *(uint32_t*)(buf + sizeof(ICMP_HDR) + ip->ihl * 4);
+    ipAddr = *static_cast<uint32_t*>(static_cast<void *>(buf + sizeof(ICMP_HDR) + ip->ihl * 4));
     }
 
 return ipAddr;