/usr/include/ptclib/enum.h is in libpt-dev 2.10.11~dfsg-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | /*
* pdns.h
*
* PWLib library for ENUM lookup
*
* Portable Windows Library
*
* Copyright (C) 2004 Post Increment
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Portable Windows Library.
*
* The Initial Developer of the Original Code is Post Increment
*
* Contributor(s): ______________________________________.
*
* $Revision: 24177 $
* $Author: rjongbloed $
* $Date: 2010-04-05 06:52:04 -0500 (Mon, 05 Apr 2010) $
*/
#ifndef PTLIB_ENUM_H
#define PTLIB_ENUM_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <ptclib/pdns.h>
#if P_DNS
namespace PDNS {
#ifndef NAPTR_SRV
#define NAPTR_SRV 35
#endif
///////////////////////////////////////////////////////////////////////////
class NAPTRRecord : public PObject
{
PCLASSINFO(NAPTRRecord, PObject);
public:
Comparison Compare(const PObject & obj) const;
void PrintOn(ostream & strm) const;
WORD order;
WORD preference;
PString flags;
PString service;
PString regex;
PString replacement;
};
PDECLARE_SORTED_LIST(NAPTRRecordList, PDNS::NAPTRRecord)
public:
void PrintOn(ostream & strm) const;
NAPTRRecord * GetFirst(const char * service = NULL);
NAPTRRecord * GetNext(const char * service = NULL);
PDNS::NAPTRRecord * HandleDNSRecord(PDNS_RECORD dnsRecord, PDNS_RECORD results);
void UnlockOrder()
{ orderLocked = false; }
protected:
PINDEX currentPos;
int lastOrder;
PBoolean orderLocked;
};
inline PBoolean GetRecords(const PString & domain, NAPTRRecordList & recordList)
{ return Lookup<NAPTR_SRV, NAPTRRecordList, NAPTRRecord>(domain, recordList); }
/**
* Set the default ENUM domain search list
*/
void SetENUMServers(const PStringArray & serverlist);
/**
* Perform a lookup of the specified DN using the specified service
* and domain list. Returns the resultant URL
*
* @return true if the DN could be resolved, else false
*/
PBoolean ENUMLookup(
const PString & dn, ///< DN to lookup
const PString & service, ///< ENUM service to use
const PStringArray & domains, ///< list of ENUM domains to search
PString & URL ///< resolved URL, if return value is true
);
/**
* Perform a lookup of the specified DN using the specified service
* using the default domain list. Returns the resultant URL.
*
* This function uses the default domain list, which can be set by the SetENUMServers function
*
* @return true if the DN could be resolved, else false
*/
PBoolean ENUMLookup(const PString & dn, ///< DN to lookup
const PString & service, ///< ENUM service to use
PString & URL ///< resolved URL, if return value is true
);
//////////////////////////////////////////////////////////////
/* Uniform Resource Name Resolver Discovery System URN RDS
This can be used to Host URI domains on hosting servers.
This implementation follows RFC 2915 sect 7.1 Example 2:
Example
Question: find h323:me@a.com by looking up mydomain.com
Query the top most NAPTR record of mydomain.com for h323:me@a.com
IN NAPTR 100 10 "" "" ^h323:(.+)@([a-z0-9\-\.]*);*(.*)$/\2.subs.mydomain.com/i
this converts a.com to a.com.subs.mydomain.com
Query H323+D2U NAPTR record for a.com.subs.mydomain.com
IN NAPTR 100 50 "s" "H323+D2U" "" _h323ls._udp.host.com
Query SRV records for host.com
_h323ls._udp.host.com 172800 IN SRV 0 0 1719 gk.host.com
Answer: find h323:me@a.com by LRQ to gk.host.com:1719
*/
/**
* Set the Default NAPTR server to lookup
*/
void SetRDSServers(const PStringArray & servers);
/**
* Perform a lookup of the specified url on the NAPTR
* server list (set by SetNAPTRServers) that uses the
* specified service. Returns the resultant corresponding
* signalling addresses
*
* @return true if the url could be resolved, else false
*/
PBoolean RDSLookup(const PURL & url, ///< URL to lookup
const PString & service, ///< Service to use
PStringList & dn ///< resolved addresses, if return value is true
);
/**
* Perform a lookup of the specified url on the NAPTR
* on the specified server list that uses the specified service
* Returns the resultant corresponding signalling addresses
*
* @return true if the url could be resolved, else false
*/
PBoolean RDSLookup(const PURL & url, ///< URL to lookup
const PString & service, ///< Service to use
const PStringArray & naptrSpaces, ///< RDS Servers to lookup
PStringList & returnStr ///< resolved addresses, if return value is true
);
}; // namespace PDNS
#endif // P_DNS
#endif // PTLIB_ENUM_H
// End Of File ///////////////////////////////////////////////////////////////
|