"Fossies" - the Fresh Open Source Software Archive

Member "serendipity/bundled-libs/Net/DNS2/RR/A.php" (20 Nov 2022, 4564 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 "A.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  * A Resource Record - RFC1035 section 3.4.1
   54  *
   55  *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   56  *    |                    ADDRESS                    |
   57  *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   58  *
   59  * @category Networking
   60  * @package  Net_DNS2
   61  * @author   Mike Pultz <mike@mikepultz.com>
   62  * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
   63  * @link     http://pear.php.net/package/Net_DNS2
   64  * @see      Net_DNS2_RR
   65  *
   66  */
   67 class Net_DNS2_RR_A extends Net_DNS2_RR
   68 {
   69     /*
   70      * The IPv4 address in quad-dotted notation
   71      */
   72     public $address;
   73 
   74     /**
   75      * method to return the rdata portion of the packet as a string
   76      *
   77      * @return  string
   78      * @access  protected
   79      *
   80      */
   81     protected function rrToString()
   82     {
   83         return $this->address;
   84     }
   85 
   86     /**
   87      * parses the rdata portion from a standard DNS config line
   88      *
   89      * @param array $rdata a string split line of values for the rdata
   90      *
   91      * @return boolean
   92      * @access protected
   93      *
   94      */
   95     protected function rrFromString(array $rdata)
   96     {
   97         $value = array_shift($rdata);
   98 
   99         if (Net_DNS2::isIPv4($value) == true) {
  100             
  101             $this->address = $value;
  102             return true;
  103         }
  104 
  105         return false;
  106     }
  107 
  108     /**
  109      * parses the rdata of the Net_DNS2_Packet object
  110      *
  111      * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
  112      *
  113      * @return boolean
  114      * @access protected
  115      * 
  116      */
  117     protected function rrSet(Net_DNS2_Packet &$packet)
  118     {
  119         if ($this->rdlength > 0) {
  120 
  121             $this->address = inet_ntop($this->rdata);
  122             if ($this->address !== false) {
  123             
  124                 return true;
  125             }
  126         }
  127 
  128         return false;
  129     }
  130 
  131     /**
  132      * returns the rdata portion of the DNS packet
  133      * 
  134      * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
  135      *                                 compressed names
  136      *
  137      * @return mixed                   either returns a binary packed 
  138      *                                 string or null on failure
  139      * @access protected
  140      * 
  141      */
  142     protected function rrGet(Net_DNS2_Packet &$packet)
  143     {
  144         $packet->offset += 4;
  145         return inet_pton($this->address);
  146     }
  147 }
  148 
  149 /*
  150  * Local variables:
  151  * tab-width: 4
  152  * c-basic-offset: 4
  153  * c-hanging-comment-ender-p: nil
  154  * End:
  155  */
  156 ?>