IBR-DTNSuite 0.6

daemon/src/Main.cpp File Reference

#include "config.h"
#include <ibrcommon/data/BLOB.h>
#include <ibrcommon/data/File.h>
#include <ibrcommon/AutoDelete.h>
#include <ibrcommon/net/vinterface.h>
#include <ibrcommon/Logger.h>
#include <ibrcommon/net/LinkManager.h>
#include <ibrdtn/utils/Clock.h>
#include <list>
#include "core/BundleCore.h"
#include "core/EventSwitch.h"
#include "core/BundleStorage.h"
#include "core/MemoryBundleStorage.h"
#include "core/SimpleBundleStorage.h"
#include "core/Node.h"
#include "core/GlobalEvent.h"
#include "core/NodeEvent.h"
#include "routing/BaseRouter.h"
#include "routing/StaticRoutingExtension.h"
#include "routing/NeighborRoutingExtension.h"
#include "routing/epidemic/EpidemicRoutingExtension.h"
#include "routing/flooding/FloodRoutingExtension.h"
#include "routing/RetransmissionExtension.h"
#include "net/UDPConvergenceLayer.h"
#include "net/TCPConvergenceLayer.h"
#include "net/IPNDAgent.h"
#include "api/ApiServer.h"
#include "Configuration.h"
#include "EchoWorker.h"
#include "CapsuleWorker.h"
#include "Notifier.h"
#include "DevNull.h"
#include "StatisticLogger.h"
#include "Component.h"
#include <csignal>
#include <sys/types.h>
#include <syslog.h>
#include <set>
#include <pwd.h>
#include "Debugger.h"
Include dependency graph for Main.cpp:

Go to the source code of this file.

Defines

#define UNIT_MB   * 1048576

Functions

void sighandler (int signal)
void switchUser (Configuration &config)
void setGlobalVars (Configuration &config)
void createBundleStorage (BundleCore &core, Configuration &conf, std::list< dtn::daemon::Component * > &components)
void createConvergenceLayers (BundleCore &core, Configuration &conf, std::list< dtn::daemon::Component * > &components, dtn::net::IPNDAgent *ipnd)
int __daemon_run (Configuration &conf)
int main (int argc, char *argv[])

Variables

unsigned char logopts = ibrcommon::Logger::LOG_DATETIME | ibrcommon::Logger::LOG_LEVEL
const unsigned char logerr = ibrcommon::Logger::LOGGER_ERR | ibrcommon::Logger::LOGGER_CRIT
const unsigned char logstd = ~(ibrcommon::Logger::LOGGER_DEBUG | ibrcommon::Logger::LOGGER_ERR | ibrcommon::Logger::LOGGER_CRIT)
const unsigned char logsys = ~(ibrcommon::Logger::LOGGER_DEBUG | ibrcommon::Logger::LOGGER_NOTICE)
bool _debug = false

Define Documentation

#define UNIT_MB   * 1048576

Definition at line 80 of file Main.cpp.


Function Documentation

int __daemon_run ( Configuration conf)

initialize all components!

run all components!

terminate all components!

Definition at line 390 of file Main.cpp.

