summaryrefslogtreecommitdiff
path: root/libre/lirc-libre/lircd-handle-large-config.patch
diff options
context:
space:
mode:
authorNicolás Reynolds <apoyosis@correo.inta.gob.ar>2012-06-28 01:08:06 -0300
committerNicolás Reynolds <apoyosis@correo.inta.gob.ar>2012-06-28 01:08:06 -0300
commitefd3779d0b698daee3d1620ffa63f66c3cb249e7 (patch)
treecc005ce0d2509aef0bac3890cb1edbca038c987f /libre/lirc-libre/lircd-handle-large-config.patch
parent93b4e351b297424bea9fb532259036d7a6607672 (diff)
parent2ecb70b29a4d14ebc72f8ec5f9026d350277b6de (diff)
Merge branch 'master' of ssh://gparabola/srv/git/abslibre
Diffstat (limited to 'libre/lirc-libre/lircd-handle-large-config.patch')
-rw-r--r--libre/lirc-libre/lircd-handle-large-config.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/libre/lirc-libre/lircd-handle-large-config.patch b/libre/lirc-libre/lircd-handle-large-config.patch
new file mode 100644
index 000000000..85bc20518
--- /dev/null
+++ b/libre/lirc-libre/lircd-handle-large-config.patch
@@ -0,0 +1,39 @@
+From 5efb56bf22a5077db564c766ba7cc37bc269231d Mon Sep 17 00:00:00 2001
+From: Jarod Wilson <jarod@redhat.com>
+Date: Wed, 6 Apr 2011 11:04:12 -0400
+Subject: [PATCH] lircd: handle larger config files in write_socket better
+
+Pointed out by Michael Zanetti on list, irsend LIST has issues with long
+config files, which didn't exist in maintainer mode, as we were using a
+do while loop to make sure we spit out everything. Just use that loop
+all the time.
+
+Signed-off-by: Jarod Wilson <jarod@redhat.com>
+---
+ daemons/lircd.c | 8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/daemons/lircd.c b/daemons/lircd.c
+index 6c21a3a..ddcca05 100644
+--- a/daemons/lircd.c
++++ b/daemons/lircd.c
+@@ -231,14 +231,10 @@ inline int write_socket(int fd, const char *buf, int len)
+ int done, todo = len;
+
+ while (todo) {
+-#ifdef SIM_REC
+ do {
+ done = write(fd, buf, todo);
+- }
+- while (done < 0 && errno == EAGAIN);
+-#else
+- done = write(fd, buf, todo);
+-#endif
++ } while (done < 0 && errno == EAGAIN);
++
+ if (done <= 0)
+ return (done);
+ buf += done;
+--
+1.7.0.1
+