Skip to content

Commit a9f42fc

Browse files
committed
Merge branch 'master' of git://github.com/mikhailberis/cpp-netlib
2 parents 30de417 + 37357c6 commit a9f42fc

File tree

12 files changed

+87
-78
lines changed

12 files changed

+87
-78
lines changed

boost/network/protocol/http/impl/sync_connection_base.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ namespace boost { namespace network { namespace http { namespace impl {
119119
typename headers_range<basic_response<Tag> >::type transfer_encoding_range =
120120
headers(response_)["Transfer-Encoding"];
121121
if (empty(transfer_encoding_range)) throw std::runtime_error("Missing Transfer-Encoding Header from response.");
122-
if (boost::iequals(begin(transfer_encoding_range)->second, "chunked")) {
122+
if (boost::iequals(boost::begin(transfer_encoding_range)->second, "chunked")) {
123123
bool stopping = false;
124124
do {
125125
std::size_t chunk_size_line = read_until(socket_, response_buffer, "\r\n", error);
@@ -158,7 +158,7 @@ namespace boost { namespace network { namespace http { namespace impl {
158158
} while (!stopping);
159159
} else throw std::runtime_error("Unsupported Transfer-Encoding.");
160160
} else {
161-
size_t length = lexical_cast<size_t>(begin(content_length_range)->second);
161+
size_t length = lexical_cast<size_t>(boost::begin(content_length_range)->second);
162162
size_t bytes_read = 0;
163163
while ((bytes_read = boost::asio::read(socket_, response_buffer, boost::asio::transfer_at_least(1), error))) {
164164
body_stream << &response_buffer;
@@ -234,7 +234,7 @@ namespace boost { namespace network { namespace http { namespace impl {
234234
connection_base::read_body(socket_, response_, response_buffer);
235235
typename headers_range<basic_response<Tag> >::type connection_range =
236236
headers(response_)["Connection"];
237-
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && boost::iequals(begin(connection_range)->second, "close")) {
237+
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && boost::iequals(boost::begin(connection_range)->second, "close")) {
238238
close_socket();
239239
} else if (version_major == 1 && version_minor == 0) {
240240
close_socket();
@@ -296,7 +296,7 @@ namespace boost { namespace network { namespace http { namespace impl {
296296
connection_base::read_body(socket_, response_, response_buffer);
297297
typename headers_range<basic_response<Tag> >::type connection_range =
298298
headers(response_)["Connection"];
299-
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && boost::iequals(begin(connection_range)->second, "close")) {
299+
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && boost::iequals(boost::begin(connection_range)->second, "close")) {
300300
close_socket();
301301
} else if (version_major == 1 && version_minor == 0) {
302302
close_socket();

boost/network/protocol/http/policies/pooled_connection.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ namespace boost { namespace network { namespace http {
8989
}
9090

9191
typename headers_range<basic_response<Tag> >::type connection_range = headers(response_)["Connection"];
92-
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && begin(connection_range)->second == string_type("close")) {
92+
if (version_major == 1 && version_minor == 1 && !empty(connection_range) && boost::begin(connection_range)->second == string_type("close")) {
9393
pimpl->close_socket();
9494
} else if (version_major == 1 && version_minor == 0) {
9595
pimpl->close_socket();
@@ -99,8 +99,8 @@ namespace boost { namespace network { namespace http {
9999
boost::uint16_t status = response_.status();
100100
if (status >= 300 && status <= 307) {
101101
typename headers_range<basic_response<Tag> >::type location_range = headers(response_)["Location"];
102-
typename range_iterator<typename headers_range<basic_request<Tag> >::type>::type location_header = begin(location_range);
103-
if (location_header != end(location_range)) {
102+
typename range_iterator<typename headers_range<basic_request<Tag> >::type>::type location_header = boost::begin(location_range);
103+
if (location_header != boost::end(location_range)) {
104104
request_.uri(location_header->second);
105105
connection_ptr connection_;
106106
connection_ = get_connection_(resolver_, request_);
@@ -137,12 +137,12 @@ namespace boost { namespace network { namespace http {
137137
, follow_redirect_
138138
, request_.host()
139139
, lexical_cast<string_type>(request_.port())
140-
, bind(
140+
, boost::bind(
141141
&pooled_connection_policy<Tag,version_major,version_minor>::resolve,
142142
this,
143143
_1, _2, _3
144144
)
145-
, bind(
145+
, boost::bind(
146146
&pooled_connection_policy<Tag,version_major,version_minor>::get_connection,
147147
this,
148148
_1, _2

boost/network/protocol/http/policies/simple_connection.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ namespace boost { namespace network { namespace http {
5555
boost::uint16_t status = response_.status();
5656
if (status >= 300 && status <= 307) {
5757
typename headers_range<http::basic_response<Tag> >::type location_range = headers(response_)["Location"];
58-
typename range_iterator<typename headers_range<http::basic_request<Tag> >::type>::type location_header = begin(location_range);
59-
if (location_header != end(location_range)) {
58+
typename range_iterator<typename headers_range<http::basic_request<Tag> >::type>::type location_header = boost::begin(location_range);
59+
if (location_header != boost::end(location_range)) {
6060
request_.uri(location_header->second);
6161
} else throw std::runtime_error("Location header not defined in redirect response.");
6262
} else break;
@@ -81,7 +81,7 @@ namespace boost { namespace network { namespace http {
8181
, follow_redirect_
8282
, request_.host()
8383
, lexical_cast<string_type>(request_.port())
84-
, bind(
84+
, boost::bind(
8585
&simple_connection_policy<Tag,version_major,version_minor>::resolve,
8686
this,
8787
_1, _2, _3

boost/network/uri/detail/parse_uri.hpp

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ namespace boost { namespace spirit { namespace traits {
2525
struct transform_attribute<
2626
boost::network::uri::detail::uri_parts<Tag>,
2727
typename boost::network::uri::detail::uri_parts_tuple<Tag>::type
28+
#if SPIRIT_VERSION > 0x2030
29+
, boost::spirit::qi::domain
30+
#endif
2831
>
2932
{
3033
typedef typename boost::network::uri::detail::uri_parts_tuple<Tag>::type type;
@@ -96,76 +99,76 @@ namespace boost { namespace network { namespace uri {
9699
struct uri_grammar : qi::grammar<Iterator, uri_parts<Tag>()> {
97100
uri_grammar() : uri_grammar::base_type(start, "uri") {
98101
// gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
99-
gen_delims = qi::char_(":/?#[]@");
102+
gen_delims %= qi::char_(":/?#[]@");
100103
// sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
101-
sub_delims = qi::char_("!$&'()*+,;=");
104+
sub_delims %= qi::char_("!$&'()*+,;=");
102105
// reserved = gen-delims / sub-delims
103-
reserved = gen_delims | sub_delims;
106+
reserved %= gen_delims | sub_delims;
104107
// unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
105-
unreserved = qi::alnum | qi::char_("-._~");
108+
unreserved %= qi::alnum | qi::char_("-._~");
106109
// pct-encoded = "%" HEXDIG HEXDIG
107-
pct_encoded = qi::char_("%") >> qi::repeat(2)[qi::xdigit];
110+
pct_encoded %= qi::char_("%") >> qi::repeat(2)[qi::xdigit];
108111

109112
// pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
110-
pchar = qi::raw[
113+
pchar %= qi::raw[
111114
unreserved | pct_encoded | sub_delims | qi::char_(":@")
112115
];
113116

114117
// segment = *pchar
115-
segment = qi::raw[*pchar];
118+
segment %= qi::raw[*pchar];
116119
// segment-nz = 1*pchar
117-
segment_nz = qi::raw[+pchar];
120+
segment_nz %= qi::raw[+pchar];
118121
// segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
119-
segment_nz_nc = qi::raw[
122+
segment_nz_nc %= qi::raw[
120123
+(unreserved | pct_encoded | sub_delims | qi::char_("@"))
121124
];
122125
// path-abempty = *( "/" segment )
123-
path_abempty = qi::raw[*(qi::char_("/") >> segment)];
126+
path_abempty %= qi::raw[*(qi::char_("/") >> segment)];
124127
// path-absolute = "/" [ segment-nz *( "/" segment ) ]
125-
path_absolute = qi::raw[
128+
path_absolute %= qi::raw[
126129
qi::char_("/")
127130
>> -(segment_nz >> *(qi::char_("/") >> segment))
128131
];
129132
// path-rootless = segment-nz *( "/" segment )
130-
path_rootless = qi::raw[
133+
path_rootless %= qi::raw[
131134
segment_nz >> *(qi::char_("/") >> segment)
132135
];
133136
// path-empty = 0<pchar>
134-
path_empty = qi::eps;
137+
path_empty %= qi::eps;
135138

136139
// scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
137-
scheme = qi::alpha >> *(qi::alnum | qi::char_("+.-"));
140+
scheme %= qi::alpha >> *(qi::alnum | qi::char_("+.-"));
138141

139142
// user_info = *( unreserved / pct-encoded / sub-delims / ":" )
140-
user_info = qi::raw[
143+
user_info %= qi::raw[
141144
*(unreserved | pct_encoded | sub_delims | qi::char_(":"))
142145
];
143146

144147
// dec-octet = DIGIT / %x31-39 DIGIT / "1" 2DIGIT / "2" %x30-34 DIGIT / "25" %x30-35
145-
dec_octet =
148+
dec_octet %=
146149
!(qi::lit('0') >> qi::digit)
147150
>> qi::raw[
148151
qi::uint_parser<boost::uint8_t, 10, 1, 3>()
149152
];
150153
// IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet
151-
ipv4address = qi::raw[
154+
ipv4address %= qi::raw[
152155
dec_octet >> qi::repeat(3)[qi::lit('.') >> dec_octet]
153156
];
154157
// reg-name = *( unreserved / pct-encoded / sub-delims )
155-
reg_name = qi::raw[
158+
reg_name %= qi::raw[
156159
*(unreserved | pct_encoded | sub_delims)
157160
];
158161
// TODO, host = IP-literal / IPv4address / reg-name
159-
host = ipv4address | reg_name;
162+
host %= ipv4address | reg_name;
160163

161164
// query = *( pchar / "/" / "?" )
162-
query = qi::raw[*(pchar | qi::char_("/?"))];
165+
query %= qi::raw[*(pchar | qi::char_("/?"))];
163166
// fragment = *( pchar / "/" / "?" )
164-
fragment = qi::raw[*(pchar | qi::char_("/?"))];
167+
fragment %= qi::raw[*(pchar | qi::char_("/?"))];
165168

166169
// hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty
167170
// authority = [ userinfo "@" ] host [ ":" port ]
168-
hier_part =
171+
hier_part %=
169172
(
170173
"//"
171174
>> -(user_info >> '@')
@@ -185,12 +188,13 @@ namespace boost { namespace network { namespace uri {
185188
)
186189
);
187190

188-
start = uri;
189-
uri =
191+
uri %=
190192
scheme >> ':'
191193
>> hier_part
192194
>> -('?' >> query)
193195
>> -('#' >> fragment);
196+
197+
start %= uri.alias();
194198
}
195199

196200
typedef typename string<Tag>::type string_type;
@@ -234,8 +238,10 @@ namespace boost { namespace network { namespace uri {
234238
inline bool parse_uri(Range & range, uri_parts<Tag> & parts) {
235239
typedef typename range_iterator<Range>::type iterator;
236240

237-
iterator start_ = begin(range);
238-
iterator end_ = end(range);
241+
// Qualified boost::begin and boost::end because MSVC complains
242+
// of ambiguity on call to begin(range) and end(rand).
243+
iterator start_ = boost::begin(range);
244+
iterator end_ = boost::end(range);
239245

240246
uri_grammar<iterator, Tag> grammar;
241247

boost/network/version.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// http://www.boost.org/LICENSE_1_0.txt)
88

99
#ifndef BOOST_NETLIB_VERSION
10-
# define BOOST_NETLIB_VERSION "0.5"
10+
# define BOOST_NETLIB_VERSION "0.6"
1111
#endif
1212

1313
#endif // BOOST_NETWORK_VERSION_HPP_20091214

libs/network/test/CMakeLists.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
include_directories(${CPP-NETLIB_SOURCE_DIR})
77
find_package( Boost 1.41.0 COMPONENTS unit_test_framework system regex date_time thread filesystem )
8+
find_package( OpenSSL )
9+
include_directories(${OPENSSL_INCLUDE_DIR})
10+
find_package( Threads )
811
set(Boost_USE_STATIC_LIBS ON)
912
set(Boost_USE_MULTITHREADED ON)
1013

@@ -18,15 +21,15 @@ if (Boost_FOUND)
1821
add_executable(cpp-netlib-http_message_test http_message_test.cpp)
1922
add_executable(cpp-netlib-message_transform_test message_transform_test.cpp)
2023
add_executable(cpp-netlib-url_test url_test.cpp)
21-
target_link_libraries(cpp-netlib-hello_world ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} pthread)
22-
target_link_libraries(cpp-netlib-http_1_0_test ${Boost_LIBRARIES} pthread ssl crypto)
23-
target_link_libraries(cpp-netlib-http_1_1_test ${Boost_LIBRARIES} pthread ssl crypto)
24-
target_link_libraries(cpp-netlib-http_message_test ${Boost_LIBRARIES} pthread ssl crypto)
25-
target_link_libraries(cpp-netlib-message_test ${Boost_LIBRARIES} pthread ssl crypto)
26-
target_link_libraries(cpp-netlib-message_transform_test ${Boost_LIBRARIES} pthread ssl crypto)
27-
target_link_libraries(cpp-netlib-http_localhost_tests ${Boost_LIBRARIES} pthread ssl crypto)
28-
target_link_libraries(cpp-netlib-https_localhost_tests ${Boost_LIBRARIES} pthread ssl crypto)
29-
target_link_libraries(cpp-netlib-url_test ${Boost_LIBRARIES} pthread ssl crypto)
24+
target_link_libraries(cpp-netlib-hello_world ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_THREAD_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES} )
25+
target_link_libraries(cpp-netlib-http_1_0_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
26+
target_link_libraries(cpp-netlib-http_1_1_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
27+
target_link_libraries(cpp-netlib-http_message_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
28+
target_link_libraries(cpp-netlib-message_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
29+
target_link_libraries(cpp-netlib-message_transform_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
30+
target_link_libraries(cpp-netlib-http_localhost_tests ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
31+
target_link_libraries(cpp-netlib-https_localhost_tests ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
32+
target_link_libraries(cpp-netlib-url_test ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES})
3033
set_target_properties(cpp-netlib-hello_world cpp-netlib-http_1_0_test cpp-netlib-http_1_1_test cpp-netlib-message_test cpp-netlib-http_message_test cpp-netlib-message_transform_test cpp-netlib-http_localhost_tests cpp-netlib-https_localhost_tests cpp-netlib-url_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../../../build/tests)
3134
add_test(cpp-netlib-hello_world python httplib_acceptance.py ../../../build/tests/cpp-netlib-hello_world ../../../build/tests/cpp-netlib-hello_world.passed)
3235
add_test(cpp-netlib-http_1_0_test ../../../build/tests/cpp-netlib-http_1_0_test)

libs/network/test/hello_world.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Copyright 2009 (c) Tarro, Inc.
2-
// Copyright 2009 (c) Dean Michael Berris <mikhailberis@gmail.com>
2+
// Copyright 2009-2010 (c) Dean Michael Berris <mikhailberis@gmail.com>
33
// Distributed under the Boost Software License, Version 1.0.
44
// (See accompanying file LICENSE_1_0.txt or copy at
55
// http://www.boost.org/LICENSE_1_0.txt)

libs/network/test/http_1_0_test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test, T, tag_types) {
2121
http::basic_response<T> response_;
2222
response_ = client_.get(request);
2323
typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"];
24-
BOOST_CHECK ( begin(range) != end(range) );
24+
BOOST_CHECK ( boost::begin(range) != boost::end(range) );
2525
BOOST_CHECK ( body(response_).size() != 0 );
2626
}
2727

@@ -31,7 +31,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test_different_port, T, tag_types) {
3131
http::basic_response<T> response_;
3232
response_ = client_.get(request);
3333
typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"];
34-
BOOST_CHECK ( begin(range) != end(range) );
34+
BOOST_CHECK ( boost::begin(range) != boost::end(range) );
3535
BOOST_CHECK ( body(response_).size() != 0 );
3636
}
3737

libs/network/test/http_1_1_test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test, T, tag_types) {
2121
http::basic_response<T> response_;
2222
BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
2323
typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"];
24-
BOOST_CHECK ( begin(range) != end(range) );
24+
BOOST_CHECK ( boost::begin(range) != boost::end(range) );
2525
BOOST_CHECK ( body(response_).size() != 0 );
2626
}
2727

@@ -31,7 +31,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(http_get_test_different_port, T, tag_types) {
3131
http::basic_response<T> response_;
3232
BOOST_CHECK_NO_THROW ( response_ = client_.get(request) );
3333
typename headers_range<typename http::basic_response<T> >::type range = headers(response_)["Content-Type"];
34-
BOOST_CHECK ( begin(range) != end(range) );
34+
BOOST_CHECK ( boost::begin(range) != boost::end(range) );
3535
BOOST_CHECK ( body(response_).size() != 0 );
3636
}
3737

0 commit comments

Comments
 (0)