"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 ?>