Beispiel #1
1
 function processPacket($packetData)
 {
     $packet = new dhcpPacket();
     $packet->parse($packetData);
     $processor = new dhcpRequestProcessor($this, $this->packetProcessor, $this->storage, $packet);
     if ($responsePacket = $processor->getResponse()) {
         $responseData = $responsePacket->build();
         $this->verbosity && (print "Sending response" . "\n");
         $ciaddr = $packet->getClientAddress();
         if ($ciaddr == '0.0.0.0') {
             $this->verbosity && (print "Switching to broadcast address...\n");
             $ciaddr = '255.255.255.255';
         }
         $this->verbosity && (print "Attempting to send response packet to " . $ciaddr . "\n");
         $numBytesSent = socket_sendto($this->socket, $responseData, strlen($responseData), 0, $ciaddr, 68);
         if ($numBytesSent === FALSE) {
             $this->verbosity && (print "send failed for specific address, broadcast.\n");
             $numBytesSent = socket_sendto($this->socket, $responseData, strlen($responseData), 0, "255.255.255.255", 68);
             $numBytesSent === FALSE && $this->verbosity && printf('socket send error: %s\\n', socket_strerror(socket_last_error($this->socket)));
         }
         $numBytesSent && $this->verbosity && (print "Response packet sent.\n");
     } else {
         $this->verbosity && (print "Packet ignored\n");
     }
 }
Beispiel #2
0
 function processPacket($packetData)
 {
     $packet = new dhcpPacket();
     $packet->parse($packetData);
     print_r($packet);
     // $processor = new dhcpRequestProcessor($this->storage, $packet);
     //
     // $responsePacket = $processor->getResponse();
     // $responseData = $responsePacket->build();
     // print("sending response" . "\n");
     // $ciaddr = $packet->getClientAddress();
     // if ($ciaddr == '0.0.0.0') {
     //     print("Switching to broadcast address...\n");
     //     $ciaddr = '255.255.255.255';
     // }
     // print("attempting to send packet to " . $ciaddr . "\n");
     // $error = socket_sendto($this->socket, $responseData, strlen($responseData), 0, $ciaddr, 68);
     // if ($error === FALSE) {
     //     print("send failed for specific address, broadcast.\n");
     //     $error = socket_sendto($this->socket, $responseData, strlen($responseData), 0, "255.255.255.255", 68);
     // }
     // print('socket send error: ' . $error . "\n");
 }