openwrt/package/network/services/lldpd/patches/100-os-release.patch
Jo-Philipp Wich 8df45565e9 lldpd: update to v0.7.15 and add support for parsing /etc/openwrt_release
Also drop superseded patches.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 45810
2015-05-28 16:19:38 +00:00

40 lines
1.3 KiB
Diff

Index: lldpd-0.7.15/src/daemon/lldpd.c
===================================================================
--- lldpd-0.7.15.orig/src/daemon/lldpd.c
+++ lldpd-0.7.15/src/daemon/lldpd.c
@@ -736,6 +736,10 @@ lldpd_get_os_release() {
fp = fopen("/usr/lib/os-release", "r");
}
if (!fp) {
+ log_debug("localchassis", "could not open /usr/lib/os-release");
+ fp = fopen("/etc/openwrt_release", "r");
+ }
+ if (!fp) {
log_info("localchassis",
"could not open either /etc/os-release or /usr/lib/os-release");
return NULL;
@@ -745,7 +749,8 @@ lldpd_get_os_release() {
key = strtok(line, "=");
val = strtok(NULL, "=");
- if (strncmp(key, "PRETTY_NAME", sizeof(line)) == 0) {
+ if (strncmp(key, "PRETTY_NAME", sizeof(line)) == 0 ||
+ strncmp(key, "DISTRIB_DESCRIPTION", sizeof(line)) == 0) {
strlcpy(release, val, sizeof(line));
break;
}
@@ -755,11 +760,11 @@ lldpd_get_os_release() {
/* Remove trailing newline and all " in the string. */
ptr1 = release + strlen(release) - 1;
while (ptr1 != release &&
- ((*ptr1 == '"') || (*ptr1 == '\n'))) {
+ ((*ptr1 == '"') || (*ptr1 == '\n') || (*ptr1 == '\''))) {
*ptr1 = '\0';
ptr1--;
}
- if (release[0] == '"')
+ if (release[0] == '"' || release[0] == '\'')
return release+1;
return release;
}