lws_interface_to_sa
authorAndy Green <andy.green@linaro.org>
Sat, 16 Jan 2016 04:09:38 +0000 (12:09 +0800)
committerAndy Green <andy.green@linaro.org>
Sat, 16 Jan 2016 04:09:38 +0000 (12:09 +0800)
Expose interface handling code as an api

lib/libwebsockets.c
lib/libwebsockets.h
lib/lws-plat-unix.c
lib/lws-plat-win.c

index d1d9580..ad081ec 100644 (file)
@@ -344,6 +344,20 @@ just_kill_connection:
        lws_free_wsi(wsi);
 }
 
+#if LWS_POSIX
+LWS_VISIBLE int
+interface_to_sa(struct lws_context *context, const char *ifname, struct sockaddr_in *addr, size_t addrlen)
+{
+       int ipv6 = 0;
+#ifdef LWS_USE_IPV6
+       ipv6 = LWS_IPV6_ENABLED(context);
+#endif
+       (void)context;
+
+       return lws_interface_to_sa(ipv6, ifname, addr, addrlen);
+}
+#endif
+
 LWS_VISIBLE int
 lws_get_addresses(struct lws_context *context, void *ads, char *name,
                  int name_len, char *rip, int rip_len)
index 6daae78..b1debc1 100644 (file)
@@ -1378,6 +1378,9 @@ lws_service(struct lws_context *context, int timeout_ms);
 LWS_VISIBLE LWS_EXTERN void
 lws_cancel_service(struct lws_context *context);
 
+LWS_VISIBLE LWS_EXTERN int
+lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen);
+
 LWS_VISIBLE LWS_EXTERN const unsigned char *
 lws_token_to_string(enum lws_token_indexes token);
 
index 3b82d91..a0e4f86 100644 (file)
@@ -343,8 +343,7 @@ lws_plat_context_late_destroy(struct lws_context *context)
 /* cast a struct sockaddr_in6 * into addr for ipv6 */
 
 LWS_VISIBLE int
-interface_to_sa(struct lws_context *context,
-               const char *ifname, struct sockaddr_in *addr, size_t addrlen)
+lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, size_t addrlen)
 {
        int rc = -1;
 
@@ -367,7 +366,7 @@ interface_to_sa(struct lws_context *context,
                switch (ifc->ifa_addr->sa_family) {
                case AF_INET:
 #ifdef LWS_USE_IPV6
-                       if (LWS_IPV6_ENABLED(context)) {
+                       if (ipv6) {
                                /* map IPv4 to IPv6 */
                                bzero((char *)&addr6->sin6_addr,
                                                sizeof(struct in6_addr));
index 988460a..7e79310 100644 (file)
@@ -308,8 +308,8 @@ lws_plat_context_late_destroy(struct lws_context *context)
        WSACleanup();
 }
 
-LWS_VISIBLE int
-interface_to_sa(struct lws_context *context,
+LWS_VISIBLE LWS_EXTERN int
+lws_interface_to_sa(int ipv6,
                const char *ifname, struct sockaddr_in *addr, size_t addrlen)
 {
        long long address = inet_addr(ifname);