aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-protocols/quagga
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-protocols/quagga')
-rw-r--r--meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch50
-rw-r--r--meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb1
2 files changed, 51 insertions, 0 deletions
diff --git a/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch b/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch
new file mode 100644
index 0000000000..c2757a2fb7
--- /dev/null
+++ b/meta-networking/recipes-protocols/quagga/files/babel-close-the-stdout-stderr-as-in-other-daemons.patch
@@ -0,0 +1,50 @@
+From ba71f768e6dbb1f2ac72ed3bd880bff75a48d345 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Wed, 19 Feb 2014 14:13:40 +0800
+Subject: [PATCH] babeld: close stdout once the background daemon is created
+
+Upstream-Status: pending
+
+Once babald becomes a background daemon, it should not output information to
+stdout, so need to close stdout.
+
+In fact, other daemons close their stdout when they run into background, like
+ospfd, isisd and bgpd, by calling daemon() which is in lib/daemon.c
+
+Closing the stdout can fix a tee hang issue { #/usr/sbin/babeld -d |tee tmp }
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ babeld/util.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/babeld/util.c b/babeld/util.c
+index 011f382..76203bc 100644
+--- a/babeld/util.c
++++ b/babeld/util.c
+@@ -425,7 +425,7 @@ uchar_to_in6addr(struct in6_addr *dest, const unsigned char *src)
+ int
+ daemonise()
+ {
+- int rc;
++ int rc, fd;
+
+ fflush(stdout);
+ fflush(stderr);
+@@ -441,5 +441,13 @@ daemonise()
+ if(rc < 0)
+ return -1;
+
++ fd = open("/dev/null", O_RDWR, 0);
++ if (fd != -1)
++ {
++ dup2(fd, STDOUT_FILENO);
++ if (fd > 2)
++ close(fd);
++ }
++
+ return 1;
+ }
+--
+1.7.10.4
+
diff --git a/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb b/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
index ae93952e3e..db2a67b4a9 100644
--- a/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
+++ b/meta-networking/recipes-protocols/quagga/quagga_0.99.21.bb
@@ -5,6 +5,7 @@ PR = "${INC_PR}.0"
SRC_URI += "file://0001-doc-fix-makeinfo-errors-and-one-warning.patch \
file://lingering-IP-address-after-deletion-BZ-486.patch \
file://build-fix-extract.pl-for-cross-compilation.patch \
+ file://babel-close-the-stdout-stderr-as-in-other-daemons.patch \
"
SRC_URI[quagga-0.99.21.md5sum] = "99840adbe57047c90dfba6b6ed9aec7f"