Пример #1
0
 /**
  * Parse directory status reply (v3 directory style)
  *
  * @param ProtocolReply $reply The reply to parse
  * @return array Array of \Dapphp\TorUtils\RouterDescriptor objects
  */
 public function parseRouterStatus(ProtocolReply $reply)
 {
     $descriptors = array();
     $descriptor = null;
     foreach ($reply->getReplyLines() as $line) {
         switch ($line[0][0]) {
             case 'r':
                 if ($descriptor != null) {
                     $descriptors[$descriptor->fingerprint] = $descriptor;
                 }
                 $descriptor = new RouterDescriptor();
                 $descriptor->setArray($this->_parseRLine($line));
                 break;
             case 'a':
                 $descriptor->setArray($this->_parseALine($line));
                 break;
             case 's':
                 $descriptor->setArray($this->_parseSLine($line));
                 break;
             case 'v':
                 $descriptor->setArray($this->_parsePlatform($line));
                 break;
             case 'w':
                 $descriptor->setArray($this->_parseWLine($line));
                 break;
             case 'p':
                 $descriptor->setArray($this->_parsePLine($line));
                 break;
         }
     }
     $descriptors[$descriptor->fingerprint] = $descriptor;
     return $descriptors;
 }