Commit 6d5d7eff authored by louiz’'s avatar louiz’

Directly use Botan::byte instead of char, to avoid an unnecessary cast

parent 021f025c
...@@ -417,15 +417,14 @@ void TCPSocketHandler::start_tls() ...@@ -417,15 +417,14 @@ void TCPSocketHandler::start_tls()
void TCPSocketHandler::tls_recv() void TCPSocketHandler::tls_recv()
{ {
static constexpr size_t buf_size = 4096; static constexpr size_t buf_size = 4096;
char recv_buf[buf_size]; Botan::byte recv_buf[buf_size];
const ssize_t size = this->do_recv(recv_buf, buf_size); const ssize_t size = this->do_recv(recv_buf, buf_size);
if (size > 0) if (size > 0)
{ {
const bool was_active = this->tls->is_active(); const bool was_active = this->tls->is_active();
try { try {
this->tls->received_data(reinterpret_cast<const Botan::byte*>(recv_buf), this->tls->received_data(recv_buf, static_cast<size_t>(size));
static_cast<size_t>(size));
} catch (const Botan::TLS::TLS_Exception& e) { } catch (const Botan::TLS::TLS_Exception& e) {
// May happen if the server sends malformed TLS data (buggy server, // May happen if the server sends malformed TLS data (buggy server,
// or more probably we are just connected to a server that sends // or more probably we are just connected to a server that sends
...@@ -448,9 +447,8 @@ void TCPSocketHandler::tls_send(std::string&& data) ...@@ -448,9 +447,8 @@ void TCPSocketHandler::tls_send(std::string&& data)
const bool was_active = this->tls->is_active(); const bool was_active = this->tls->is_active();
if (!this->pre_buf.empty()) if (!this->pre_buf.empty())
{ {
this->tls->send(reinterpret_cast<const Botan::byte*>(this->pre_buf.data()), this->tls->send(this->pre_buf.data(), this->pre_buf.size());
this->pre_buf.size()); this->pre_buf.clear();
this->pre_buf = "";
} }
if (!data.empty()) if (!data.empty())
this->tls->send(reinterpret_cast<const Botan::byte*>(data.data()), this->tls->send(reinterpret_cast<const Botan::byte*>(data.data()),
...@@ -459,7 +457,9 @@ void TCPSocketHandler::tls_send(std::string&& data) ...@@ -459,7 +457,9 @@ void TCPSocketHandler::tls_send(std::string&& data)
this->on_tls_activated(); this->on_tls_activated();
} }
else else
this->pre_buf += data; this->pre_buf.insert(this->pre_buf.end(),
std::make_move_iterator(data.begin()),
std::make_move_iterator(data.end()));
} }
void TCPSocketHandler::tls_data_cb(const Botan::byte* data, size_t size) void TCPSocketHandler::tls_data_cb(const Botan::byte* data, size_t size)
......
...@@ -266,9 +266,6 @@ private: ...@@ -266,9 +266,6 @@ private:
* An additional buffer to keep data that the user wants to send, but * An additional buffer to keep data that the user wants to send, but
* cannot because the handshake is not done. * cannot because the handshake is not done.
*/ */
std::string pre_buf; std::vector<Botan::byte> pre_buf;
#endif // BOTAN_FOUND #endif // BOTAN_FOUND
}; };
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment