From 845934ca50eee40884e8cc85ea81eb310efa5ca3 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 22 Apr 2013 00:52:44 +0200 Subject: [PATCH 1/1] Support UDP packets larger than 4 kB. --- udpinput.cpp | 5 ++--- udpinput.h | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/udpinput.cpp b/udpinput.cpp index 7caf8e1..3e4b9b7 100644 --- a/udpinput.cpp +++ b/udpinput.cpp @@ -94,10 +94,9 @@ void UDPInput::do_work() continue; } - char buf[4096]; int ret; do { - ret = recv(sock, buf, sizeof(buf), 0); + ret = recv(sock, packet_buf, sizeof(packet_buf), 0); } while (ret == -1 && errno == EINTR); if (ret <= 0) { @@ -107,7 +106,7 @@ void UDPInput::do_work() } for (size_t i = 0; i < stream_indices.size(); ++i) { - servers->add_data(stream_indices[i], buf, ret); + servers->add_data(stream_indices[i], packet_buf, ret); } } } diff --git a/udpinput.h b/udpinput.h index e41266e..0ee5dc9 100644 --- a/udpinput.h +++ b/udpinput.h @@ -39,6 +39,9 @@ private: // The socket we are receiving on (or -1). int sock; + + // Temporary buffer, sized for the maximum size of an UDP packet. + char packet_buf[65536]; }; #endif // !defined(_UDPINPUT_H) -- 2.39.2