aboutsummaryrefslogtreecommitdiffstats
path: root/src/EtiReader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/EtiReader.cpp')
-rw-r--r--src/EtiReader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/EtiReader.cpp b/src/EtiReader.cpp
index f0a1793..de23142 100644
--- a/src/EtiReader.cpp
+++ b/src/EtiReader.cpp
@@ -545,7 +545,14 @@ void EdiUdpInput::Open(const std::string& uri)
m_port = std::stoi(m[1].str());
etiLog.level(info) << "EDI port :" << m_port;
- m_udp_rx.start(m_port);
+
+ // The max_fragments_queued is only a protection against a runaway
+ // memory usage.
+ // Rough calculation:
+ // 300 seconds, 24ms per frame, up to 20 fragments per frame
+ const size_t max_fragments_queued = 20 * 300 * 1000 / 24;
+
+ m_udp_rx.start(m_port, max_fragments_queued);
m_enabled = true;
}
}