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) 2011, 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 2011 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 1.2.0 49 * 50 */ 51 52/** 53 * TALINK Resource Record - DNSSEC Trust Anchor 54 * 55 * http://tools.ietf.org/id/draft-ietf-dnsop-dnssec-trust-history-00.txt 56 * 57 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 58 * / PREVIOUS / 59 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 60 * / NEXT / 61 * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 62 * 63 * @category Networking 64 * @package Net_DNS2 65 * @author Mike Pultz <mike@mikepultz.com> 66 * @license http://www.opensource.org/licenses/bsd-license.php BSD License 67 * @link http://pear.php.net/package/Net_DNS2 68 * @see Net_DNS2_RR 69 * 70 */ 71class Net_DNS2_RR_TALINK extends Net_DNS2_RR 72{ 73 /* 74 * the previous domain name 75 */ 76 public $previous; 77 78 /* 79 * the next domain name 80 */ 81 public $next; 82 83 /** 84 * method to return the rdata portion of the packet as a string 85 * 86 * @return string 87 * @access protected 88 * 89 */ 90 protected function rrToString() 91 { 92 return $this->cleanString($this->previous) . '. ' . 93 $this->cleanString($this->next) . '.'; 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 $this->previous = $this->cleanString($rdata[0]); 108 $this->next = $this->cleanString($rdata[1]); 109 110 return true; 111 } 112 113 /** 114 * parses the rdata of the Net_DNS2_Packet object 115 * 116 * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet to parse the RR from 117 * 118 * @return boolean 119 * @access protected 120 * 121 */ 122 protected function rrSet(Net_DNS2_Packet &$packet) 123 { 124 if ($this->rdlength > 0) { 125 126 $offset = $packet->offset; 127 128 $this->previous = Net_DNS2_Packet::label($packet, $offset); 129 $this->next = Net_DNS2_Packet::label($packet, $offset); 130 131 return true; 132 } 133 134 return false; 135 } 136 137 /** 138 * returns the rdata portion of the DNS packet 139 * 140 * @param Net_DNS2_Packet &$packet a Net_DNS2_Packet packet use for 141 * compressed names 142 * 143 * @return mixed either returns a binary packed 144 * string or null on failure 145 * @access protected 146 * 147 */ 148 protected function rrGet(Net_DNS2_Packet &$packet) 149 { 150 if ( (strlen($this->previous) > 0) || (strlen($this->next) > 0) ) { 151 152 $data = chr(strlen($this->previous)) . $this->previous . 153 chr(strlen($this->next)) . $this->next; 154 155 $packet->offset += strlen($data); 156 157 return $data; 158 } 159 160 return null; 161 } 162} 163 164/* 165 * Local variables: 166 * tab-width: 4 167 * c-basic-offset: 4 168 * c-hanging-comment-ender-p: nil 169 * End: 170 */ 171?> 172