-lboost_system \
-lboost_program_options \
3rdparty/snmp++/libsnmp++.a
-PROG = gssmd # GTS SNMP Switch Management Daemon
+PROG = ssmd # SNMP Switch Management Daemon
VERSION = 1.1.2
SOURCES = src/main.cpp \
+++ /dev/null
-[general]
-
-# 'daemon' flag defines whether to daemonize or no
-# Default - no
-daemon
-
-
-# 'debug' flag make output a bit more verbose
-# Default - no
-#debug
-
-# Log file path
-# Default: /var/log/gssmd.log
-log_file = /home/faust/Projects/GTS/snmp-daemon/gssmd.log
-
-# PID file path
-# Default: /var/run/gssmd.pid
-pid_file = /home/faust/Projects/GTS/snmp-daemon/gssmd.pid
-
-[sync]
-
-# Switch sync interval, sec
-# Default: 60 sec
-switch_interval = 1
-
-# Info sync interval, sec
-# Default: 180 sec
-info_interval = 10
-
-# Upload profile ID
-# Default: 1
-up_profile_id = 1
-
-# Download profile ID
-# Default: 1
-down_profile_id = 2
-
-# Data access URL
-# No default value
-data_url = http://db.loc/?mm=api&mode=sh_switches
-#ifndef __GTS_ACL_H__
-#define __GTS_ACL_H__
+#ifndef __SSMD_ACL_H__
+#define __SSMD_ACL_H__
#include <string>
#include <ostream>
class Pdu;
-namespace GTS {
+namespace SSMD {
class ACL {
public:
friend std::ostream & operator<<(std::ostream & stream, const ACL & acl);
};
-std::ostream & operator<<(std::ostream & stream, const GTS::ACL & acl);
+std::ostream & operator<<(std::ostream & stream, const SSMD::ACL & acl);
}
-#ifndef __GTS_DATA_TYPES_H__
-#define __GTS_DATA_TYPES_H__
+#ifndef __SSMD_DATA_TYPES_H__
+#define __SSMD_DATA_TYPES_H__
#include <string>
#include <list>
-namespace GTS {
+namespace SSMD {
struct LineType {
std::string switchIP;
-#ifndef __GTS_LOGGER_H__
-#define __GTS_LOGGER_H__
+#ifndef __SSMD_LOGGER_H__
+#define __SSMD_LOGGER_H__
#include <iostream>
#include <fstream>
#define LOG_IT logger << __FILE__ << "(" << __LINE__ << ") : "
-namespace GTS {
+namespace SSMD {
class Logger {
public:
}
-extern GTS::Logger logger;
+extern SSMD::Logger logger;
#endif
-#ifndef __GTS_OIDS_H__
-#define __GTS_OIDS_H__
+#ifndef __SSMD_OIDS_H__
+#define __SSMD_OIDS_H__
#define swACLEtherRuleProfileID ".1.3.6.1.4.1.171.12.9.2.10.1.1.1"
#define swACLEtherRuleAccessID ".1.3.6.1.4.1.171.12.9.3.10.1.1.2"
-#ifndef __GTS_PIDFILE_H__
-#define __GTS_PIDFILE_H__
+#ifndef __SSMD_PIDFILE_H__
+#define __SSMD_PIDFILE_H__
#include <string>
#include <boost/noncopyable.hpp>
-namespace GTS {
+namespace SSMD {
class PIDFile : private boost::noncopyable {
public:
-#ifndef __GTS_SETTINGS_H__
-#define __GTS_SETTINGS_H__
+#ifndef __SSMD_SETTINGS_H__
+#define __SSMD_SETTINGS_H__
#include <string>
namespace po = boost::program_options;
-namespace GTS {
+namespace SSMD {
class SettingsParser;
class Settings {
-#ifndef __GTS_SETTINGS_INL_H__
-#define __GTS_SETTINGS_INL_H__
+#ifndef __SSMD_SETTINGS_INL_H__
+#define __SSMD_SETTINGS_INL_H__
#include <iostream>
#include <sstream>
-namespace GTS {
+namespace SSMD {
inline
Settings::Settings()
-#ifndef __GTS_SNMPTABLE_H__
-#define __GTS_SNMPTABLE_H__
+#ifndef __SSMD_SNMPTABLE_H__
+#define __SSMD_SNMPTABLE_H__
#include <list>
#include "snmp_pp/snmp_pp.h"
-namespace GTS {
+namespace SSMD {
typedef std::list<Vb> SNMPList;
-#ifndef __GTS_SNMPTABLE_INL_H__
-#define __GTS_SNMPTABLE_INL_H__
+#ifndef __SSMD_SNMPTABLE_INL_H__
+#define __SSMD_SNMPTABLE_INL_H__
-namespace GTS {
+namespace SSMD {
template <typename T>
inline
-#ifndef __GTS_SUBSCRIBER_H__
-#define __GTS_SUBSCRIBER_H__
+#ifndef __SSMD_SUBSCRIBER_H__
+#define __SSMD_SUBSCRIBER_H__
#include <string>
-namespace GTS {
+namespace SSMD {
class Subscriber {
public:
-#ifndef __GTS_SWITCH_H__
-#define __GTS_SWITCH_H__
+#ifndef __SSMD_SWITCH_H__
+#define __SSMD_SWITCH_H__
#include <string>
#include <vector>
class Snmp;
class CTarget;
-namespace GTS {
+namespace SSMD {
class Settings;
class Subscriber;
-#ifndef __GTS_SYNCER_H__
-#define __GTS_SYNCER_H__
+#ifndef __SSMD_SYNCER_H__
+#define __SSMD_SYNCER_H__
#include <ctime>
#include <list>
class Snmp;
-namespace GTS {
+namespace SSMD {
class SettingsParser;
class Switch;
-#ifndef __GTS_VERSION_H__
-#define __GTS_VERSION_H__
+#ifndef __SSMD_VERSION_H__
+#define __SSMD_VERSION_H__
#include <string>
-namespace GTS {
+namespace SSMD {
static const std::string version("@VERSION@");
static const std::string revision("git sha @GIT_SHA@");
}
#include "oids.h"
#include "logger.h"
-using GTS::ACL;
+using SSMD::ACL;
ACL::ACL(unsigned id,
unsigned profileId,
pdu += vb;*/
}
-std::ostream & GTS::operator<<(std::ostream & stream, const ACL & acl)
+std::ostream & SSMD::operator<<(std::ostream & stream, const ACL & acl)
{
std::string oidValue;
// MAC
namespace qi = boost::spirit::qi;
-using GTS::LineType;
-using GTS::Lines;
+using SSMD::LineType;
+using SSMD::Lines;
BOOST_FUSION_ADAPT_STRUCT(
- GTS::LineType,
+ SSMD::LineType,
(std::string, switchIP)
(std::string, readCommunity)
(std::string, writeCommunity)
qi::rule<Iterator> eol;
};
-bool GTS::parseData(std::string & data, Lines & lines)
+bool SSMD::parseData(std::string & data, Lines & lines)
{
std::string::iterator begin(data.begin());
std::string::iterator end(data.end());
#include "logger.h"
-using GTS::Logger;
+using SSMD::Logger;
bool Logger::setLogFile(const std::string & fileName)
{
#include "pidfile.h"
#include "logger.h"
-GTS::Logger logger;
+SSMD::Logger logger;
static bool running = true;
static bool reload = false;
int main(int argc, char * argv[])
{
- GTS::SettingsParser sParser;
+ SSMD::SettingsParser sParser;
// Set filter for logging
DefaultLog::log()->set_filter(ERROR_LOG, 7);
}
if (sParser.settings().isVersion()) {
- std::cout << "GTS SNMP Switch Management Daemon " << GTS::version << " (revision: " << GTS::revision << ")" << std::endl;
+ std::cout << "SNMP Switch Management Daemon " << SSMD::version << " (revision: " << SSMD::revision << ")" << std::endl;
return 0;
}
return -1;
}
- GTS::PIDFile pf(sParser.settings().PIDFile());
- GTS::Syncer syncer(sParser, snmp);
+ SSMD::PIDFile pf(sParser.settings().PIDFile());
+ SSMD::Syncer syncer(sParser, snmp);
- logger << "Starting gssmd main thread..." << std::endl;
+ logger << "Starting ssmd main thread..." << std::endl;
setSignalHandlers();
#include "pidfile.h"
#include "logger.h"
-using GTS::PIDFile;
+using SSMD::PIDFile;
PIDFile::PIDFile()
: fileName("/var/run/gssmd.pid")
#include "logger.h"
#include "settings.h"
-using GTS::Settings;
-using GTS::SettingsParser;
+using SSMD::Settings;
+using SSMD::SettingsParser;
SettingsParser::SettingsParser()
: _desc("Allowed options")
}
-using GTS::SettingsParser;
+using SSMD::SettingsParser;
void SettingsParser::parseFile(const std::string & fileName)
{
#include "snmptable.h"
#include "logger.h"
-using GTS::SNMPTable;
+using SSMD::SNMPTable;
SNMPTable::SNMPTable(Snmp & snmp,
const CTarget & target,
#include "subscriber.h"
-using GTS::Subscriber;
+using SSMD::Subscriber;
Subscriber::Subscriber(const std::string & mac,
unsigned port,
#include "snmptable.h"
#include "oids.h"
-using GTS::Switch;
-using GTS::SNMPTable;
+using SSMD::Switch;
+using SSMD::SNMPTable;
Switch::Switch(const Settings & settings,
Snmp & snmp,
#include "datatypes.h"
#include "logger.h"
-using GTS::Syncer;
-using GTS::Timer;
-using GTS::Switch;
-using GTS::Subscriber;
-using GTS::Lines;
+using SSMD::Syncer;
+using SSMD::Timer;
+using SSMD::Switch;
+using SSMD::Subscriber;
+using SSMD::Lines;
Timer::Timer(boost::function<void ()> callback, time_t interval)
: _interval(interval),
--- /dev/null
+[general]
+
+# 'daemon' flag defines whether to daemonize or no
+# Default - no
+daemon
+
+
+# 'debug' flag make output a bit more verbose
+# Default - no
+#debug
+
+# Log file path
+# Default: /var/log/ssmd.log
+log_file = /var/log/ssmd.log
+
+# PID file path
+# Default: /var/run/ssmd.pid
+pid_file = /var/run/ssmd.pid
+
+[sync]
+
+# Switch sync interval, sec
+# Default: 60 sec
+switch_interval = 1
+
+# Info sync interval, sec
+# Default: 180 sec
+info_interval = 10
+
+# Upload profile ID
+# Default: 1
+up_profile_id = 1
+
+# Download profile ID
+# Default: 1
+down_profile_id = 2
+
+# Data access URL
+# No default value
+data_url = http://localhost
#include "datatypes.h"
#include "logger.h"
-GTS::Logger logger;
+SSMD::Logger logger;
int main()
{
- GTS::Lines lines;
+ SSMD::Lines lines;
std::string data(
"172.16.47.10,gts_community_r,gts_community_w,10,1,001CC0B16177,64,128,64,128\n"
"172.16.47.11,gts_community_r,gts_community_w,10,1,001CC0B16178,65,129,66,138\n"
if (!parseData(data, lines)) {
logger << "Failed to parse data" << std::endl;
} else {
- GTS::Lines::const_iterator it;
+ SSMD::Lines::const_iterator it;
for (it = lines.begin(); it != lines.end(); ++it) {
logger << "line: "
<< it->switchIP << ","
#include "subscriber.h"
#include "logger.h"
-GTS::Logger logger;
+SSMD::Logger logger;
int main()
{
- GTS::Settings settings;
+ SSMD::Settings settings;
settings.setIsDebug(true);
settings.setUpProfileId(1);
return -1;
}
- GTS::Switch sw(settings,
+ SSMD::Switch sw(settings,
snmp,
"172.16.47.10",
"gts_community_r",
10);
sw.addSubscriber(
- GTS::Subscriber(
+ SSMD::Subscriber(
"485b3936a273",
1,
8192,