]> git.ipfire.org Git - thirdparty/lldpd.git/blobdiff - src/lldpd.c
Merge branch '15-old-compat'
[thirdparty/lldpd.git] / src / lldpd.c
index be64325251f49b98cfb4cda449496fdb68a07a3b..0d669a59bd0d2936ee5047fe9a6c545b12f57ce9 100644 (file)
@@ -610,9 +610,14 @@ lldpd_update_localchassis(struct lldpd *cfg)
        free(LOCAL_CHASSIS(cfg)->c_descr);
        if ((LOCAL_CHASSIS(cfg)->c_name = strdup(hp)) == NULL)
                fatal(NULL);
-       if (asprintf(&LOCAL_CHASSIS(cfg)->c_descr, "%s %s %s %s",
-               un.sysname, un.release, un.version, un.machine) == -1)
-               fatal("failed to set system description");
+       if (cfg->g_advertise_version) {
+               if (asprintf(&LOCAL_CHASSIS(cfg)->c_descr, "%s %s %s %s",
+                       un.sysname, un.release, un.version, un.machine) == -1)
+                       fatal("failed to set full system description");
+       } else {
+               if (asprintf(&LOCAL_CHASSIS(cfg)->c_descr, "%s", un.sysname) == -1)
+                       fatal("failed to set minimal system description");
+       }
 
        /* Check forwarding */
        if ((f = priv_open("/proc/sys/net/ipv4/ip_forward")) >= 0) {
@@ -626,7 +631,10 @@ lldpd_update_localchassis(struct lldpd *cfg)
                LOCAL_CHASSIS(cfg)->c_cap_enabled |= LLDP_CAP_TELEPHONE;
        lldpd_med(LOCAL_CHASSIS(cfg));
        free(LOCAL_CHASSIS(cfg)->c_med_sw);
-       LOCAL_CHASSIS(cfg)->c_med_sw = strdup(un.release);
+       if (cfg->g_advertise_version)
+               LOCAL_CHASSIS(cfg)->c_med_sw = strdup(un.release);
+       else
+               LOCAL_CHASSIS(cfg)->c_med_sw = strdup("Unknown");
 #endif
 
        /* Set chassis ID if needed */
@@ -741,8 +749,8 @@ lldpd_main(int argc, char *argv[])
 #ifdef ENABLE_LISTENVLAN
                "v"
 #endif
-               "dxm:p:M:i@                    ";
-       int i, found;
+               "kdxm:p:M:i@                    ";
+       int i, found, advertise_version = 1;
 #ifdef ENABLE_LISTENVLAN
        int vlan = 0;
 #endif
@@ -774,6 +782,9 @@ lldpd_main(int argc, char *argv[])
                case 'm':
                        mgmtp = optarg;
                        break;
+               case 'k':
+                       advertise_version = 0;
+                       break;
 #ifdef ENABLE_LLDPMED
                case 'M':
                        lldpmed = atoi(optarg);
@@ -840,6 +851,7 @@ lldpd_main(int argc, char *argv[])
                fatal(NULL);
 
        cfg->g_mgmt_pattern = mgmtp;
+       cfg->g_advertise_version = advertise_version;
 #ifdef ENABLE_LISTENVLAN
        cfg->g_listen_vlans = vlan;
 #endif