示例#1
0
 public static function init(Dog_WorkerThread $worker)
 {
     Dog::setWorker($worker);
     Dog_Lang::init();
     self::initModules();
     foreach (Dog_Server::getAllServers() as $server) {
         $server instanceof Dog_Server;
         if ($server->isActive()) {
             Dog::addServer($server);
         }
     }
     Dog_Timer::init(self::getSleepMillis());
     Dog_Timer::addTimer(array(__CLASS__, 'initTimers'), NULL, count(Dog::getServers()) * Dog::CONNECT_WAIT + 1, false);
     Dog_Timer::addTimer(array('Dog', 'botReady'), NULL, count(Dog::getServers()) * Dog::CONNECT_WAIT + 2, false);
     self::$STARTUP_TIME = microtime(true);
     return true;
 }
示例#2
0
    $prot = $server->isSSL() ? 'ircs' : 'irc';
    $port = $server->getPort();
} else {
    $url = parse_url($argv[0]);
    if (!isset($url['host'])) {
        return $plugin->rply('err_url');
    }
    $host = $url['host'];
    $prot = isset($url['scheme']) ? strtolower($url['scheme']) : 'irc';
    if ($prot !== 'irc' && $prot !== 'ircs') {
        return $plugin->rply('err_url');
    }
    $default_port = $prot === 'ircs' ? 6697 : 6667;
    $port = isset($url['port']) ? intval($url['port']) : $default_port;
    $options = Dog_Server::DEFAULT_OPTIONS;
    $options |= $prot === 'ircs' ? Dog_Server::SSL : 0;
}
if (false !== ($server = Dog::getServerByArg($argv[0])) || false !== ($server = Dog::getServerByArg($host))) {
    $plugin->reply('reconnecting');
    $server->saveOption(Dog_Server::ACTIVE, true);
    $server->saveOption(Dog_Server::SSL, $prot === 'ircs');
    $server->saveVar('serv_port', $port);
} else {
    $plugin->reply('adding_server');
    $server = Dog_Server::getOrCreate($host, $port, $options);
    $server->setVar('dog_connector', Dog::getUser());
    $server->setConf('ircoppass', GWF_Random::randomKey(8));
    Dog::addServer($server);
}
$server->setConnectIn(0.5);
$plugin->rply('connect');