summaryrefslogtreecommitdiff
path: root/libre/lirc-libre/lircd-handle-large-config.patch
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-06 13:37:54 -0300
committerNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-06 13:37:54 -0300
commita48d075b90120462b9f97ab95a224d47e072f7dd (patch)
tree8ba729381a11d91f09b298d888636425c549498b /libre/lirc-libre/lircd-handle-large-config.patch
parent4ce84837520f8c56ae998d5d2d98380faf3e3eb5 (diff)
parent8ab3c2d0517cb4db3ab2f7635d0b71b701e464ba (diff)
Merge branch 'master' of ssh://gparabola/srv/git/abslibre
Diffstat (limited to 'libre/lirc-libre/lircd-handle-large-config.patch')
-rwxr-xr-xlibre/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 100755
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
+