diff options
author | Ross Burton <ross.burton@intel.com> | 2014-02-18 12:13:01 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-20 14:28:03 +0000 |
commit | 85e89da55f778ad3713460cb0df1435d82e94510 (patch) | |
tree | e043806d53e02ac866bdee4b2cc32492310342dc /meta/recipes-connectivity/avahi | |
parent | a5ebdb6ad8e4f94ac819275d55575230e057e4ae (diff) | |
download | openembedded-core-85e89da55f778ad3713460cb0df1435d82e94510.tar.gz openembedded-core-85e89da55f778ad3713460cb0df1435d82e94510.tar.bz2 openembedded-core-85e89da55f778ad3713460cb0df1435d82e94510.zip |
avahi: handle SO_REUSEPORT not being available
Linux < 3.9 doesn't have the SO_REUSEPORT option so instead of failing to start
when built with >=3.9 kernel headers but booted on <3.9 kernels, continue as if
SO_REUSEPORT wasn't available.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-connectivity/avahi')
-rw-r--r-- | meta/recipes-connectivity/avahi/avahi.inc | 1 | ||||
-rw-r--r-- | meta/recipes-connectivity/avahi/files/reuseport-check.patch | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/avahi/avahi.inc b/meta/recipes-connectivity/avahi/avahi.inc index 3a95b7fa1f..e4ff26a17c 100644 --- a/meta/recipes-connectivity/avahi/avahi.inc +++ b/meta/recipes-connectivity/avahi/avahi.inc @@ -26,6 +26,7 @@ SRC_URI = "http://avahi.org/download/avahi-${PV}.tar.gz \ file://fix_for_automake_1.12.x.patch \ file://out-of-tree.patch \ file://0001-avahi-fix-avahi-status-command-error-prompt.patch \ + file://reuseport-check.patch \ " USERADD_PACKAGES = "avahi-daemon avahi-autoipd" diff --git a/meta/recipes-connectivity/avahi/files/reuseport-check.patch b/meta/recipes-connectivity/avahi/files/reuseport-check.patch new file mode 100644 index 0000000000..bb81c2cb4e --- /dev/null +++ b/meta/recipes-connectivity/avahi/files/reuseport-check.patch @@ -0,0 +1,30 @@ +Fix avahi-daemon when running on kernel < 3.9 (patch taken from Ubuntu). + +Upstream-Status: Pending (unmaintained upstream) +Signed-off-by: Ross Burton <ross.burton@intel.com> + +Description: SO_REUSEPORT may not exist in running kernel + When userspace defines SO_REUSEPORT we will attempt to enable socket + port number reuse. However if the running kernel does not support + this call it will fail preventing daemon startup. If this call is + present but fails ENOPROTOOPT then we know that actually the kernel + does not support it and we should continue as if we did not have the + call at all. (LP: #1228204) + . + This patch could be removed from the debian package after jessie release. +Author: Andy Whitcroft <apw@canonical.com> + +Index: avahi-0.6.31/avahi-core/socket.c +=================================================================== +--- avahi-0.6.31.orig/avahi-core/socket.c 2013-09-20 16:36:50.000000000 +0100 ++++ avahi-0.6.31/avahi-core/socket.c 2013-09-20 16:38:23.781863644 +0100 +@@ -177,7 +177,8 @@ + yes = 1; + if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) { + avahi_log_warn("SO_REUSEPORT failed: %s", strerror(errno)); +- return -1; ++ if (errno != ENOPROTOOPT) ++ return -1; + } + #endif + |