When compiling pppd against kernel headers which don't provide
the definitions for the NETLINK mechanisms, leave out the code
which uses NETLINK, so as to avoid getting compile errors.
Upstream commit in Linux refers.
commit
10c9ead9f3c6bb24bddc9a96681f7d58e6623966
Author: Roopa Prabhu <roopa@cumulusnetworks.com>
Date: Wed Apr 20 08:43:43 2016 -0700
rtnetlink: add new RTM_GETSTATS message to dump link stats
This commit adds the #defines and structs used, so simply not compiling
this code if the required #defines isn't there should solve the problem.
Closes: #450
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/if_link.h>
-
-/* Attempt at retaining compile-support with older than 4.7 kernels, or kernels
- * where RTM_NEWSTATS isn't defined for whatever reason.
- */
-#ifndef RTM_NEWSTATS
-#define RTM_NEWSTATS 92
-#define RTM_GETSTATS 94
-#define IFLA_STATS_LINK_64 1
-#endif
-
#include <linux/if_addr.h>
/* glibc versions prior to 2.24 do not define SOL_NETLINK */
static int
get_ppp_stats_rtnetlink(int u, struct pppd_stats *stats)
{
+#ifdef RTM_NEWSTATS
static int fd = -1;
struct {
err:
close(fd);
fd = -1;
+#endif
return 0;
}