X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=Uplink%2FUplink.class.php;h=6908ab7a0d5fb987eaa7aff54e3d2b7b58528f9f;hb=feed224b3e95ae3ce7b0832f214b1401e75d4419;hp=cd6e49bf492e52d52914fdd98b2dd133ed7f7671;hpb=2ccc33c2d482035ba66316fd7dc9592bc2e2db7d;p=PHP-P10.git diff --git a/Uplink/Uplink.class.php b/Uplink/Uplink.class.php index cd6e49b..6908ab7 100644 --- a/Uplink/Uplink.class.php +++ b/Uplink/Uplink.class.php @@ -46,6 +46,9 @@ * * void setValidateServer(String $name, String $password) * sets additional security relevant information about the remote server. + * + * void setEventHandler(EventHandler $event_handler) + * sets the EventHandlder */ require_once("Client.class.php"); require_once("Numerics.class.php"); @@ -64,6 +67,8 @@ class Uplink { const FLAG_SECURITY_QUIT = 0x0002; //local connection abort because of security issues const FLAG_NOT_CONNECTABLE = 0x0004; //remote server is not connectable const FLAG_BURST_PENDING = 0x0008; //we still have to burst + const FLAG_CONNECTED = 0x0010; //connected and synced (ready) + const FLAG_GOT_PASS = 0x0020; //got PASS from the remote Server private $flags = 0; public function __construct() { @@ -238,7 +243,9 @@ class Uplink { $this->flags |= self::FLAG_SECURITY_QUIT; $this->send("ERROR", "Incorrect password received."); $this->client->disconnect(); + return; } + $this->flags |= self::FLAG_GOT_PASS; } } @@ -258,6 +265,12 @@ class Uplink { $this->client->disconnect(); return; } + if($this->getSetting("their_password") && !($this->flags & self::FLAG_GOT_PASS)) { + $this->flags |= self::FLAG_SECURITY_QUIT; + $this->send("ERROR", "PASS missing."); + $this->client->disconnect(); + return; + } $new_server = new P10_Server($args[0], substr($args[5],0,2), $this->server, $args[2], $args[3], $args[7]); $this->server->addServer($new_server); $this->flags |= self::FLAG_P10SESSION | self::FLAG_BURST_PENDING; @@ -318,7 +331,7 @@ class Uplink { } private function recv_end_of_burst_ack($from, $args) { - //nothing to do here? + $this->flags |= self::FLAG_CONNECTED; } private function recv_server_quit($from, $args) { @@ -340,7 +353,6 @@ class Uplink { } private function recv_burst($from, $args) { - //AK B #aide 1292621006 +tn ALAMH:o $name = $args[0]; $create_time = $args[1]; $channel = P10_Channel::getChannelByName($name);