The C++ Network Library Project -- cross-platform, standards compliant networking library.

Overview

C++ Network Library

Modern C++ network programming libraries.

https://travis-ci.org/cpp-netlib/cpp-netlib.svg?branch=master

Join us on Slack: http://slack.cpp-netlib.org/

Subscribe to the mailing list: https://groups.google.com/forum/#!forum/cpp-netlib

Downloading cpp-netlib

You can find official release packages of the library at:

http://github.com/cpp-netlib/cpp-netlib/downloads

If you want the latest code from the master branch of the project, you can follow these instructions for cloning the project repository:

$ git clone https://github.com/cpp-netlib/cpp-netlib
$ cd cpp-netlib
$ git submodule init
$ git submodule update

Introduction

cpp-netlib is a collection of network-related routines/implementations geared towards providing a robust cross-platform networking library. cpp-netlib offers the following implementations:

  • Common Message Type -- A generic message type which can be used to encapsulate and store message-related information, used by all network implementations as the primary means of data exchange.
  • Network protocol message parsers -- A collection of parsers which generate message objects from strings.
  • Adapters and Wrappers -- A collection of Adapters and wrappers aimed towards making the message type STL friendly.
  • Network protocol client and server implementations -- A collection of network protocol implementations that include embeddable client and server types.

