From 04eec97b390621f2b3794b0d774b77429eb88cfd Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Wed, 2 May 2018 23:14:19 +0200
Subject: [PATCH] add if_nameindex from musl

Taken from musl, minimal changes.
klibc lacks struct and func

Fix

 ifdown.o: In function `ifdown':
 ifdown.c (.text+0x30): undefined reference to `if_nameindex'

While there add klibc-specific guard and include sys/types.h
to fix :

 /kexec/if_nameindex.c:2:
 /usr/lib/klibc/include/linux/types.h:22:0:
 warning: "__bitwise" redefined
 #define __bitwise __bitwise__

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>

---
 kexec/Makefile       |  2 +-
 kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++
 kexec/if_nameindex.h | 15 +++++++++++
 kexec/ifdown.c       |  3 +++
 4 files changed, 83 insertions(+), 1 deletion(-)
 create mode 100644 kexec/if_nameindex.c
 create mode 100644 kexec/if_nameindex.h

diff --git a/kexec/Makefile b/kexec/Makefile
index 4db84d8..fb7520b 100644
--- a/kexec/Makefile
+++ b/kexec/Makefile
@@ -11,7 +11,7 @@ KEXEC_SRCS = $(KEXEC_SRCS_base)
 KEXEC_GENERATED_SRCS =
 
 KEXEC_SRCS_base += kexec/kexec.c
-KEXEC_SRCS_base += kexec/ifdown.c
+KEXEC_SRCS_base += kexec/if_nameindex kexec/ifdown.c
 KEXEC_SRCS_base += kexec/kexec-elf.c
 KEXEC_SRCS_base += kexec/kexec-elf-exec.c
 KEXEC_SRCS_base += kexec/kexec-elf-core.c
diff --git a/kexec/if_nameindex.c b/kexec/if_nameindex.c
new file mode 100644
index 0000000..e586e41
--- /dev/null
+++ b/kexec/if_nameindex.c
@@ -0,0 +1,64 @@
+#define _GNU_SOURCE
+#ifdef __KLIBC__
+#include <sys/types.h>
+#endif
+#include <netinet/in.h>
+#include <net/if.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <stdio.h>
+#ifdef __KLIBC__
+#include "if_nameindex.h"
+#endif
+
+static void *do_nameindex(int s, size_t n)
+{
+	size_t i, len, k;
+	struct ifconf conf;
+	struct if_nameindex *idx;
+
+	idx = malloc(n * (sizeof(struct if_nameindex)+sizeof(struct ifreq)));
+	if (!idx) return 0;
+
+	conf.ifc_buf = (void *)&idx[n];
+	conf.ifc_len = len = n * sizeof(struct ifreq);
+	if (ioctl(s, SIOCGIFCONF, &conf) < 0) {
+		free(idx);
+		return 0;
+	}
+	if (conf.ifc_len == len) {
+		free(idx);
+		return (void *)-1;
+	}
+
+	n = conf.ifc_len / sizeof(struct ifreq);
+	for (i=k=0; i<n; i++) {
+		if (ioctl(s, SIOCGIFINDEX, &conf.ifc_req[i]) < 0) {
+			k++;
+			continue;
+		}
+		idx[i-k].if_index = conf.ifc_req[i].ifr_ifindex;
+		idx[i-k].if_name = conf.ifc_req[i].ifr_name;
+	}
+	idx[i-k].if_name = 0;
+	idx[i-k].if_index = 0;
+
+	return idx;
+}
+
+struct if_nameindex *if_nameindex()
+{
+	size_t n;
+	void *p = 0;
+	int s = socket(AF_UNIX, SOCK_DGRAM, 0);
+	if (s>=0) {
+		for (n=0; (p=do_nameindex(s, n)) == (void *)-1; n++);
+/*		__syscall(SYS_close, s); */
+		close(s);
+	}
+	errno = ENOBUFS;
+	return p;
+}
diff --git a/kexec/if_nameindex.h b/kexec/if_nameindex.h
new file mode 100644
index 0000000..cf1c061
--- /dev/null
+++ b/kexec/if_nameindex.h
@@ -0,0 +1,15 @@
+#ifndef _NET_IF__NAMEINDEX_H
+#define _NET_IF_NAMEINDEX_H
+
+struct if_nameindex
+{
+    unsigned int if_index;
+    char *if_name;
+};
+
+unsigned int if_nametoindex (const char *);
+char *if_indextoname (unsigned int, char *);
+struct if_nameindex *if_nameindex (void);
+void if_freenameindex (struct if_nameindex *);
+
+#endif
diff --git a/kexec/ifdown.c b/kexec/ifdown.c
index 82c6141..cc3ca9f 100644
--- a/kexec/ifdown.c
+++ b/kexec/ifdown.c
@@ -18,6 +18,9 @@ char *v_ifdown = "@(#)ifdown.c  1.11  02-Jun-1998  miquels@cistron.nl";
 
 #include <netinet/in.h>
 #include <net/if.h>
+#ifdef __KLIBC__
+#include "if_nameindex.h"
+#endif
 
 /*
  *  First, we find all shaper devices and down them. Then we
