Net_DNS
[ class tree: Net_DNS ] [ index: Net_DNS ] [ all elements ]

Source for file TXT.php

Documentation is available at TXT.php

  1. <?php
  2. /*
  3.  *  License Information:
  4.  *
  5.  *    Net_DNS:  A resolver library for PHP
  6.  *    Copyright (c) 2002-2003 Eric Kilfoil eric@ypass.net
  7.  *
  8.  *    This library is free software; you can redistribute it and/or
  9.  *    modify it under the terms of the GNU Lesser General Public
  10.  *    License as published by the Free Software Foundation; either
  11.  *    version 2.1 of the License, or (at your option) any later version.
  12.  *
  13.  *    This library is distributed in the hope that it will be useful,
  14.  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  *    Lesser General Public License for more details.
  17.  *
  18.  *    You should have received a copy of the GNU Lesser General Public
  19.  *    License along with this library; if not, write to the Free Software
  20.  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22.  
  23. /* Net_DNS_RR_TXT definition {{{ */
  24. /**
  25.  * A representation of a resource record of type <b>TXT</b>
  26.  *
  27.  * @package Net_DNS
  28.  */
  29. class Net_DNS_RR_TXT extends Net_DNS_RR
  30. {
  31.     /* class variable definitions {{{ */
  32.     var $name;
  33.     var $type;
  34.     var $class;
  35.     var $ttl;
  36.     var $rdlength;
  37.     var $rdata;
  38.     var $text;
  39.  
  40.     /* }}} */
  41.     /* class constructor - RR(&$rro, $data, $offset = '') {{{ */
  42.     function Net_DNS_RR_TXT(&$rro$data$offset '')
  43.     {
  44.         $this->name = $rro->name;
  45.         $this->type = $rro->type;
  46.         $this->class = $rro->class;
  47.         $this->ttl = $rro->ttl;
  48.         $this->rdlength = $rro->rdlength;
  49.         $this->rdata = $rro->rdata;
  50.  
  51.         if ($offset{
  52.             if ($this->rdlength > 0{
  53.                 $maxoffset $this->rdlength + $offset;
  54.                 while ($maxoffset $offset{
  55.                     list($text$offsetNet_DNS_Packet::label_extract($data$offset);
  56.                     $this->text[$text;
  57.                 }
  58.             }
  59.         else {
  60.             $data str_replace('\\\\'chr(1chr(1)$data)/* disguise escaped backslash */
  61.             $data str_replace('\\"'chr(2chr(2)$data)/* disguise \" */
  62.  
  63.             ereg('("[^"]*"|[^ \t]*)[ \t]*$'$data$regs);
  64.             $regs[1str_replace(chr(2chr(2)'\\"'$regs[1]);
  65.             $regs[1str_replace(chr(1chr(1)'\\\\'$regs[1]);
  66.             $regs[1stripslashes($regs[1]);
  67.  
  68.             $this->text = $regs[1];
  69.         }
  70.     }
  71.  
  72.     /* }}} */
  73.     /* Net_DNS_RR_TXT::rdatastr() {{{ */
  74.     function rdatastr()
  75.     {
  76.         if ($this->text{
  77.              if (is_array($this->text)) {
  78.                  $tmp = array();
  79.                  foreach ($this->text as $t{
  80.                      $tmp['"'.addslashes($t).'"';
  81.                  }
  82.                  return implode(' ',$tmp);
  83.              else {
  84.                  return '"' addslashes($this->text'"';
  85.              }
  86.         else return '; no data';
  87.     }
  88.  
  89.     /* }}} */
  90.     /* Net_DNS_RR_TXT::rr_rdata($packet, $offset) {{{ */
  91.     function rr_rdata($packet$offset)
  92.     {
  93.         if ($this->text{
  94.             $rdata  pack('C'strlen($this->text)) $this->text;
  95.             return $rdata;
  96.         }
  97.         return null;
  98.     }
  99.  
  100.     /* }}} */
  101. }
  102. /* }}} */
  103. /* VIM settings {{{
  104.  * Local variables:
  105.  * tab-width: 4
  106.  * c-basic-offset: 4
  107.  * soft-stop-width: 4
  108.  * c indent on
  109.  * End:
  110.  * vim600: sw=4 ts=4 sts=4 cindent fdm=marker et
  111.  * vim<600: sw=4 ts=4
  112.  * }}} */
  113. ?>

Documentation generated on Mon, 11 Mar 2019 14:48:00 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.