lws_interface_to_sa
Expose interface handling code as an api
This commit is contained in:
parent
d5060d25a1
commit
1d719ec87f
4 changed files with 21 additions and 5 deletions
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue