diff options
author | 2016-04-10 14:02:31 +0200 | |
---|---|---|
committer | 2016-04-10 17:03:51 +0200 | |
commit | ffbe0c66becfa5cf65aca3fef451cf162b251b4b (patch) | |
tree | 577722328262e22472133225072fd0a6a57018b3 /src/osd/modules/ipc/raw_tcp_connection.cpp | |
parent | dd89b30c63a9d4a426d1be88a55a88c6c0109047 (diff) |
Basic TCP server based on libuv [Inaki Baz Castillo,Miodrag Milanovic]
Diffstat (limited to 'src/osd/modules/ipc/raw_tcp_connection.cpp')
-rw-r--r-- | src/osd/modules/ipc/raw_tcp_connection.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/osd/modules/ipc/raw_tcp_connection.cpp b/src/osd/modules/ipc/raw_tcp_connection.cpp new file mode 100644 index 00000000000..946aefcafa1 --- /dev/null +++ b/src/osd/modules/ipc/raw_tcp_connection.cpp @@ -0,0 +1,29 @@ +// license:BSD-3-Clause +// copyright-holders:Inaki Baz Castillo,Miodrag Milanovic + +#include "raw_tcp_connection.h" + +/* Instance methods. */ + +raw_tcp_connection::raw_tcp_connection(listener* listener, size_t bufferSize) : + tcp_connection(bufferSize), + m_listener(listener) +{ +} + +raw_tcp_connection::~raw_tcp_connection() +{ +} + +void raw_tcp_connection::user_on_tcp_connection_read() +{ + // We may receive multiple packets in the same TCP chunk. If one of them is + // a DTLS Close Alert this would be closed (close() called) so we cannot call + // our listeners anymore. + if (is_closing()) + return; + + m_listener->on_data_recv(this, m_buffer, m_buffer_data_len); + + m_buffer_data_len = 0; +} |