This file is indexed.

/usr/include/curlpp/cURLpp.hpp is in libcurlpp-dev 0.7.3-6.

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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
/*
 *    Copyright (c) <2002-2009> <Jean-Philippe Barrette-LaPierre>
 *    
 *    Permission is hereby granted, free of charge, to any person obtaining
 *    a copy of this software and associated documentation files 
 *    (curlpp), to deal in the Software without restriction, 
 *    including without limitation the rights to use, copy, modify, merge,
 *    publish, distribute, sublicense, and/or sell copies of the Software,
 *    and to permit persons to whom the Software is furnished to do so, 
 *    subject to the following conditions:
 *    
 *    The above copyright notice and this permission notice shall be included
 *    in all copies or substantial portions of the Software.
 *    
 *    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 *    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
 *    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
 *    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
 *    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 *    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


#ifndef CURLPP_CURLPP_HPP
#define CURLPP_CURLPP_HPP

#define LIBCURLPP_VERSION "0.7.3"
#define LIBCURLPP_VERSION_NUM 0x000703


#include "internal/buildconfig.h"

#include <curl/curl.h>

#include <string>
#include <cstdlib>

namespace curlpp
{

	/**
	* This function takes care of initializing curlpp (also libcURL).
	*
	* If you want to cleanup cURL before your application quits just call curlpp::terminate().
	* This function should only be called once (no matter how many threads or 
	* libcurl sessions that'll be used) by every application that uses libcurl, 
	* it will throw a logic_error if you call it twice.
	*
	* The flags option is a bit pattern that tells  libcurl  exact what  features
	* to init, as described below. Set the desired bits by ORing the values together.
	*
	* CURL_GLOBAL_ALL
	* Initialize  everything  possible.  This  sets all known bits.
	*
	* CURL_GLOBAL_SSL
	* Initialize SSL
	*  
	* CURL_GLOBAL_WIN32
	* Initialize  the  Win32  socket  libraries.
	*
	* CURL_GLOBAL_NOTHING
	* Initialise nothing extra. This sets no bit.
	*
	* NOTE: you should never call this function twice.
	*/

	void CURLPPAPI initialize(long flags = CURL_GLOBAL_ALL);

	/**
	* This function takes care of cleaning up curlpp (also libcURL). 
	* 
	* See curlpp::initialize(long flags) for more documentation.
	* NOTE: you cannot call this function if curlpp is not loaded, or if you already
	* called in once; it will throw a logic_error if you do otherwise.
	*/

	void CURLPPAPI terminate();

	/**
	* \depreciated This is an obsolete class. DO NOT use it. 
	*
	* The only reason it's still here,
	* is to be sure that it is backward compatible. This class was taking care of 
	* initialization and cleaning up curlpp (also libcURL) (it was calling 
	* curlpp:terminate() in his destructor). However, from now on, you do not need
	* this class. Note that the removal of this class was done because it was 
	* raising some threading issues. 
	*
	* Old documentation of that class: 
	*
	* If you want to be sure that curlpp is cleaned up after you reached 
	* the end of scope of a specific function using curlpp, instantiate 
	* this class. This function call curlpp::initialize() in his 
	* constructor, so you don't have to call it by yourself, when you have 
	* decided to use it.
	*
	* See curlpp::initialize(long flags) and curlpp:terminate() for more documentation.
	*/

	class CURLPPAPI Cleanup
	{

	public:

		Cleanup();
		~Cleanup();

	};

	/**
	* URL encodes string. 
	*
	* This  function  will  convert  the given input string to an URL encoded
	* string and return that as a new allocated string. All input  characters
	* that  are  not a-z, A-Z or 0-9 will be converted to their "URL escaped"
	* version (%NN where NN is a two-digit hexadecimal number).
	*/

	std::string CURLPPAPI escape(const std::string & url);

	/**
	* Decodes URL encoded string. 
	*
	* This  function  will  convert  the  given  URL encoded input string to a
	* "plain string" and return that as a new allocated string. All input
	* characters that are URL encoded (%XX) where XX is a two-digit
	* hexadecimal number, or +) will be converted to their plain text versions
	* (up to a ? letter, no + letters to the right of a ? letter will be
	* converted).
	*/

	std::string CURLPPAPI unescape(const std::string & url);

	/**
	* Portable wrapper for the getenv() function.
	*
	* It's meant to emulate 
	* its behaviour and provide an identical interface for all operating
	* systems libcurl builds on (including win32). Under unix operating
	* systems, there isn't any point in returning an allocated memory,
	* although other systems won't work  properly if this isn't done. The unix
	* implementation thus have to suffer slightly from the drawbacks of other
	* systems.
	*/

	std::string CURLPPAPI getenv(const std::string & name);

	/**
	* Returns  a  human readable string with the version number of libcurl and
	* some of its important components  (like  OpenSSL version).
	*
	* Note:  this  returns  the  actual running lib's version, you might have
	* installed a newer lib's include files in your system  which may turn
	* your LIBCURL_VERSION #define value to differ from this result.
	*/
	std::string CURLPPAPI libcurlVersion();

	/**
	* This function returns the number of  seconds  since  January 1st  1970,
	* for the date and time that the datestring parameter specifies. The now
	* parameter is there and should hold the current time to allow the
	* datestring to specify relative dates/times. Read further in the date
	* string parser section below.
	*
	* PARSING DATES AND TIMES
	* A  "date" is a string, possibly empty, containing many items separated
	* by whitespace.  The whitespace may be omitted when no ambiguity
	* arises.  The empty string means the beginning of today (i.e., midnight).
	* Order of the items is immaterial. A date string may contain many
	* flavors of items:
	*
	* calendar date items
	* This can be specified in a number of different ways. Including
	* 1970-09-17, 70-9-17, 70-09-17, 9/17/72, 24 September 1972, 24 Sept 72,
	* 24 Sep 72, Sep 24, 1972, 24-sep-72, 24sep72.  The year can also  be
	* omitted, for example: 9/17 or "sep 17".
	* 
	* time of the day items
	* This  string specifies the time on a given day. Syntax supported
	* includes: 18:19:0, 18:19, 6:19pm, 18:19-0500 (for specifying the time
	* zone as well).
	*
	* time zone items
	* Specifies international time zone. There are a few acronyms
	* supported, but in general you should instead use the specific
	* realtive time compared to UTC. Supported formats include: -1200, MST,
	* +0100.
	*
	* day of the week items
	* Specifies a day of the week. If this is mentioned alone it means that
	* day of the week in the future. Days of the week may be spelled out in
	* full: `Sunday', `Monday', etc or they may be abbreviated to their
	* first three letters, optionally followed by a period. The special
	* abbreviations `Tues' for `Tuesday', `Wednes' for `Wednesday' and `Thur'
	* or `Thurs' for `Thursday' are also allowed. A number may precede a day
	* of the week item to move forward supplementary weeks. It is best
	* used in expression like `third monday'. In this context, `last DAY'
	* or `next DAY' is also acceptable; they move one week before or after
	* the day that DAY by itself would represent.
	*
	* relative items
	* A relative item adjusts a date (or the current date if none) forward
	* or backward. Example syntax includes: "1 year", "1 year ago",
	* "2 days", "4 weeks". The string `tomorrow' is worth one day in the
	* future (equivalent to `day'), the string `yesterday' is worth one
	* day in the past (equivalent to `day ago').
	*
	* pure numbers
	* If the decimal number is of the form YYYYMMDD and no other calendar date
	* item appears before it in the date string, then YYYY is read as
	* the year, MM as the month number and DD as the day of the month, for the
	* specified calendar date.
	*/

	time_t CURLPPAPI getdate(const std::string & date, time_t * now = 0);


} // namespace curlpp

namespace cURLpp = curlpp;


#endif // #ifndef CURLPP_CURLPP_HPP