~ubuntu-branches/ubuntu/utopic/php-net-dns2/utopic-proposed

« back to all changes in this revision

Viewing changes to Net_DNS2-1.3.2/Net/DNS2/RR/X25.php

  • Committer: Package Import Robot
  • Author(s): Mathieu Parent
  • Date: 2014-02-21 16:59:58 UTC
  • Revision ID: package-import@ubuntu.com-20140221165958-tyc92gchfhho9660
Tags: upstream-1.3.2
ImportĀ upstreamĀ versionĀ 1.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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: X25.php 179 2012-11-23 05:49:01Z mike.pultz $
 
47
 * @link      http://pear.php.net/package/Net_DNS2
 
48
 * @since     File available since Release 0.6.0
 
49
 *
 
50
 */
 
51
 
 
52
/**
 
53
 * X25 Resource Record - RFC1183 section 3.1
 
54
 *
 
55
 *    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 
56
 *    /                  PSDN-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_X25 extends Net_DNS2_RR
 
68
{
 
69
    /*
 
70
     * The PSDN address
 
71
      */
 
72
    public $psdnaddress;
 
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->formatString($this->psdnaddress);
 
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
        $data = $this->buildString($rdata);
 
98
        if (count($data) == 1) {
 
99
 
 
100
            $this->psdnaddress = $data[0];
 
101
            return true;
 
102
        }
 
103
 
 
104
        return false;
 
105
    }
 
106
 
 
107
    /**
 
108
     * parses the rdata of the Net_DNS2_Packet object
 
109
     *
 
110
     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from
 
111
     *
 
112
     * @return boolean
 
113
     * @access protected
 
114
     *
 
115
     */
 
116
    protected function rrSet(Net_DNS2_Packet &$packet)
 
117
    {
 
118
        if ($this->rdlength > 0) {
 
119
 
 
120
            $this->psdnaddress = Net_DNS2_Packet::label($packet, $packet->offset);
 
121
            return true;
 
122
        }
 
123
 
 
124
        return false;
 
125
    }
 
126
 
 
127
    /**
 
128
     * returns the rdata portion of the DNS packet
 
129
     *
 
130
     * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for
 
131
     *                                 compressed names
 
132
     *
 
133
     * @return mixed                   either returns a binary packed
 
134
     *                                 string or null on failure
 
135
     * @access protected
 
136
     *
 
137
     */
 
138
    protected function rrGet(Net_DNS2_Packet &$packet)
 
139
    {
 
140
        if (strlen($this->psdnaddress) > 0) {
 
141
 
 
142
            $data = chr(strlen($this->psdnaddress)) . $this->psdnaddress;
 
143
            
 
144
            $packet->offset += strlen($data);
 
145
 
 
146
            return $data;
 
147
        }
 
148
        
 
149
        return null; 
 
150
    }
 
151
}
 
152
 
 
153
/*
 
154
 * Local variables:
 
155
 * tab-width: 4
 
156
 * c-basic-offset: 4
 
157
 * c-hanging-comment-ender-p: nil
 
158
 * End:
 
159
 */
 
160
?>