From: Steinar H. Gunderson Date: Sun, 21 Apr 2013 22:52:44 +0000 (+0200) Subject: Support UDP packets larger than 4 kB. X-Git-Tag: 1.0.0~42 X-Git-Url: https://git.sesse.net/?p=cubemap;a=commitdiff_plain;h=845934ca50eee40884e8cc85ea81eb310efa5ca3;ds=sidebyside Support UDP packets larger than 4 kB. --- 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)