本文整理汇总了C++中ConfigFile::c2s方法的典型用法代码示例。如果您正苦于以下问题:C++ ConfigFile::c2s方法的具体用法?C++ ConfigFile::c2s怎么用?C++ ConfigFile::c2s使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConfigFile
的用法示例。
在下文中一共展示了ConfigFile::c2s方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
}
else if(parpid != 0) {
exit(0); // успешно создан дочерний процесс, основной можно завершить
}
setsid();
}
// после форка записать pid
if ( fpid )
{
fprintf(fpid, "%d", getpid());
fclose(fpid);
fpid = 0;
}
// демон управляющий воркерами вводом-выводом
struct rlimit rl;
if ( getrlimit(RLIMIT_NOFILE, &rl) == -1 )
{
fprintf(stderr, "getrlimit fault: %s\n", strerror(errno));
return 1;
}
printf("files limit: %lu\n", rl.rlim_cur);
NetDaemon daemon(rl.rlim_cur, config->getOutputBuffers());
// устанавливаем скорректированное число воркеров
daemon.setWorkerCount(config->workers() - 1);
// XMPP-сервер
server = new XMPPServer(&daemon);
server->config = config;
// подключемся к c2s-порту из конфига
server->bind(config->c2s());
// не более 10 ожидающих соединений
server->listen(10);
// добавляем виртуальные хосты
printf("[main] loading virtual hosts\n");
for(XmlTag *vhost = config->firstHost(); vhost; vhost = config->nextHost(vhost)) {
printf("[main] load vhost: %s\n", vhost->getAttribute("name").c_str());
server->addHost(vhost->getAttribute("name"), vhost);
}
printf("[main] virtual hosts loaded\n");
// асинхронный резолвер
nanosoft::ptr<AsyncDNS> dns = new AsyncDNS(&daemon);
daemon.addObject(dns);
server->adns = dns;
// добавляем сервер в демона
daemon.addObject(server);
int port = config->xep0114();
if ( port > 0 ) {
nanosoft::ptr<XEP0114Listener> xep0114 = new XEP0114Listener(server.getObject());
xep0114->bind(port);
xep0114->listen(10);
daemon.addObject(xep0114);
}
port = config->s2s();
if ( port > 0 )
{
server->s2s = new S2SListener(server.getObject());