This file is indexed.

/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 ///////////////////////////////////////////////////////////////