interface_to_sa no longer server only

Via "DevYourWorld" on github

https://github.com/warmcat/libwebsockets/issues/64

Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 84a10c8..7436758 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -2650,3 +2650,34 @@
 	if (log_emit_function)
 		lwsl_emit = log_emit_function;
 }
+
+int
+interface_to_sa(const char *ifname, struct sockaddr_in *addr, size_t addrlen)
+{
+	int rc = -1;
+#if defined(WIN32) || defined(_WIN32)
+	/* TODO */
+#else
+	struct ifaddrs *ifr;
+	struct ifaddrs *ifc;
+	struct sockaddr_in *sin;
+
+	getifaddrs(&ifr);
+	for (ifc = ifr; ifc != NULL && rc; ifc = ifc->ifa_next) {
+		if (ifc->ifa_addr == NULL)
+			continue;
+		lwsl_info(" interface %s vs %s\n", ifc->ifa_name, ifname);
+		if (strcmp(ifc->ifa_name, ifname))
+			continue;
+		sin = (struct sockaddr_in *)ifc->ifa_addr;
+		if (sin->sin_family != AF_INET)
+			continue;
+		memcpy(addr, sin, addrlen);
+		rc = 0;
+	}
+
+	freeifaddrs(ifr);
+#endif
+	return rc;
+}
+