Skip to content

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

@matthijs

Description

@matthijs

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions