"Fossies" - the Fresh Open Source Software Archive 
Member "serendipity/bundled-libs/Net/DNS2/RR/AAAA.php" (20 Nov 2022, 5491 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 "AAAA.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 * | |
57 * | |
58 * | |
59 * | ADDRESS |
60 * | |
61 * | (128 bit) |
62 * | |
63 * | |
64 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
65 *
66 * @category Networking
67 * @package Net_DNS2
68 * @author Mike Pultz <mike@mikepultz.com>
69 * @license http://www.opensource.org/licenses/bsd-license.php BSD License
70 * @link http://pear.php.net/package/Net_DNS2
71 * @see Net_DNS2_RR
72 *
73 */
74 class Net_DNS2_RR_AAAA extends Net_DNS2_RR
75 {
76 /*
77 * the IPv6 address in the preferred hexadecimal values of the eight
78 * 16-bit pieces
79 * per RFC1884
80 *
81 */
82 public $address;
83
84 /**
85 * method to return the rdata portion of the packet as a string
86 *
87 * @return string
88 * @access protected
89 *
90 */
91 protected function rrToString()
92 {
93 return $this->address;
94 }
95
96 /**
97 * parses the rdata portion from a standard DNS config line
98 *
99 * @param array $rdata a string split line of values for the rdata
100 *
101 * @return boolean
102 * @access protected
103 *
104 */
105 protected function rrFromString(array $rdata)
106 {
107 //
108 // expand out compressed formats
109 //
110 $value = array_shift($rdata);
111 if (Net_DNS2::isIPv6($value) == true) {
112
113 $this->address = $value;
114 return true;
115 }
116
117 return false;
118 }
119
120 /**
121 * parses the rdata of the Net_DNS2_Packet object
122 *
123 * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
124 *
125 * @return boolean
126 * @access protected
127 *
128 */
129 protected function rrSet(Net_DNS2_Packet &$packet)
130 {
131 //
132 // must be 8 x 16bit chunks, or 16 x 8bit
133 //
134 if ($this->rdlength == 16) {
135
136 //
137 // PHP's inet_ntop returns IPv6 addresses in their compressed form,
138 // but we want to keep with the preferred standard, so we'll parse
139 // it manually.
140 //
141 $x = unpack('n8', $this->rdata);
142 if (count($x) == 8) {
143
144 $this->address = vsprintf('%x:%x:%x:%x:%x:%x:%x:%x', $x);
145 return true;
146 }
147 }
148
149 return false;
150 }
151
152 /**
153 * returns the rdata portion of the DNS packet
154 *
155 * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
156 * compressed names
157 *
158 * @return mixed either returns a binary packed
159 * string or null on failure
160 * @access protected
161 *
162 */
163 protected function rrGet(Net_DNS2_Packet &$packet)
164 {
165 $packet->offset += 16;
166 return inet_pton($this->address);
167 }
168 }
169
170 /*
171 * Local variables:
172 * tab-width: 4
173 * c-basic-offset: 4
174 * c-hanging-comment-ender-p: nil
175 * End:
176 */
177 ?>