std::string AdminSocketClient::do_request(std::string request, std::string *result)
{
int socket_fd = 0, res;
- std::vector<uint8_t> vec(65536, 0);
- uint8_t *buffer = &vec[0];
+ std::string buffer;
uint32_t message_size_raw, message_size;
std::string err = asok_connect(m_path, &socket_fd);
goto done;
}
message_size = ntohl(message_size_raw);
- res = safe_read_exact(socket_fd, buffer, message_size);
+ buffer.resize(message_size, 0);
+ res = safe_read_exact(socket_fd, &buffer[0], message_size);
if (res < 0) {
int e = res;
ostringstream oss;
err = oss.str();
goto done;
}
- //printf("MESSAGE FROM SERVER: %s\n", buffer);
- result->assign((const char*)buffer);
+ //printf("MESSAGE FROM SERVER: %s\n", buffer.c_str());
+ std::swap(*result, buffer);
done:
close(socket_fd);
out: