Esempio n. 1
0
 public function init()
 {
     $this->error = false;
     if ($this->loadConfig() === false) {
         $this->error = true;
         return;
     }
     $conn = new connection(null, $this->port, 0);
     $conn->setSocketClass($this->socketClass);
     $conn->setIrcClass($this->ircClass);
     $conn->setCallbackClass($this);
     $conn->setTimerClass($this->timerClass);
     $conn->setTransTimeout(15);
     $conn->init();
     if ($conn->getError()) {
         $this->error == true;
         return;
     }
     $this->httpListener = $conn;
     $this->html = $this;
 }
Esempio n. 2
0
 public function init()
 {
     $this->error = false;
     if ($this->loadConfig() === false) {
         $this->error = true;
         return;
     }
     $conn = new connection(null, $this->port, 0);
     $conn->setSocketClass($this->socketClass);
     $conn->setIrcClass($this->ircClass);
     $conn->setCallbackClass($this);
     $conn->setTimerClass($this->timerClass);
     $conn->setTransTimeout(15);
     $conn->init();
     if ($conn->getError()) {
         $this->error == true;
         return;
     }
     $this->httpListener = $conn;
     //$this->timerClass->addTimer("httpd_check_listeners", $this, "handleSessions", "", 0.25, false);
 }
Esempio n. 3
0
 public function connect()
 {
     if ($this->host == null || $this->port == null) {
         return false;
     }
     if (!is_object($this->socketClass)) {
         return false;
     }
     if (!is_object($this->ircClass)) {
         return false;
     }
     $conn = new connection($this->host, $this->port, CONNECT_TIMEOUT);
     $conn->setSocketClass($this->socketClass);
     $conn->setIrcClass($this->ircClass);
     $conn->setCallbackClass($this);
     $conn->setTimerClass($this->timerClass);
     /* Set Timeouts */
     $conn->setTransTimeout($this->transTimeout);
     $conn->init();
     if ($conn->getError()) {
         $this->setError("Could not allocate socket");
         return false;
     }
     $this->sockInt = $conn->getSockInt();
     $conn->connect();
     $this->connection = $conn;
     return true;
 }
Esempio n. 4
0
 private function onAccept()
 {
     //Get the sockInt from the socketClass
     $newSockInt = $this->socketClass->hasAccepted($this->sockInt);
     if ($newSockInt === false) {
         //False alarm.. just ignore it.
         return false;
     }
     //Create a new connection object for the new socket connection, then return it to onAccept
     //We must assume that onAccept will handle the connection object.  Otherwise it'll die, and the
     //connection will be orphaned.
     $newConn = new connection(null, null, 0);
     $newConn->setSocketClass($this->socketClass);
     $newConn->setIrcClass($this->ircClass);
     $newConn->setCallbackClass($this->callbackClass);
     //Can be overwritten in the onAccept function
     $newConn->setTimerClass($this->timerClass);
     $newConn->listen();
     //We don't need to call init(), we're already setup.
     //Setup our connection transmission timeout thing.
     if ($this->transTimeout > 0) {
         $this->timerClass->addTimer(irc::randomHash(), $newConn, "transTimeout", "", $this->transTimeout);
     }
     $newConn->setTransTimeout($this->transTimeout);
     //Set handler for our new sockInt to new connection class
     $this->socketClass->setHandler($newSockInt, $this->ircClass, $newConn, "handle");
     //Set our new sockInt
     $newConn->setSockInt($newSockInt);
     //Call our callback function for accepting with old object, and new object.
     $this->callbackClass->onAccept($this, $newConn);
     return false;
 }
Esempio n. 5
0
File: dcc.php Progetto: tseeker/LWB5
 public function addFile($nick, $host, $port, $type, $filename, $size, $fromTimer = false)
 {
     $reverse = false;
     if ($this->ircClass->getClientConf("mircdccreverse") != "" && $fromTimer == false && $type != DOWNLOAD) {
         $port = intval($this->ircClass->getClientConf("mircdccreverse"));
         if ($port == 0) {
             return NULL;
         }
         $args = new argClass();
         $args->arg1 = $nick;
         $args->arg2 = $host;
         $args->arg3 = $port;
         $args->arg4 = $type;
         $args->arg5 = $filename;
         $args->arg6 = $size;
         $args->arg7 = time();
         $args->arg8 = FILE;
         $this->ircClass->notice($nick, "DCC: NOTICE: This server is using the mIRC File Server Protocol.  Please use ' /dccserver +s on " . $this->ircClass->getClientConf("mircdccreverse") . " ' to recieve files from me!  Starting 6 second delay...", 0);
         $this->ircClass->sendRaw("WHOIS " . $nick);
         $this->timerClass->addTimer(irc::randomHash(), $this, "reverseTimer", $args, 6);
         return;
     }
     if ($fromTimer == true) {
         $reverse = DCC_REVERSE;
         // using mIRC dcc reverse protocol
     }
     if ($host == NULL || $port == NULL) {
         $conn = new connection(null, null, 0);
         $listening = true;
         $status = DCC_LISTENING;
     } else {
         $conn = new connection($host, $port, CONNECT_TIMEOUT);
         $listening = false;
         $status = DCC_CONNECTING;
     }
     $conn->setSocketClass($this->socketClass);
     $conn->setIrcClass($this->ircClass);
     $conn->setCallbackClass($this);
     $conn->setTransTimeout(30);
     $conn->setTimerClass($this->timerClass);
     $port = $conn->init();
     if ($conn->getError()) {
         $this->ircClass->log("File transfer start error: " . $conn->getErrorMsg());
         return false;
     }
     $sockInt = $conn->getSockInt();
     $id = $this->highestId();
     $file = new file($id, $nick, $sockInt, $host, $port, $type, $reverse);
     if ($file->transferType == UPLOAD) {
         $this->fileUlCount++;
     } else {
         $this->fileDlCount++;
     }
     $file->setIrcClass($this->ircClass);
     $file->setDccClass($this);
     $file->setSocketClass($this->socketClass);
     $file->setProcQueue($this->procQueue);
     $file->setTimerClass($this->timerClass);
     $file->connection = $conn;
     $file->status = $status;
     $file->removed = false;
     $this->dccList[$sockInt] = $file;
     $file->initialize($filename, $size);
     $conn->setCallbackClass($file);
     if ($listening == true) {
         $this->timerClass->addTimer(irc::randomHash(), $this, "checkDccTimeout", $file, 30, true);
     }
     if ($reverse == true) {
         $conn->connect();
     }
     return $port;
 }
Esempio n. 6
0
 public function reconnect()
 {
     $this->updateContext();
     try {
         $this->connectStartTime = time();
         $conn = new connection($this->getClientConf('server'), $this->getClientConf('port'), CONNECT_TIMEOUT);
         $this->conn = $conn;
         $conn->setSocketClass($this->socketClass);
         $conn->setIrcClass($this);
         $conn->setCallbackClass($this);
         $conn->setTimerClass($this->timerClass);
         $conn->init();
         if ($conn->getError()) {
             throw new ConnectException($conn->getErrorMsg());
         }
         //Bind socket...
         if ($this->getClientConf('bind') != "") {
             $conn->bind($this->getClientConf('bind'));
         }
         $this->sockInt = $conn->getSockInt();
         $conn->connect();
     } catch (ConnectException $e) {
         $this->beginReconnectTimer();
         $this->status = STATUS_ERROR;
         $this->exception = $e;
         return;
     }
     $this->status = STATUS_CONNECTING;
     $this->updateContext();
     return;
 }