diff --git a/include/frnetlib/HttpRequest.h b/include/frnetlib/HttpRequest.h index d7cbfe4..ad8f9fd 100644 --- a/include/frnetlib/HttpRequest.h +++ b/include/frnetlib/HttpRequest.h @@ -41,7 +41,7 @@ namespace fr * * @param header_end_pos The position in 'body' of the end of the header */ - void parse_header(ssize_t header_end_pos); + void parse_header(int32_t header_end_pos); /*! * Parses the POST data from the body @@ -64,7 +64,7 @@ namespace fr //State bool header_ended; - ssize_t last_parsed_character; + int32_t last_parsed_character; size_t content_length; }; diff --git a/include/frnetlib/HttpResponse.h b/include/frnetlib/HttpResponse.h index 21ec82f..d2d8383 100644 --- a/include/frnetlib/HttpResponse.h +++ b/include/frnetlib/HttpResponse.h @@ -41,7 +41,7 @@ namespace fr * * @param header_end_pos The position in 'body' of the end of the header */ - void parse_header(ssize_t header_end_pos); + void parse_header(int32_t header_end_pos); //State bool header_ended; diff --git a/include/frnetlib/NetworkEncoding.h b/include/frnetlib/NetworkEncoding.h index 1951dd4..4bbf410 100644 --- a/include/frnetlib/NetworkEncoding.h +++ b/include/frnetlib/NetworkEncoding.h @@ -28,44 +28,49 @@ #endif + +#ifdef __GNUC__ + #define htonll(x) ((1==htonl(1)) ? (x) : ((uint64_t)htonl((x) & 0xFFFFFFFF) << 32) | htonl((x) >> 32)) #define ntohll(x) ((1==ntohl(1)) ? (x) : ((uint64_t)ntohl((x) & 0xFFFFFFFF) << 32) | ntohl((x) >> 32)) inline float htonf(float val) { - uint32_t ret; - memcpy(&ret, &val, sizeof(ret)); - ret = htonl(ret); - memcpy(&val, &ret, sizeof(val)); - return val; + uint32_t ret; + memcpy(&ret, &val, sizeof(ret)); + ret = htonl(ret); + memcpy(&val, &ret, sizeof(val)); + return val; } inline float ntohf(float val) { - uint32_t ret; - memcpy(&ret, &val, sizeof(ret)); - ret = ntohl(ret); - memcpy(&val, &ret, sizeof(val)); - return val; + uint32_t ret; + memcpy(&ret, &val, sizeof(ret)); + ret = ntohl(ret); + memcpy(&val, &ret, sizeof(val)); + return val; } inline double htond(double val) { - uint64_t ret; - memcpy(&ret, &val, sizeof(ret)); - ret = htonll(ret); - memcpy(&val, &ret, sizeof(val)); - return val; + uint64_t ret; + memcpy(&ret, &val, sizeof(ret)); + ret = htonll(ret); + memcpy(&val, &ret, sizeof(val)); + return val; } inline double ntohd(double val) { - uint64_t ret; - memcpy(&ret, &val, sizeof(ret)); - ret = ntohll(ret); - memcpy(&val, &ret, sizeof(val)); - return val; + uint64_t ret; + memcpy(&ret, &val, sizeof(ret)); + ret = ntohll(ret); + memcpy(&val, &ret, sizeof(val)); + return val; } +#endif + inline void *get_sin_addr(struct sockaddr *sa) { if(sa->sa_family == AF_INET) diff --git a/include/frnetlib/SSLContext.h b/include/frnetlib/SSLContext.h index b53dc17..643b1cb 100644 --- a/include/frnetlib/SSLContext.h +++ b/include/frnetlib/SSLContext.h @@ -53,6 +53,7 @@ namespace fr */ bool load_ca_certs_from_memory(const std::string &ca_certs) { + std::cerr << "Note: load_ca_certs_from_memory() seems to be broken. Please use load_ca_certs_from_file() until this is resolved." << std::endl; int error = mbedtls_x509_crt_parse(&cacert, (const unsigned char *)ca_certs.c_str(), ca_certs.size()); if(error < 0) { diff --git a/src/HttpRequest.cpp b/src/HttpRequest.cpp index 1705a82..41e9508 100644 --- a/src/HttpRequest.cpp +++ b/src/HttpRequest.cpp @@ -52,7 +52,7 @@ namespace fr return true; } - void HttpRequest::parse_header(ssize_t header_end_pos) + void HttpRequest::parse_header(int32_t header_end_pos) { //Split the header into lines size_t line = 0; @@ -74,7 +74,7 @@ namespace fr //Store content length value if it exists auto length_header_iter = header_data.find("content-length"); if(length_header_iter != header_data.end()) - content_length = std::stoull(length_header_iter->second); + content_length = (size_t)std::stoull(length_header_iter->second); } std::string HttpRequest::construct(const std::string &host) const diff --git a/src/HttpResponse.cpp b/src/HttpResponse.cpp index b002ff5..1bb9d3c 100644 --- a/src/HttpResponse.cpp +++ b/src/HttpResponse.cpp @@ -62,7 +62,7 @@ namespace fr return response; } - void HttpResponse::parse_header(ssize_t header_end_pos) + void HttpResponse::parse_header(int32_t header_end_pos) { //Split the header into lines size_t line = 0; diff --git a/src/Socket.cpp b/src/Socket.cpp index 380cda9..e044686 100644 --- a/src/Socket.cpp +++ b/src/Socket.cpp @@ -83,7 +83,7 @@ namespace fr if(!connected()) return Socket::Disconnected; - ssize_t bytes_remaining = buffer_size; + int32_t bytes_remaining = buffer_size; size_t bytes_read = 0; while(bytes_remaining > 0) { diff --git a/src/TcpSocket.cpp b/src/TcpSocket.cpp index 49ea2c0..d319f82 100644 --- a/src/TcpSocket.cpp +++ b/src/TcpSocket.cpp @@ -25,7 +25,7 @@ namespace fr size_t sent = 0; while(sent < size) { - ssize_t status = ::send(socket_descriptor, data + sent, size - sent, 0); + int32_t status = ::send(socket_descriptor, data + sent, size - sent, 0); if(status > 0) { sent += status; @@ -53,7 +53,7 @@ namespace fr received = 0; //Read RECV_CHUNK_SIZE bytes into the recv buffer - ssize_t status = ::recv(socket_descriptor, (char*)data, buffer_size, 0); + int32_t status = ::recv(socket_descriptor, (char*)data, buffer_size, 0); if(status > 0) {