a906f39f6e54e6c7956fce37c114822e9bb10815
[openwrt/openwrt.git] / package / network / services / lldpd / patches / 100-os-release.patch
1 Index: lldpd-0.7.15/src/daemon/lldpd.c
2 ===================================================================
3 --- lldpd-0.7.15.orig/src/daemon/lldpd.c
4 +++ lldpd-0.7.15/src/daemon/lldpd.c
5 @@ -736,6 +736,10 @@ lldpd_get_os_release() {
6 fp = fopen("/usr/lib/os-release", "r");
7 }
8 if (!fp) {
9 + log_debug("localchassis", "could not open /usr/lib/os-release");
10 + fp = fopen("/etc/openwrt_release", "r");
11 + }
12 + if (!fp) {
13 log_info("localchassis",
14 "could not open either /etc/os-release or /usr/lib/os-release");
15 return NULL;
16 @@ -745,7 +749,8 @@ lldpd_get_os_release() {
17 key = strtok(line, "=");
18 val = strtok(NULL, "=");
19
20 - if (strncmp(key, "PRETTY_NAME", sizeof(line)) == 0) {
21 + if (strncmp(key, "PRETTY_NAME", sizeof(line)) == 0 ||
22 + strncmp(key, "DISTRIB_DESCRIPTION", sizeof(line)) == 0) {
23 strlcpy(release, val, sizeof(line));
24 break;
25 }
26 @@ -755,11 +760,11 @@ lldpd_get_os_release() {
27 /* Remove trailing newline and all " in the string. */
28 ptr1 = release + strlen(release) - 1;
29 while (ptr1 != release &&
30 - ((*ptr1 == '"') || (*ptr1 == '\n'))) {
31 + ((*ptr1 == '"') || (*ptr1 == '\n') || (*ptr1 == '\''))) {
32 *ptr1 = '\0';
33 ptr1--;
34 }
35 - if (release[0] == '"')
36 + if (release[0] == '"' || release[0] == '\'')
37 return release+1;
38 return release;
39 }