This file is indexed.

/usr/include/ui-utilcpp/http/Connection.hpp is in libui-utilcpp-dev 1.8.3-3.

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
/**
 * @file
 */
#ifndef UI_UTIL_HTTP_CONNECTION_HPP
#define UI_UTIL_HTTP_CONNECTION_HPP

// STDC++
#include <iostream>
#include <string>
#include <vector>

// C++ Libraries
#include <ui-utilcpp/Socket.hpp>
#include <ui-utilcpp/http/Header.hpp>

namespace UI {
namespace Util {
namespace Http {

class Connection
{
private:
	Socket *        const socket_;
	std::iostream * const stream_;
	bool            const externalStream_;

	/** @brief Helper for constructors to destroy internal data on exception. */
	void destroy();
public:
	/** Connection w/ an existing stream. */
	Connection(std::iostream & stream);

	/** Connection w/ an open (socket) file descriptor. */
	Connection(int fd, bool closeFd=false,
	           long int rcvToSeconds=0, long int rcvToMicroseconds=0,
	           long int sndToSeconds=0, long int sndToMicroseconds=0,
	           bool noBlock=false);

	/** Connection w/ an INet peer. */
	Connection(std::string const & host, unsigned int port,
	           long int rcvToSeconds=0, long int rcvToMicroseconds=0,
	           long int sndToSeconds=0, long int sndToMicroseconds=0,
	           bool noBlock=false);

#ifndef WIN32
	/** Connection w/ an UNIX peer. */
	Connection(std::string const & path,
	           long int rcvToSeconds=0, long int rcvToMicroseconds=0,
	           long int sndToSeconds=0, long int sndToMicroseconds=0,
	           bool noBlock=false);
#endif

	~Connection();

	/** @name Get socket information.
	 * @{ */
	std::string getId() const;
	std::string getPeerId() const;
	std::string getConnId() const;
	/** @} */

	/** @name Get stream for arbitrary use.
	 * @{ */
	std::iostream const & s() const;
	std::iostream       & s();
	/** @} */

private:
	std::streamsize readBlock(char * const buf, std::streamsize const & size, bool doThrow=true);

public:
	/** @name Read utilities.
	 * @{ */
	std::string readLine();
	std::streamsize readBlock(std::string & block, std::streamsize const & size, bool doThrow=true);
	std::string readBlock(std::streamsize const & size);
	std::vector<char> readBlockVec(std::streamsize const & size);
	Header & readHeader(Header & header);
	Header readHeader();
	/** @} */

	/** @name Write utilities.
	 * @{ */
	Connection & writeLine(std::string const & line="");
	Connection & write(std::string const & block);
	Connection & write(StatusLine const & statusLine);
	Connection & write(RequestLine const & requestLine);
	Connection & write(HeaderField const & oHeaderField, std::string const & prefix="");
	Connection & write(Header const & header, std::string const & prefix="");
	/** @} */

	/** @name A simple "default" http request. */
	std::string simpleHttpRequest(std::string const & body);
};

}}}
#endif