mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 08:29:45 +00:00
fix switch_get_addr to work with v6 properly
This commit is contained in:
parent
86fcc2c04c
commit
f1430d521a
@ -197,6 +197,7 @@ SWITCH_DECLARE(switch_status_t) switch_find_local_ip(_Out_opt_bytecapcount_(len)
|
|||||||
\return the ip adress string
|
\return the ip adress string
|
||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(char *) get_addr(char *buf, switch_size_t len, struct sockaddr *sa, socklen_t salen);
|
SWITCH_DECLARE(char *) get_addr(char *buf, switch_size_t len, struct sockaddr *sa, socklen_t salen);
|
||||||
|
SWITCH_DECLARE(char *) get_addr6(char *buf, switch_size_t len, struct sockaddr_in6 *sa, socklen_t salen);
|
||||||
|
|
||||||
SWITCH_DECLARE(int) get_addr_int(switch_sockaddr_t *sa);
|
SWITCH_DECLARE(int) get_addr_int(switch_sockaddr_t *sa);
|
||||||
SWITCH_DECLARE(int) switch_cmp_addr(switch_sockaddr_t *sa1, switch_sockaddr_t *sa2);
|
SWITCH_DECLARE(int) switch_cmp_addr(switch_sockaddr_t *sa1, switch_sockaddr_t *sa2);
|
||||||
|
@ -778,9 +778,14 @@ SWITCH_DECLARE(switch_status_t) switch_mcast_loopback(switch_socket_t *sock, uin
|
|||||||
SWITCH_DECLARE(const char *) switch_get_addr(char *buf, switch_size_t len, switch_sockaddr_t *in)
|
SWITCH_DECLARE(const char *) switch_get_addr(char *buf, switch_size_t len, switch_sockaddr_t *in)
|
||||||
{
|
{
|
||||||
if (!in) {
|
if (!in) {
|
||||||
return "";
|
return SWITCH_BLANK_STRING;
|
||||||
}
|
}
|
||||||
return get_addr(buf, len, (struct sockaddr *) &in->sa, in->salen);
|
|
||||||
|
if (in->family == AF_INET) {
|
||||||
|
return get_addr(buf, len, (struct sockaddr *) &in->sa, in->salen);
|
||||||
|
}
|
||||||
|
|
||||||
|
return get_addr6(buf, len, (struct sockaddr_in6 *) &in->sa, in->salen);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(uint16_t) switch_sockaddr_get_port(switch_sockaddr_t *sa)
|
SWITCH_DECLARE(uint16_t) switch_sockaddr_get_port(switch_sockaddr_t *sa)
|
||||||
|
@ -1482,6 +1482,17 @@ SWITCH_DECLARE(int) switch_cmp_addr(switch_sockaddr_t *sa1, switch_sockaddr_t *s
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SWITCH_DECLARE(char *) get_addr6(char *buf, switch_size_t len, struct sockaddr_in6 *sa, socklen_t salen)
|
||||||
|
{
|
||||||
|
switch_assert(buf);
|
||||||
|
*buf = '\0';
|
||||||
|
|
||||||
|
if (sa) {
|
||||||
|
inet_ntop(AF_INET6, sa, buf, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(char *) get_addr(char *buf, switch_size_t len, struct sockaddr *sa, socklen_t salen)
|
SWITCH_DECLARE(char *) get_addr(char *buf, switch_size_t len, struct sockaddr *sa, socklen_t salen)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user