Added client mode support to HTTP::Websocket, added websockettest binary, added ws/wss protocol support to HTTP::URL, added support for websockets and socket overriding to HTTP::Downloader, fixed HTTP parser not handling response codes 1XX, 204 and 304 correctly.

This commit is contained in:
Thulinma 2020-09-01 12:42:25 +02:00
parent 57b930020b
commit 37af199a1c
9 changed files with 214 additions and 42 deletions

View file

@ -795,15 +795,19 @@ void Socket::Connection::open(std::string host, int port, bool nonblock, bool wi
int ret = 0;
if ((ret = mbedtls_net_connect(server_fd, host.c_str(), JSON::Value(port).asString().c_str(),
MBEDTLS_NET_PROTO_TCP)) != 0){
lastErr = "mbedtls_net_connect failed";
FAIL_MSG(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
char estr[200];
mbedtls_strerror(ret, estr, 200);
lastErr = estr;
FAIL_MSG("SSL connect failed: %d: %s", ret, lastErr.c_str());
close();
return;
}
if ((ret = mbedtls_ssl_config_defaults(conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM,
MBEDTLS_SSL_PRESET_DEFAULT)) != 0){
lastErr = "mbedtls_ssl_config_defaults failed";
FAIL_MSG(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
char estr[200];
mbedtls_strerror(ret, estr, 200);
lastErr = estr;
FAIL_MSG("SSL config failed: %d: %s", ret, lastErr.c_str());
close();
return;
}
@ -819,7 +823,10 @@ void Socket::Connection::open(std::string host, int port, bool nonblock, bool wi
return;
}
if ((ret = mbedtls_ssl_set_hostname(ssl, host.c_str())) != 0){
FAIL_MSG(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret);
char estr[200];
mbedtls_strerror(ret, estr, 200);
lastErr = estr;
FAIL_MSG("SSL setup error %d: %s", ret, lastErr.c_str());
close();
return;
}