summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-plugins/vdr-vompserver/files/rrprocstart.patch')
-rw-r--r--media-plugins/vdr-vompserver/files/rrprocstart.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/media-plugins/vdr-vompserver/files/rrprocstart.patch b/media-plugins/vdr-vompserver/files/rrprocstart.patch
new file mode 100644
index 000000000000..bccdc9d5700d
--- /dev/null
+++ b/media-plugins/vdr-vompserver/files/rrprocstart.patch
@@ -0,0 +1,43 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 10-rrprocstart.dpatch by <marten.richter@freenet.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Backport of a bug in rrproc
+
+fix a message overrun when MediaMVP boots
+The topic is documented in http://forum.loggytronic.com/index.php?topic=528.0
+
+@DPATCH@
+diff -u vdr-plugin-vompserver-new/vompclientrrproc.c vdr-plugin-vompserver-0.3.1/vompclientrrproc.c
+--- vdr-plugin-vompserver-new/vompclientrrproc.c 2010-07-05 19:20:11.000000000 +0200
++++ vdr-plugin-vompserver-0.3.1/vompclientrrproc.c 2010-07-05 19:24:05.000000000 +0200
+@@ -87,9 +87,25 @@
+
+ if (req_queue.size() != 0)
+ {
+- log->log("RRProc", Log::ERR, "threadMethod err 1");
+- threadUnlock();
+- return;
++ log->log("RRProc", Log::ERR, "threadMethod startup with already queued packets");
++ while (req_queue.size())
++ {
++ //log->log("RRProc", Log::DEBUG, "thread while");
++ req = req_queue.front();
++ req_queue.pop();
++
++ threadUnlock(); // allow recvRequest to be queuing packets while we are working on this one
++
++ if (!processPacket())
++ {
++ log->log("RRProc", Log::ERR, "processPacket exited with fail");
++ return;
++ }
++
++ threadLock();
++ }
++ log->log("RRProc", Log::ERR, "threadMethod startup with already queued packets done.");
++
+ }
+
+ while(1)
+