Files
        @ b52747680159
    
        
              Branch filter: 
        
    Location: libtransport.git/backends/template/main.cpp - annotation
        
            
            b52747680159
            1.3 KiB
            text/x-c++hdr
        
        
    
    Update README.md
    | 8b6068588621 8b6068588621 40d678184272 78e71f9345c7 78e71f9345c7 78e71f9345c7 40d678184272 40d678184272 40d678184272 40d678184272 15bdfab39ccf 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 4fe987b774d2 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 15bdfab39ccf ab2424659344 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 ab2424659344 40d678184272 40d678184272 40d678184272 40d678184272 40d678184272 15bdfab39ccf 40d678184272 40d678184272 40d678184272 40d678184272 ab2424659344 40d678184272 060510d6958e 060510d6958e 060510d6958e 060510d6958e 40d678184272 40d678184272 40d678184272 060510d6958e 40d678184272 40d678184272 8b6068588621 8b6068588621 40d678184272 40d678184272 40d678184272 | #include "plugin.h"
// Transport includes
#include "transport/Config.h"
#include "transport/NetworkPlugin.h"
#include "transport/Logging.h"
// Swiften
#include "Swiften/Swiften.h"
#ifndef _WIN32
// for signal handler
#include "unistd.h"
#include "signal.h"
#include "sys/wait.h"
#include "sys/signal.h"
#endif
// Boost
#include <boost/algorithm/string.hpp>
using namespace boost::filesystem;
using namespace boost::program_options;
using namespace Transport;
#ifndef _WIN32
static void spectrum_sigchld_handler(int sig)
{
	int status;
	pid_t pid;
	do {
		pid = waitpid(-1, &status, WNOHANG);
	} while (pid != 0 && pid != (pid_t)-1);
	if ((pid == (pid_t) - 1) && (errno != ECHILD)) {
		char errmsg[BUFSIZ];
		snprintf(errmsg, BUFSIZ, "Warning: waitpid() returned %d", pid);
		perror(errmsg);
	}
}
#endif
int main (int argc, char* argv[]) {
	std::string host;
	int port;
#ifndef _WIN32
	if (signal(SIGCHLD, spectrum_sigchld_handler) == SIG_ERR) {
		std::cout << "SIGCHLD handler can't be set\n";
		return -1;
	}
#endif
	std::string error;
	Config *cfg = Config::createFromArgs(argc, argv, error, host, port);
	if (cfg == NULL) {
		std::cerr << error;
		return 1;
	}
	Logging::initBackendLogging(cfg);
	Swift::SimpleEventLoop eventLoop;
	Plugin p(cfg, &eventLoop, host, port);
	eventLoop.run();
	return 0;
}
 |