summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/ipc/raw_tcp_connection.cpp
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-04-10 14:02:31 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2016-04-10 17:03:51 +0200
commitffbe0c66becfa5cf65aca3fef451cf162b251b4b (patch)
tree577722328262e22472133225072fd0a6a57018b3 /src/osd/modules/ipc/raw_tcp_connection.cpp
parentdd89b30c63a9d4a426d1be88a55a88c6c0109047 (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.cpp29
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;
+}