This library is released under the Boost Software License (please see http://boost.org/LICENSE_1_0.txt or the accompanying LICENSE_1_0.txt file for the full text.

Building and Installing

To build the libraries you will need to have CMake version 2.8 or higher installed appropriately in your system.

$ cmake --version
cmake version 2.8.1

It is recommended that you build cpp-netlib outside of the source directory, to avoid having issues with CMake generated files polluting the source directory:

$ mkdir ~/cpp-netlib-build
$ cd ~/cpp-netlib-build
$ cmake -DCMAKE_BUILD_TYPE=Debug     \
>       -DCMAKE_C_COMPILER=clang     \
>       -DCMAKE_CXX_COMPILER=clang++ \
>       $HOME/cpp-netlib    # we're assuming this is where cpp-netlib is.

Once CMake is done with generating the Makefiles and configuring the project, you can now build the tests and run them:

$ cd ~/cpp-netlib-build
$ make
$ make test

You can also download and install cpp-netlib using the ` vcpkg`_ dependency manager:

$ git clone https://github.com/Microsoft/vcpkg.git $ cd vcpkg $ ./bootstrap-vcpkg.sh $ ./vcpkg integrate install $ vcpkg install cpp-netlib

The cpp-netlib port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the ` vcpkg`_ repository.

If for some reason some of the tests fail, you can send the files in Testing/Temporary/ as attachments to the cpp-netlib developers mailing list.

Running Tests

If you want to run the tests that come with cpp-netlib, there are a few things you will need. These are:

  • A compiler (GCC 4.x, Clang 3.6, MSVC 2008)
  • A build tool (CMake is required)
  • OpenSSL headers (optional)

Note

This assumes that you have cpp-netlib at the top-level of your home directory.

Hacking on cpp-netlib

cpp-netlib uses git for tracking work and is hosted on GitHub. cpp-netlib is hosted on GitHub following the GitHub recommended practice of forking the repository and submitting pull requests to the source repository. You can read more about the forking process and submitting pull requests if you're not familiar with either process yet. cpp-netib follows the GitHub pull request model for accepting patches. You can read more about the process at http://cpp-netlib.org/process.html#pull-requests.

Because cpp-netlib is released under the Boost Software License it is recommended that any file you make changes to bear your copyright notice alongside the original authors' copyright notices on the file. Typically the copyright notices are at the top of each file in the project.

You can read about the cpp-netlib style guide at http://cpp-netlib.org/style-guide.html.

The main "upstream" repository is at http://github.com/cpp-netlib/cpp-netlib.

Contact and Support

In case you have any questions or would like to make feature requests, you can contact the development team through the developers mailing list or by filing issues at http://github.com/cpp-netlib/cpp-netlib/issues.

Join us on Slack: http://slack.cpp-netlib.org/

You can reach the maintainers of the project through:

Dean Michael Berris ([email protected])

Glyn Matthews ([email protected])
Comments
  • VS2015 compile error -- conversion from netdb_errors to std::err_code

    VS2015 compile error -- conversion from netdb_errors to std::err_code

    Enviroment: Windows 7 Professional Service Pack 1 -- 64 bit operating system VS2015 Version 14.0.24720.00 Update 1 Compiling under Debug Win32 and Debug x64 Boost 1.60 -- into directory Boost_1_60_0 cpp-netlib v0.11.2 -- into directory CPP_NetLib_012

    I copied Boost to its own directory. Within Boost_1_60_0/boost there was not a network directory; so I copied from CPP_NetLib_012/boost/network to Boost_1_60_0/boost also copied mime.hpp and network.hpp into Boost_1_60_0/boost.

    Here is the source code for the client, pretty much out of the example:

    include "stdafx.h"

    include <boost/network/protocol/http/client.hpp>

    include

    int main(int argc, char *argv[]) { using namespace boost::network;

    if (argc != 2)
    {
        std::cout << "Usage: " << argv[0] << " [url]" << std::endl;
        return 1;
    }
    
    http::client client;
    http::client::request request(argv[1]);
    request << header("Connection", "close");
    http::client::response response = client.get(request);
    std::cout << body(response) << std::endl;
    
    return 0;
    

    }

    I get a tonne of warnings, that are all the same: C4348 'boost::spirit::terminalboost::spirit::tag::ascii::char_::result_helper': redefinition of default parameter: parameter 3 Client_Netter c:\blablabla\boost_1_60_0\boost\spirit\home\support\terminal.hpp 264 C4348 'boost::spirit::terminalboost::spirit::tag::ascii::char_::result_helper': redefinition of default parameter: parameter 4 Client_Netter c:\blablabla\boost_1_60_0\boost\spirit\home\support\terminal.hpp 264

    This is the error message: Error C2446 ':': no conversion from 'boost::asio::error::netdb_errors' to 'const std::error_code' Client_Netter c:\blablabla\boost_1_60_0\boost\network\protocol\http\client\connection\async_normal.hpp 158

    Async_normal.hpp looks like this: } else { set_errors(ec ? ec : asio::error::host_not_found); boost::iterator_range<const char*> range; if (callback) callback(range, ec); }

    Any insight would be appreciated.

    Windows 
    opened by stevenawright 26
  • https doesn't work with RC0 (gcc hangs and clang gives an exception)

    https doesn't work with RC0 (gcc hangs and clang gives an exception)

    Another issue:

    #include <iostream>
    
    #define BOOST_NETWORK_ENABLE_HTTPS
    #include <boost/network/protocol/http/client.hpp>
    
    int main(int argc, char **argv) {
        using namespace boost::network;
    
        // Send request
        http::client client;
        http::client::request req("https://www.google.com");
    
        http::client::response resp = client.get(req);
        std::cout << body(resp) << std::endl;
    
        return 0;
    }
    

    When compiled with clang++-3.4 it throws the following exception: terminate called after throwing an instance of 'boost::exception_detail::clone_implboost::system::system_error' what(): short read Aborted

    When compiled with gcc (version 4.9) it hangs with the following stacktrace:

    #0  pthread_cond_wait@@GLIBC_2.3.2 ()
        at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
    #1  0x00000000004140f1 in boost::condition_variable::wait (this=0x6d54e0,
        m=...) at /usr/include/boost/thread/pthread/condition_variable.hpp:73
    #2  0x000000000041610a in boost::detail::shared_state_base::wait_internal (
        this=0x6d5480, lk=..., rethrow=true)
        at /usr/include/boost/thread/future.hpp:327
    #3  0x00000000004161c8 in boost::detail::shared_state_base::wait (
        this=0x6d5480, rethrow=true) at /usr/include/boost/thread/future.hpp:346
    #4  0x000000000043adea in boost::detail::shared_state<std::string>::get_sh (
        this=0x6d5480) at /usr/include/boost/thread/future.hpp:672
    #5  0x000000000043694e in boost::shared_future<std::string>::get (
        this=0x7fffffffe550) at /usr/include/boost/thread/future.hpp:1897
    #6  0x0000000000432686 in boost::network::http::async_message<boost::network::http::tags::http_async_8bit_udp_resolve>::body (this=0x7fffffffe490)
        at /usr/include/boost/network/protocol/http/message/async_message.hpp:121
    #7  0x000000000042c5e1 in boost::network::http::impl::body_wrapper<boost::network::http::basic_response<boost::network::http::tags::http_async_8bit_udp_resolve> >::operator std::string (this=0x7fffffffe5e0)
        at /usr/include/boost/network/protocol/http/message/wrappers/body.hpp:29
    #8  0x0000000000423b9b in boost::network::http::impl::operator<< <boost::network::http::basic_response<boost::network::http::tags::http_async_8bit_udp_resolve> > (os=..., body=...)
        at /usr/include/boost/network/protocol/http/message/wrappers/body.hpp:45
    #9  0x0000000000411403 in main (argc=1, argv=0x7fffffffe6e8) at main.cpp:14
    

    I used the RC0 from the website.

    Regards, Matthijs

    opened by matthijs 25
  • Compile error with VS2010 and boost 1.56

    Compile error with VS2010 and boost 1.56

    Hi, I have a problem when compiling cppnetlib 0.11 with VS 2010 and boost 1.56:

    4>C:\Dev\cpp-netlib\include\boost/network/protocol/http/algorithms/linearize.hpp(143): error C2440: 'initializing' : cannot convert from 'boost::network::http::impl::port_wrapper<Tag>' to 'boost::optional<T>'
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve
    4>          ]
    4>          and
    4>          [
    4>              T=unsigned short
    4>          ]
    4>          Constructor for class 'boost::optional<T>' is declared 'explicit'
    4>          with
    4>          [
    4>              T=unsigned short
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_normal.hpp(83) : see reference to function template instantiation 'std::ostreambuf_iterator<_Elem,_Traits> boost::network::http::linearize<boost::network::http::basic_request<Tag>,std::ostreambuf_iterator<_Elem,_Traits>>(const Request &,const std::basic_string<_Elem,_Traits,_Ax> &,unsigned int,unsigned int,OutputIterator)' being compiled
    4>          with
    4>          [
    4>              _Elem=char,
    4>              _Traits=std::char_traits<char>,
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              Request=boost::network::http::basic_request<boost::network::http::tags::http_async_8bit_udp_resolve>,
    4>              _Ax=std::allocator<char>,
    4>              OutputIterator=std::ostreambuf_iterator<char,std::char_traits<char>>
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_normal.hpp(79) : while compiling class template member function 'boost::network::http::basic_response<Tag> boost::network::http::impl::http_async_connection<Tag,version_major,version_minor>::start(const boost::network::http::basic_request<Tag> &,const std::basic_string<_Elem,_Traits,_Ax> &,bool,boost::function<Signature>)'
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1,
    4>              _Elem=char,
    4>              _Traits=std::char_traits<char>,
    4>              _Ax=std::allocator<char>,
    4>              Signature=void (const boost::iterator_range<const char *> &,const boost::system::error_code &)
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_base.hpp(46) : see reference to class template instantiation 'boost::network::http::impl::http_async_connection<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_base.hpp(40) : while compiling class template member function 'boost::shared_ptr<T> boost::network::http::impl::async_connection_base<Tag,version_major,version_minor>::new_connection(boost::function<Signature>,boost::asio::ip::basic_resolver<InternetProtocol> &,bool,bool,boost::optional<std::basic_string<_Elem,_Traits,_Ax>>,const boost::optional<std::basic_string<_Elem,_Traits,_Ax>> &)'
    4>          with
    4>          [
    4>              T=boost::network::http::impl::async_connection_base<boost::network::http::tags::http_async_8bit_udp_resolve,1,1>,
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1,
    4>              Signature=void (boost::asio::ip::basic_resolver<boost::asio::ip::udp> &,std::basic_string<char,std::char_traits<char>,std::allocator<char>>,uint16_t,boost::function<void (const boost::system::error_code &,std::pair<boost::asio::ip::basic_resolver_iterator<boost::asio::ip::udp>,boost::asio::ip::basic_resolver_iterator<boost::asio::ip::udp>>)>),
    4>              InternetProtocol=boost::asio::ip::udp,
    4>              _Elem=char,
    4>              _Traits=std::char_traits<char>,
    4>              _Ax=std::allocator<char>
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/policies/async_connection.hpp(49) : see reference to class template instantiation 'boost::network::http::impl::async_connection_base<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/policies/async_connection.hpp(48) : while compiling class template member function 'boost::network::http::basic_response<Tag> boost::network::http::async_connection_policy<Tag,version_major,version_minor>::connection_impl::send_request(const std::basic_string<_Elem,_Traits,_Ax> &,const boost::network::http::basic_request<Tag> &,bool,boost::network::http::async_connection_policy<Tag,version_major,version_minor>::body_callback_function_type)'
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1,
    4>              _Elem=char,
    4>              _Traits=std::char_traits<char>,
    4>              _Ax=std::allocator<char>
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/async_impl.hpp(78) : see reference to class template instantiation 'boost::network::http::async_connection_policy<Tag,version_major,version_minor>::connection_impl' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/async_impl.hpp(75) : while compiling class template member function 'const boost::network::http::basic_response<Tag> boost::network::http::impl::async_client<Tag,version_major,version_minor>::request_skeleton(const boost::network::http::basic_request<Tag> &,const std::basic_string<_Elem,_Traits,_Ax> &,bool,boost::network::http::impl::async_client<Tag,version_major,version_minor>::body_callback_function_type)'
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1,
    4>              _Elem=char,
    4>              _Traits=std::char_traits<char>,
    4>              _Ax=std::allocator<char>
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/pimpl.hpp(57) : see reference to class template instantiation 'boost::network::http::impl::async_client<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/facade.hpp(41) : see reference to class template instantiation 'boost::network::http::basic_client_impl<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/facade.hpp(40) : while compiling class template member function 'const boost::network::http::basic_response<Tag> boost::network::http::basic_client_facade<Tag,version_major,version_minor>::get(const boost::network::http::basic_request<Tag> &,boost::network::http::basic_client_facade<Tag,version_major,version_minor>::body_callback_function_type)'
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client.hpp(35) : see reference to class template instantiation 'boost::network::http::basic_client_facade<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    4>          cpp-netlib.cpp(14) : see reference to class template instantiation 'boost::network::http::basic_client<Tag,version_major,version_minor>' being compiled
    4>          with
    4>          [
    4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
    4>              version_major=1,
    4>              version_minor=1
    4>          ]
    

    I guess the problem occurs because of the changes on boost::optional in 1.56: http://www.boost.org/users/history/version_1_56_0.html

    Boost 1.55 worked fine. Thanks a lot for any help! Regards

    opened by rob100 23
  • Building with mingw gcc on win32

    Building with mingw gcc on win32

    Ive setup a build system using scons which utilizes mingw gcc on my winxp machine, i downloaded cpp-netlib 8.1, and am using boost_1_46_0.

    All i need to do to reproduce the issue is have the line

    "#include <boost/network/protocol/http/server.hpp>"

    somewhere in my sourcecode, no actual usage of cppnet symbols is necessary.

    I have here the full error output from a "-Wall -Wextra -pedantic --verbose" build, so it might be a little excessive, but im not sure whats going on here, so im hoping it helps more than hinders:

    Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/lto-wrapper.exe Target: mingw32 Configured with: ../gcc-4.5.2/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-werror --build=mingw32 --prefix=/mingw g++ -o Debug\test\source\Communicator.o -c -Wall -Wextra -pedantic --verbose -O0 -g3 -DBOOST_SPIRIT_DEBUG -D_WIN32_WINNT=0x0501 -DBOOST_THREAD_USE_LIB -DRUNTESTS -IDependencies\Code\boost_1_46_0 -IDependencies\Code\cpp-netlib-0.8.1 -Iinclude source\Communicator.cpp Thread model: win32 gcc version 4.5.2 (GCC) COLLECT_GCC_OPTIONS='-o' 'Debug\test\source\Communicator.o' '-c' '-Wall' '-Wextra' '-pedantic' '-v' '-O0' '-g3' '-DBOOST_SPIRIT_DEBUG' '-D_WIN32_WINNT=0x0501' '-DBOOST_THREAD_USE_LIB' '-DRUNTESTS' '-IDependencies\Code\boost_1_46_0' '-IDependencies\Code\cpp-netlib-0.8.1' '-Iinclude' '-shared-libgcc' '-mtune=i386' '-march=i386' c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/cc1plus.exe -quiet -v -IDependencies\Code\boost_1_46_0 -IDependencies\Code\cpp-netlib-0.8.1 -Iinclude -iprefix c:\mingw\bin\../lib/gcc/mingw32/4.5.2/ -dD -DBOOST_SPIRIT_DEBUG -D_WIN32_WINNT=0x0501 -DBOOST_THREAD_USE_LIB -DRUNTESTS source\Communicator.cpp -quiet -dumpbase Communicator.cpp -mtune=i386 -march=i386 -auxbase-strip Debug\test\source\Communicator.o -g3 -O0 -Wall -Wextra -pedantic -version -o C:\DOCUME~1\col52n\LOCALS~1\Temp\ccVD0VqJ.s GNU C++ (GCC) version 4.5.2 (mingw32) compiled by GNU C version 4.5.2, GMP version 5.0.1, MPFR version 2.4.1, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../mingw32/include" ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/include/c++" ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/include/c++/mingw32" ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/include/c++/backward" ignoring duplicate directory "/mingw/lib/gcc/mingw32/4.5.2/../../../../include" ignoring duplicate directory "c:/mingw/lib/gcc/../../include" ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/include" ignoring duplicate directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/include-fixed" ignoring nonexistent directory "c:/mingw/lib/gcc/../../lib/gcc/mingw32/4.5.2/../../../../mingw32/include" ignoring duplicate directory "/mingw/include" #include "..." search starts here: #include <...> search starts here: Dependencies\Code\boost_1_46_0 Dependencies\Code\cpp-netlib-0.8.1 include c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++ c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/mingw32 c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/backward c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include c:\mingw\bin\../lib/gcc/mingw32/4.5.2/include-fixed End of search list. GNU C++ (GCC) version 4.5.2 (mingw32) compiled by GNU C version 4.5.2, GMP version 5.0.1, MPFR version 2.4.1, MPC version 0.8.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: bba7c68567cab1560329ee702fa8a945 In file included from Dependencies\Code\boost_1_46_0/boost/date_time/microsec_time_clock.hpp:23:0, from Dependencies\Code\boost_1_46_0/boost/thread/thread_time.hpp:10, from Dependencies\Code\boost_1_46_0/boost/thread/win32/basic_timed_mutex.hpp:15, from Dependencies\Code\boost_1_46_0/boost/thread/win32/mutex.hpp:8, from Dependencies\Code\boost_1_46_0/boost/thread/mutex.hpp:14, from include/Communicator.hpp:19, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/date_time/filetime_functions.hpp:99:32: warning: use of C++0x long long integer constant In file included from Dependencies\Code\boost_1_46_0/boost/date_time/posix_time/posix_time_system.hpp:14:0, from Dependencies\Code\boost_1_46_0/boost/date_time/posix_time/ptime.hpp:12, from Dependencies\Code\boost_1_46_0/boost/date_time/posix_time/posix_time_types.hpp:12, from Dependencies\Code\boost_1_46_0/boost/thread/thread_time.hpp:11, from Dependencies\Code\boost_1_46_0/boost/thread/win32/basic_timed_mutex.hpp:15, from Dependencies\Code\boost_1_46_0/boost/thread/win32/mutex.hpp:8, from Dependencies\Code\boost_1_46_0/boost/thread/mutex.hpp:14, from include/Communicator.hpp:19, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/date_time/time_system_split.hpp:41:1: warning: use of C++0x long long integer constant In file included from Dependencies\Code\boost_1_46_0/boost/thread/shared_mutex.hpp:14:0, from Dependencies\Code\boost_1_46_0/boost/thread/detail/thread_group.hpp:9, from Dependencies\Code\boost_1_46_0/boost/thread/thread.hpp:24, from Dependencies\Code\boost_1_46_0/boost/thread/win32/condition_variable.hpp:13, from Dependencies\Code\boost_1_46_0/boost/thread/condition_variable.hpp:14, from Dependencies\Code\boost_1_46_0/boost/thread/future.hpp:13, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/traits/version.hpp:13, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:12, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp: In constructor 'boost::shared_mutex::shared_mutex()': Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp:84:33: warning: missing initializer for member 'boost::shared_mutex::state_data::shared_waiting' Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp:84:33: warning: missing initializer for member 'boost::shared_mutex::state_data::exclusive' Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp:84:33: warning: missing initializer for member 'boost::shared_mutex::state_data::upgrade' Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp:84:33: warning: missing initializer for member 'boost::shared_mutex::state_data::exclusive_waiting' Dependencies\Code\boost_1_46_0/boost/thread/win32/shared_mutex.hpp:84:33: warning: missing initializer for member 'boost::shared_mutex::state_data::exclusive_waiting_blocked' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:14:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/directives/status_message.hpp: At global scope: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/directives/status_message.hpp:17:48: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:15:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/directives/version.hpp:15:107: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:17:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/directives/uri.hpp:15:83: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/modifiers/source.hpp:12:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:23, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:31:60: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:32:60: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:33:62: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:34:62: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:35:58: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:36:58: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:37:42: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/tags.hpp:38:48: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/modifiers/source.hpp:13:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:23, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/message/directives.hpp:26:101: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/modifiers/source.hpp:13:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:23, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/message/directives.hpp:27:131: warning: extra ';' Dependencies\Code\cpp-netlib-0.8.1/boost/network/message/directives.hpp:28:89: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:31:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/wrappers/destination.hpp:25:77: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:32:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/wrappers/source.hpp:19:62: warning: extra ';' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/message_traits.hpp:52:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits.hpp:14, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:15, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/delimiters.ipp:17:51: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/delimiters.ipp:22:59: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/delimiters.ipp:27:67: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/message_traits.hpp:53:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits.hpp:14, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:15, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:16:44: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:21:46: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:26:50: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:31:50: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:36:52: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:41:54: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:46:56: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:51:53: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:56:57: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:61:57: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:66:48: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/headers.ipp:71:53: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/message_traits.hpp:54:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits.hpp:14, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:15, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/content.ipp:16:49: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/content.ipp:21:49: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/content.ipp:26:48: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/content.ipp:31:55: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/message_traits.hpp:55:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits.hpp:14, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:15, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/request_methods.ipp:16:44: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/request_methods.ipp:21:43: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/request_methods.ipp:26:43: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/request_methods.ipp:31:44: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/request_methods.ipp:36:47: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/message_traits.hpp:56:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits.hpp:14, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:15, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:16:42: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:21:47: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:26:50: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:31:52: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:36:49: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:41:49: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:46:58: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:51:52: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:56:51: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:61:52: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/traits/impl/response_message.ipp:66:55: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:63:91: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:71:91: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:103:40: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message.hpp:145:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:35, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/impl/message.ipp:132:150: warning: type qualifiers ignored on function return type Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/impl/message.ipp:213:152: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/response.hpp:36:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:12, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/message/async_message.hpp:69:40: warning: type qualifiers ignored on function return type In file included from Dependencies\Code\boost_1_46_0/boost/range/metafunctions.hpp:19:0, from Dependencies\Code\boost_1_46_0/boost/range.hpp:27, from Dependencies\Code\boost_1_46_0/boost/spirit/home/qi/string/symbols.hpp:28, from Dependencies\Code\boost_1_46_0/boost/spirit/home/qi/string.hpp:15, from Dependencies\Code\boost_1_46_0/boost/spirit/include/qi_core.hpp:25, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp:11, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:12, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri.hpp:11, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/impl/request.hpp:17, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/request.hpp:43, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:13, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/range/has_range_iterator.hpp:22:42: warning: extra ';' In file included from Dependencies\Code\boost_1_46_0/boost/asio/ip/address_v6.hpp:227:0, from Dependencies\Code\boost_1_46_0/boost/asio/ip/address.hpp:22, from Dependencies\Code\boost_1_46_0/boost/asio/ip/basic_endpoint.hpp:19, from Dependencies\Code\boost_1_46_0/boost/asio/ip/tcp.hpp:24, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server/sync_server.hpp:13, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:14, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp: In constructor 'boost::asio::ip::address_v6::address_v6()': Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp:37:49: warning: missing braces around initializer for 'in6_addr::' Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp:37:49: warning: missing braces around initializer for 'u_char [16]' Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp: In static member function 'static boost::asio::ip::address_v6 boost::asio::ip::address_v6::loopback()': Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp:259:49: warning: missing braces around initializer for 'in6_addr::' Dependencies\Code\boost_1_46_0/boost/asio/ip/impl/address_v6.ipp:259:49: warning: missing braces around initializer for 'u_char [16]' In file included from Dependencies\Code\boost_1_46_0/boost/asio/ip/detail/endpoint.hpp:139:0, from Dependencies\Code\boost_1_46_0/boost/asio/ip/basic_endpoint.hpp:20, from Dependencies\Code\boost_1_46_0/boost/asio/ip/tcp.hpp:24, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server/sync_server.hpp:13, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:14, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\boost_1_46_0/boost/asio/ip/detail/impl/endpoint.ipp: In constructor 'boost::asio::ip::detail::endpoint::endpoint(int, short unsigned int)': Dependencies\Code\boost_1_46_0/boost/asio/ip/detail/impl/endpoint.ipp:60:51: warning: missing braces around initializer for 'in6_addr::' Dependencies\Code\boost_1_46_0/boost/asio/ip/detail/impl/endpoint.ipp:60:51: warning: missing braces around initializer for 'u_char [16]' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server/async_connection.hpp:12:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server/async_server.hpp:9, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:15, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/utils/thread_pool.hpp: At global scope: Dependencies\Code\cpp-netlib-0.8.1/boost/network/utils/thread_pool.hpp:71:42: warning: type qualifiers ignored on function return type In file included from include/Communicator.hpp:26:0, from source\Communicator.cpp:1: include/Listener.hpp:31:7: warning: unused parameter 'request' include/Listener.hpp:31:7: warning: unused parameter 'connection' In file included from Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:12:0, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri.hpp:11, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/impl/request.hpp:17, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/request.hpp:43, from Dependencies\Code\cpp-netlib-0.8.1/boost/network/protocol/http/server.hpp:13, from include/Listener.hpp:5, from include/Communicator.hpp:26, from source\Communicator.cpp:1: Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp: In instantiation of 'bool boost::network::uri::detail::parse_specific(boost::network::uri::detail::uri_parts&) [with Tag = boost::network::tags::default_string]': Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp:255:9: instantiated from 'bool boost::network::uri::detail::parse_uri(Range&, boost::network::uri::detail::uri_parts&) [with Range = std::basic_string, Tag = boost::network::tags::default_string]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:25:39: instantiated from 'boost::network::uri::uri_base::uri_base(boost::network::uri::uri_base::string_type&) [with Tag = boost::network::tags::default_string, boost::network::uri::uri_base::string_type = std::basic_string]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:116:33: instantiated from 'boost::network::uri::basic_uri::basic_uri() [with Tag = boost::network::tags::default_string]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/uri_concept.hpp:21:19: instantiated from 'boost::network::uri::URI::~URI() [with U = boost::network::uri::basic_uri]' Dependencies\Code\boost_1_46_0/boost/concept/detail/general.hpp:38:28: instantiated from 'static void boost::concepts::requirement::failed() [with Model = boost::network::uri::URI >]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:198:1: instantiated from here Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp:233:6: warning: unused parameter 'parts' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp: In instantiation of 'bool boost::network::uri::detail::parse_specific(boost::network::uri::detail::uri_parts&) [with Tag = boost::network::tags::default_wstring]': Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp:255:9: instantiated from 'bool boost::network::uri::detail::parse_uri(Range&, boost::network::uri::detail::uri_parts&) [with Range = std::basic_string, Tag = boost::network::tags::default_wstring]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:25:39: instantiated from 'boost::network::uri::uri_base::uri_base(boost::network::uri::uri_base::string_type&) [with Tag = boost::network::tags::default_wstring, boost::network::uri::uri_base::string_type = std::basic_string]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:116:33: instantiated from 'boost::network::uri::basic_uri::basic_uri() [with Tag = boost::network::tags::default_wstring]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/uri_concept.hpp:21:19: instantiated from 'boost::network::uri::URI::~URI() [with U = boost::network::uri::basic_uri]' Dependencies\Code\boost_1_46_0/boost/concept/detail/general.hpp:38:28: instantiated from 'static void boost::concepts::requirement::failed() [with Model = boost::network::uri::URI >]' Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/basic_uri.hpp:199:1: instantiated from here Dependencies\Code\cpp-netlib-0.8.1/boost/network/uri/detail/parse_uri.hpp:233:6: warning: unused parameter 'parts' scons: *** [Debug\test\source\Communicator.o] Error 1 scons: building terminated because of errors. make: *** [all] Error 2

    opened by vusak 23
  • program hanging in pthread_cond_wait()

    program hanging in pthread_cond_wait()

    I have a program that uses cpp-netlib in a very simple way to download some files, and sometimes it hangs indefinitely during a download operation.

    I have attached the debugger during the hang, and the stack trace is as follows:

    #0  0x00007f68b1ade85c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
    #1  0x00000000004307bf in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) ()
    #2  0x000000000043204e in boost::detail::shared_state_base::wait_internal(boost::unique_lock<boost::mutex>&, bool) ()
    #3  0x000000000043210c in boost::detail::shared_state_base::wait(bool) ()
    #4  0x00000000004b1010 in boost::detail::shared_state<std::string>::get_sh() ()
    #5  0x0000000000495a28 in boost::shared_future<std::string>::get() ()
    #6  0x00000000004777cc in boost::network::http::async_message<boost::network::http::tags::http_async_8bit_udp_resolve>::body() const ()
    #7  0x000000000045a3b1 in boost::network::http::impl::body_wrapper<boost::network::http::basic_response<boost::network::http::tags::http_async_8bit_udp_resolve> >::operator std::string() const ()
    #8  0x000000000043726d in download_file(std::string const&) ()
    

    download_file is a very simple function that looks like this:

        std::string download_file(const std::string& url)
        {
            using namespace boost::network;
            using namespace boost::network::http;
            return body(client().get(client::request(url)));
        }
    

    Any ideas as to what is going wrong, or how I can diagnose the issue further?

    opened by theres-waldo 22
  • Stuck at fetching response body

    Stuck at fetching response body

    The library seems not to work whatsoever. The following example (wget):

    #include <boost/network/protocol/http/client.hpp>
    #include <boost/network/uri.hpp>
    #include <string>
    #include <fstream>
    #include <iostream>
    
    namespace http = boost::network::http;
    namespace uri = boost::network::uri;
    
    namespace {
    std::string get_filename(const uri::uri &url) {
        std::string path = uri::path(url);
        std::size_t index = path.find_last_of('/');
        std::string filename = path.substr(index + 1);
        return filename.empty()? "index.html" : filename;
    }
    } // namespace
    
    int
    main(int argc, char *argv[]) {
        if (argc != 2) {
            std::cerr << "Usage: " << argv[0] << " url" << std::endl;
            return 1;
        }
    
        try {
            http::client client;
            http::client::request request(argv[1]);
            http::client::response response = client.get(request);
    
            std::string filename = get_filename(request.uri());
            std::cout << "Saving to: " << filename << std::endl;
            std::ofstream ofs(filename.c_str());
            ofs << static_cast<std::string>(body(response)) << std::endl;
        }
        catch (std::exception &e) {
            std::cerr << e.what() << std::endl;
            return 1;
        }
    
        return 0;
    }
    

    stucks when calling body(response). Using Python builtin HTTP server it can also be verified that no HTTP request is sent - a timeout must be added to force sending a request but the library is still stuck on the same expression.

    opened by robin92 21
  • Debug output in release mode

    Debug output in release mode

    Steps to reproduce

    • Download and extract 0.9.2 release from https://github.com/downloads/cpp-netlib/cpp-netlib/cpp-netlib-0.9.2.zip
    • Set up BOOST_ROOT environment variable (+ build boost etc.)
    • Run: cmake -G "Unix Makefiles"
    • Run: make
    • Compile and link the following (no special options). I used GCC 4.6.2 if it matters.

    include

    include <boost/network/protocol/http/client.hpp>

    using namespace boost::network; using namespace boost::network::http;

    int main() { std::string s = body(client().get(client::request("http://www.boost.org"))); }

    • Run. The output is:

    1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1 1333 0 1335 0 1346 0 1348 1

    opened by botond-ballo 21
  • wget example hangs using -std=c++11

    wget example hangs using -std=c++11

    I compile the simple wget example using cpp-netlib 0.9.4:

    c++ -I/usr/include/cpp-netlib -o simple_wget simple_wget.cpp \
    -lboost_system -lboost_thread -lcppnetlib-client-connections \
    -lcppnetlib-uri -lpthread -lssl -lcrypto
    

    This works: $ ./simple_wget http://www.google.de Saving to: index.html

    However, if I add -std=c++11 to the compiler commandline, simple_wget hangs and does not return to the shell.

    Any idea whats wrong here?

    opened by jowi24 20
  • undefined reference to boost::thread::join_noexcept using Boost 1.54

    undefined reference to boost::thread::join_noexcept using Boost 1.54

    I'm catching an undefined reference to boost::thread::join_noexcept on Ubuntu 12.10.

    Boost was check'd out from its subversion repo, built, and installed into /user/local.

    According to http://stackoverflow.com/questions/17455928/undefined-reference-to-boost-thread, it looks like -lboost_thread should be used instead of -lboost_thread-mt.


    cd /home/jeffrey/cpp-netlib-0.10.1/libs/network/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/cpp-netlib-utils_thread_pool.dir/link.txt --verbose=1 /opt/intel/bin/icpc -g CMakeFiles/cpp-netlib-utils_thread_pool.dir/utils_thread_pool.cpp.o -o ../../../tests/cpp-netlib-utils_thread_pool -rdynamic -Wl,-Bstatic -lboost_unit_test_framework-mt -lboost_system-mt -lboost_regex-mt -lboost_date_time-mt -lboost_thread-mt -Wl,-Bdynamic -lpthread -Wl,-Bstatic -lboost_filesystem-mt -lboost_program_options-mt -Wl,-Bdynamic /usr/local/lib/libboost_chrono.a -lpthread ../src/libcppnetlib-uri.a -lssl -lcrypto -lrt CMakeFiles/cpp-netlib-utils_thread_pool.dir/utils_thread_pool.cpp.o: In function boost::thread::start_thread()': /usr/local/include/boost/thread/detail/thread.hpp:180: undefined reference toboost::thread::start_thread_noexcept()' CMakeFiles/cpp-netlib-utils_thread_pool.dir/utils_thread_pool.cpp.o: In function boost::thread::join()': /usr/local/include/boost/thread/detail/thread.hpp:754: undefined reference toboost::thread::join_noexcept()' make[2]: *** [tests/cpp-netlib-utils_thread_pool] Error 1 make[2]: Leaving directory /home/jeffrey/cpp-netlib-0.10.1' make[1]: *** [libs/network/test/CMakeFiles/cpp-netlib-utils_thread_pool.dir/all] Error 2 make[1]: Leaving directory/home/jeffrey/cpp-netlib-0.10.1' make: *** [all] Error 2

    opened by noloader 16
  • Update Travis Configuration

    Update Travis Configuration

    This change makes the build matrix explicit, and allows us to upgrade the CI infrastructure to use:

    • Newer compilers: GCC [4.9, 5.0], Clang [3.8, 3.9, 4.0, 5.0]
    • Updated distribution: from Precise to Trusty

    In the future, we can also test on OS X and start retiring support for older compilers when we start moving to using C++14 features in the library.

    opened by deanberris 15
  • problems building on Ubuntu 13.04

    problems building on Ubuntu 13.04

    hi there

    my system is in dutch so I've provided translation using << [translation] ok this is what I did:

    niek@niek-N73SV:~/Bureaublad$ git clone git://github.com/cpp-netlib/cpp-netlib.git Cloning into 'cpp-netlib'... remote: Counting objects: 13378, done. remote: Compressing objects: 100% (7427/7427), done. remote: Total 13378 (delta 5879), reused 13070 (delta 5617) Receiving objects: 100% (13378/13378), 6.21 MiB | 1.78 MiB/s, done. Resolving deltas: 100% (5879/5879), done. niek@niek-N73SV:~/Bureaublad$ mkdir cpp-netlib-build niek@niek-N73SV:~/Bureaublad$ cd cpp-netlib niek@niek-N73SV:~/Bureaublad/cpp-netlib$ cd ../cpp-netlib-build/ niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$ make -DCMAKE_BUILD_TYPE=Debug \

      -DCMAKE_C_COMPILER=gcc   \
      -DCMAKE_CXX_COMPILER=g++ \
      ../cpp-netlib
    

    bash: ../cpp-netlib: Is een map << it's a folder!! niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$ make make: *** Geen doelen opgegeven en geen makefile gevonden. Gestopt. << did not specify target and did not find makefile niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$

    so in short, it doesn't work, I can retry without the extra cmake commands which will give me this: niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$ cmake ../cpp-netlib -- The C compiler identification is GNU 4.7.3 -- The CXX compiler identification is GNU 4.7.3 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found ICU header files in /usr/include -- Found ICU libraries: /usr/lib/x86_64-linux-gnu/libicuuc.so -- Boost version: 1.53.0 -- Found the following Boost libraries: -- system -- regex -- date_time -- filesystem -- program_options -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.1c") -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE
    -- Performing Test HAVE_STD11 -- Performing Test HAVE_STD11 - Success C++ Compiler ID: GNU C++ Flags: -std=c++11 -Wall link flags: -- CPP-NETLIB options selected: -- CPP-NETLIB_BUILD_SHARED_LIBS: OFF (Build cpp-netlib as shared libraries: OFF, ON) -- CPP-NETLIB_BUILD_SINGLE_LIB: OFF (Build cpp-netlib into a single library: OFF, ON) -- CPP-NETLIB_BUILD_TESTS: ON (Build the unit tests: ON, OFF) -- CPP-NETLIB_BUILD_EXAMPLES: ON (Build the examples using cpp-netlib: ON, OFF) -- CPP-NETLIB_ALWAYS_LOGGING: OFF (Allow cpp-netlib to log debug messages even in non-debug mode: ON, OFF) -- CPP-NETLIB_DISABLE_LOGGING: OFF (Disable logging definitely, no logging code will be generated or compiled: ON, OFF) -- CPP-NETLIB_DISABLE_LIBCXX: OFF (Disable using libc++ when building with clang: ON, OFF) -- CMake build options selected: CMake Error at CMakeLists.txt:115 (add_subdirectory): The source directory

    /home/niek/Bureaublad/cpp-netlib/deps/gmock
    

    does not contain a CMakeLists.txt file.

    CMake Error at CMakeLists.txt:142 (add_subdirectory): The source directory

    /home/niek/Bureaublad/cpp-netlib/uri
    

    does not contain a CMakeLists.txt file.

    -- Configuring incomplete, errors occurred! niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$ make make: *** Geen doelen opgegeven en geen makefile gevonden. Gestopt. niek@niek-N73SV:~/Bureaublad/cpp-netlib-build$

    opened by nieknooijens 15
  • Confusing boost namespace

    Confusing boost namespace

    Since cpp-netlib isn't part of Boost libraries, having it sit in the boost namespace is very confusing, especially in projects that also use Boost.

    Thus hereby a friendly request to move it to its own namespace (e.g. netlib).

    opened by rustyx 0
  • boost\network\uri\encode.hpp(121,28): warning C4244: 'argument': conversion from 'CharT' to 'char', possible loss of data

    boost\network\uri\encode.hpp(121,28): warning C4244: 'argument': conversion from 'CharT' to 'char', possible loss of data

    Hi, similar to https://github.com/cpp-netlib/cpp-netlib/issues/896 I'm now getting another warning:

    C:\vcpkg\installed\x64-windows-static\include\boost\network\uri\encode.hpp(121,28): warning C4244: 'argument': conversion from 'CharT' to 'char', possible loss of data
    C:\vcpkg\installed\x64-windows-static\include\boost\network\uri\encode.hpp(122,28): warning C4244: 'argument': conversion from 'CharT' to 'char', possible loss of data
    
    opened by BullyWiiPlaza 0
  • boost\network\uri\uri.hpp(336,40): warning C4244: 'argument': conversion from '__int64' to 'long', possible loss of data

    boost\network\uri\uri.hpp(336,40): warning C4244: 'argument': conversion from '__int64' to 'long', possible loss of data

    Hi, I'm using vcpkg and when I include cpp-netlib in my codebase, I always get the following compilation warning:

    C:\vcpkg\installed\x64-windows-static\include\boost\network\uri\uri.hpp(336,40): warning C4244: 'argument': conversion from '__int64' to 'long', possible loss of data (compiling source file main.cpp)
    

    This would easily be fixed by adding a respective cast in this library:

    inline bool operator==(const uri &lhs, const uri::value_type *rhs) {
      auto rlen = std::strlen(rhs);
      size_t llen = std::labs((long) std::distance(lhs.begin(), lhs.end())); // <---
      if (rlen != llen) return false;
      return boost::equal(lhs, boost::make_iterator_range(rhs, rhs + rlen));
    }
    
    opened by BullyWiiPlaza 1
  • Could not find a package configuration file provided by

    Could not find a package configuration file provided by "cppnetlib" (requested version 0.13.0) with any of the following names

    I have compiled and installed cppnetlib on my Ubuntu following https://cpp-netlib.org/0.13.0/getting_started.html and everything is OK. But when I tried to use it in my project by : set ( CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ~/cpp-netlib-build ) find_package ( cppnetlib 0.13.0 REQUIRED ) include_directories ( ${CPPNETLIB_INCLUDE_DIRS} ) target_link_libraries ( MyApplication ${CPPNETLIB_LIBRARIES} )

    I got the error: ` CMake Error at CMakeLists.txt:9 (find_package): By not providing "Findcppnetlib.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "cppnetlib", but CMake did not find one.

    Could not find a package configuration file provided by "cppnetlib" (requested version 0.13.0) with any of the following names:

    cppnetlibConfig.cmake cppnetlib-config.cmake

    Add the installation prefix of "cppnetlib" to CMAKE_PREFIX_PATH or set "cppnetlib_DIR" to a directory containing one of the above files. If "cppnetlib" provides a separate development package or SDK, be sure it has been installed.

    -- Configuring incomplete, errors occurred! See also "/home/paas_requester/download_image_testbed/build/CMakeFiles/CMakeOutput.log". Makefile:176: recipe for target 'cmake_check_build_system' failed make: *** [cmake_check_build_system] Error 1 `

    And I've checked that there's actually no config.cmake under cpp-netlib-build.

    opened by Mactarvish 1
Releases(cpp-netlib-0.10.1)
  • cpp-netlib-0.10.1(Jul 5, 2013)

    This release contains patches on top of 0.10.0 that addresses some long-standing issues. There are no API changes from 0.10.0 and should be a drop-in replacement to the previous release.

    Source code(tar.gz)
    Source code(zip)
Owner
C++ Network Library
C++ Network Library
Small and fast cross-platform networking library, with support for messaging, IPv6, HTTP, SSL and WebSocket.

frnetlib Frnetlib, is a cross-platform, small and fast networking library written in C++. There are no library dependencies (unless you want to use SS

Fred Nicolson 23 Nov 25, 2022
RakNet is a cross platform, open source, C++ networking engine for game programmers.

RakNet 4.081 Copyright (c) 2014, Oculus VR, Inc. Package notes The Help directory contains index.html, which is full help documentation in HTML format

Facebook Archive 3.1k Dec 30, 2022
RakNet is a cross platform, open source, C++ networking engine for game programmers.

RakNet 4.081 Copyright (c) 2014, Oculus VR, Inc. Package notes The Help directory contains index.html, which is full help documentation in HTML format

Facebook Archive 3.1k Dec 30, 2022
Brynet - Header Only Cross platform high performance TCP network library using C++ 11.

Brynet Header Only Cross platform high performance TCP network library using C++ 11. Build status Windows : Linux/MacOS : Features Header only Cross p

IronsDu 895 Jan 8, 2023
Mars is a cross-platform network component developed by WeChat.

Mars is a cross-platform infrastructure component developed by WeChat Mobile Team

Tencent 16.6k Jan 3, 2023
LANDrop is a cross-platform tool that you can use to conveniently transfer photos, videos, and other types of files to other devices on the same local network.

LANDrop is a cross-platform tool that you can use to conveniently transfer photos, videos, and other types of files to other devices on the same local network.

LANDrop 3.4k Jan 7, 2023
A cross-platform network learning demos. Like high-performance http server

Network-Learn A cross-platform network learning demos (toys). And I try not to use 3rd-party libraries. Welcome to try it out and leave your comments.

Ho 229 24 Sep 6, 2022
:hocho: Strictly RFC 3986 compliant URI parsing and handling library written in C89; moved from SourceForge to GitHub

uriparser uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C89 ("ANSI C"). uriparser is cross-platform, fast, su

uriparser 260 Dec 28, 2022
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.

WAFer WAFer is a C language-based ultra-light scalable server-side web applications framework. Think node.js for C programmers. Because it's written i

Riolet Corporation 693 Dec 6, 2022
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.

evpp Introduction 中文说明 evpp is a modern C++ network library for developing high performance network services using TCP/UDP/HTTP protocols. evpp provid

Qihoo 360 3.2k Jan 5, 2023
Header-only C++14 library for getting network addresses associated with network interface without name lookups on Windows, macOS, Linux, and FreeBSD

NetIF Get addresses associated with network interfaces on a system without using name lookups. Header-only, requires C++14. Usage Add the header file

GMLC-TDC 9 Oct 17, 2022
Netif - Header-only C++14 library for getting network addresses associated with network interface without name lookups on Windows, macOS, Linux, and FreeBSD

NetIF Get addresses associated with network interfaces on a system without using name lookups. Header-only, requires C++14. Usage Add the header file

GMLC-TDC 9 Oct 17, 2022
XMap is a fast network scanner designed for performing Internet-wide IPv6 & IPv4 network research scanning.

XMap is reimplemented and improved thoroughly from ZMap and is fully compatible with ZMap, armed with the "5 minutes" probing speed and novel scanning techniques. XMap is capable of scanning the 32-bits address space in under 45 minutes.

idealeer 190 Dec 24, 2022
Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Cesanta Software 9k Jan 1, 2023
ENet reliable UDP networking library

Please visit the ENet homepage at http://enet.bespin.org for installation and usage instructions. If you obtained this package from github, the quick

Lee Salzman 2.3k Dec 30, 2022
canonical libwebsockets.org networking library

Libwebsockets Libwebsockets is a simple-to-use, MIT-license, pure C library providing client and server for http/1, http/2, websockets, MQTT and other

lws-team 3.7k Dec 31, 2022
Backroll is a pure Rust implementation of GGPO rollback networking library.

backroll-rs Backroll is a pure Rust implementation of GGPO rollback networking library. Development Status This is still in an early beta stage. At ti

Hourai Teahouse 276 Jan 2, 2023
requests-like networking library using boost for C++

cq == C++ Requests cq == C++ Requests is a "Python Requests"-like C++ header-only library for sending HTTP requests. The library is inspired a lot by

null 11 Dec 15, 2021
C++ networking library including UniConf and a convenient D-Bus API

This is wvstreams, a nominally platform-independent networking and utilities library for C++. Some documentation is in the Docs/ directory. If that

null 27 Dec 29, 2021