References _debug, dtn::core::BundleCore::addConnection(), dtn::routing::BaseRouter::addExtension(), dtn::daemon::Configuration::Statistic::address(), dtn::daemon::Configuration::Discovery::address(), ibrcommon::Logger::addStream(), dtn::net::IPNDAgent::bind(), createBundleStorage(), createConvergenceLayers(), dtn::daemon::Configuration::Daemon::daemonize(), dtn::daemon::Configuration::Logger::display_timestamps(), dtn::daemon::Configuration::doAPI(), dtn::daemon::Configuration::Network::doDynamicRebind(), dtn::daemon::Configuration::Network::doForwarding(), ibrcommon::vinterface::empty(), ibrcommon::Logger::enableAsync(), dtn::daemon::Configuration::Statistic::enabled(), dtn::daemon::Configuration::Discovery::enabled(), dtn::daemon::Configuration::Security::enabled(), dtn::daemon::Configuration::Debug::enabled(), ibrcommon::Logger::enableSyslog(), dtn::core::BundleCore::forwarding, dtn::daemon::Configuration::getAPIInterface(), dtn::daemon::Configuration::getAPISocket(), dtn::daemon::Configuration::getDaemon(), dtn::daemon::Configuration::getDebug(), dtn::daemon::Configuration::getDiscovery(), dtn::core::EventSwitch::getInstance(), dtn::core::BundleCore::getInstance(), dtn::security::SecurityKeyManager::getInstance(), dtn::daemon::Configuration::Network::getInterfaces(), dtn::daemon::Configuration::Logger::getLogfile(), dtn::daemon::Configuration::getLogger(), dtn::daemon::Configuration::getNetwork(), dtn::daemon::Configuration::getNotifyCommand(), ibrcommon::File::getPath(), dtn::daemon::Configuration::Network::getRoutingExtension(), dtn::daemon::Configuration::getSecurity(), dtn::daemon::Configuration::Network::getStaticNodes(), dtn::daemon::Configuration::Network::getStaticRoutes(), dtn::daemon::Configuration::getStatistic(), dtn::core::BundleCore::getStorage(), dtn::core::GlobalEvent::GLOBAL_SHUTDOWN, IBRCOMMON_LOGGER, IBRCOMMON_LOGGER_DEBUG, IBRCOMMON_LOGGER_ENDL, dtn::daemon::IntegratedComponent::initialize(), ibrcommon::LinkManager::initialize(), dtn::daemon::Configuration::NetConfig::interface, dtn::daemon::Configuration::Statistic::interval(), ibrcommon::vaddress::isMulticast(), dtn::daemon::Configuration::Debug::level(), dtn::daemon::Configuration::load(), ibrcommon::Logger::LOG_DATETIME, ibrcommon::Logger::LOG_TIMESTAMP, logerr, dtn::daemon::Configuration::Statistic::logfile(), ibrcommon::Logger::LOGGER_DEBUG, dtn::daemon::StatisticLogger::LOGGER_FILE_CSV, dtn::daemon::StatisticLogger::LOGGER_FILE_PLAIN, dtn::daemon::StatisticLogger::LOGGER_FILE_STAT, dtn::daemon::StatisticLogger::LOGGER_STDOUT, dtn::daemon::StatisticLogger::LOGGER_SYSLOG, dtn::daemon::StatisticLogger::LOGGER_UDP, logopts, logstd, logsys, dtn::core::EventSwitch::loop(), dtn::daemon::Configuration::Statistic::port(), dtn::daemon::Configuration::NetConfig::port, dtn::daemon::Configuration::Discovery::port(), dtn::daemon::Configuration::Debug::quiet(), dtn::core::GlobalEvent::raise(), setGlobalVars(), ibrcommon::Logger::setVerbosity(), sighandler(), dtn::daemon::IntegratedComponent::startup(), ibrcommon::Logger::stop(), switchUser(), dtn::daemon::IntegratedComponent::terminate(), ibrcommon::vinterface::toString(), dtn::daemon::Configuration::Statistic::type(), ibrcommon::vaddress::VADDRESS_INET, and dtn::daemon::Configuration::version().

Referenced by main().

void switchUser ( Configuration config)

Definition at line 135 of file Main.cpp.

References dtn::daemon::Configuration::getGID(), dtn::daemon::Configuration::getUID(), dtn::daemon::Configuration::getUser(), IBRCOMMON_LOGGER, and IBRCOMMON_LOGGER_ENDL.

Referenced by __daemon_run().

Here is the call graph for this function:


Variable Documentation

const unsigned char logerr = ibrcommon::Logger::LOGGER_ERR | ibrcommon::Logger::LOGGER_CRIT

Definition at line 90 of file Main.cpp.

Referenced by __daemon_run().

unsigned char logopts = ibrcommon::Logger::LOG_DATETIME | ibrcommon::Logger::LOG_LEVEL

setup logging capabilities

Definition at line 87 of file Main.cpp.

Referenced by __daemon_run(), and sighandler().

const unsigned char logstd = ~(ibrcommon::Logger::LOGGER_DEBUG | ibrcommon::Logger::LOGGER_ERR | ibrcommon::Logger::LOGGER_CRIT)

Definition at line 93 of file Main.cpp.

Referenced by __daemon_run().

const unsigned char logsys = ~(ibrcommon::Logger::LOGGER_DEBUG | ibrcommon::Logger::LOGGER_NOTICE)

Definition at line 96 of file Main.cpp.

Referenced by __daemon_run().