"Fossies" - the Fresh Open Source Software Archive

Member "serendipity/bundled-libs/Net/DNS2/RR/AFSDB.php" (20 Nov 2022, 5155 Bytes) of package /linux/www/serendipity-2.4.0.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "AFSDB.php" see the Fossies "Dox" file reference documentation.

    1 <?php
    2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
    3 
    4 /**
    5  * DNS Library for handling lookups and updates. 
    6  *
    7  * PHP Version 5
    8  *
    9  * Copyright (c) 2010, Mike Pultz <mike@mikepultz.com>.
   10  * All rights reserved.
   11  *
   12  * Redistribution and use in source and binary forms, with or without
   13  * modification, are permitted provided that the following conditions
   14  * are met:
   15  *
   16  *   * Redistributions of source code must retain the above copyright
   17  *     notice, this list of conditions and the following disclaimer.
   18  *
   19  *   * Redistributions in binary form must reproduce the above copyright
   20  *     notice, this list of conditions and the following disclaimer in
   21  *     the documentation and/or other materials provided with the
   22  *     distribution.
   23  *
   24  *   * Neither the name of Mike Pultz nor the names of his contributors 
   25  *     may be used to endorse or promote products derived from this 
   26  *     software without specific prior written permission.
   27  *
   28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   29  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   30  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
   31  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   32  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
   33  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
   34  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   35  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
   36  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC
   37  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
   38  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   39  * POSSIBILITY OF SUCH DAMAGE.
   40  *
   41  * @category  Networking
   42  * @package   Net_DNS2
   43  * @author    Mike Pultz <mike@mikepultz.com>
   44  * @copyright 2010 Mike Pultz <mike@mikepultz.com>
   45  * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
   46  * @version   SVN: $Id$
   47  * @link      http://pear.php.net/package/Net_DNS2
   48  * @since     File available since Release 0.6.0
   49  *
   50  */
   51 
   52 /**
   53  * AFSDB Resource Record - RFC1183 section 1
   54  *
   55  *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   56  *    |                    SUBTYPE                    |
   57  *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   58  *    /                    HOSTNAME                   /
   59  *    /                                               /
   60  *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   61  *
   62  * @category Networking
   63  * @package  Net_DNS2
   64  * @author   Mike Pultz <mike@mikepultz.com>
   65  * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
   66  * @link     http://pear.php.net/package/Net_DNS2
   67  * @see      Net_DNS2_RR
   68  *
   69  */
   70 class Net_DNS2_RR_AFSDB extends Net_DNS2_RR
   71 {
   72     /*
   73      * The AFSDB sub type
   74      */
   75     public $subtype;
   76 
   77     /*
   78      * The AFSDB hostname
   79      */
   80     public $hostname;
   81 
   82     /**
   83      * method to return the rdata portion of the packet as a string
   84      *
   85      * @return  string
   86      * @access  protected
   87      *
   88      */
   89     protected function rrToString()
   90     {
   91         return $this->subtype . ' ' . $this->cleanString($this->hostname) . '.';
   92     }
   93 
   94     /**
   95      * parses the rdata portion from a standard DNS config line
   96      *
   97      * @param array $rdata a string split line of values for the rdata
   98      *
   99      * @return boolean
  100      * @access protected
  101      *
  102      */
  103     protected function rrFromString(array $rdata)
  104     {
  105         $this->subtype  = array_shift($rdata);
  106         $this->hostname = $this->cleanString(array_shift($rdata));
  107 
  108         return true;
  109     }
  110 
  111     /**
  112      * parses the rdata of the Net_DNS2_Packet object
  113      *
  114      * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
  115      *
  116      * @return boolean
  117      * @access protected
  118      *
  119      */
  120     protected function rrSet(Net_DNS2_Packet &$packet)
  121     {
  122         if ($this->rdlength > 0) {
  123             
  124             //
  125             // unpack the subtype
  126             //
  127             $x = unpack('nsubtype', $this->rdata);
  128 
  129             $this->subtype  = $x['subtype'];
  130             $offset         = $packet->offset + 2;
  131 
  132             $this->hostname = Net_DNS2_Packet::expand($packet, $offset);
  133 
  134             return true;
  135         }
  136 
  137         return false;
  138     }
  139 
  140     /**
  141      * returns the rdata portion of the DNS packet
  142      *
  143      * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
  144      *                                 compressed names
  145      *
  146      * @return mixed                   either returns a binary packed
  147      *                                 string or null on failure
  148      * @access protected
  149      *
  150      */
  151     protected function rrGet(Net_DNS2_Packet &$packet)
  152     {
  153         if (strlen($this->hostname) > 0) {
  154             
  155             $data = pack('n', $this->subtype);
  156             $packet->offset += 2;
  157             
  158             $data .= $packet->compress($this->hostname, $packet->offset);
  159 
  160             return $data;
  161         }
  162         
  163         return null; 
  164     }
  165 }
  166 
  167 /*
  168  * Local variables:
  169  * tab-width: 4
  170  * c-basic-offset: 4
  171  * c-hanging-comment-ender-p: nil
  172  * End:
  173  */
  174 ?>