mirror of
https://github.com/coturn/coturn.git
synced 2025-12-24 17:31:00 +01:00
working
This commit is contained in:
parent
e7dc9c910c
commit
dfd36a7ad4
@ -1989,23 +1989,23 @@ static int socket_readerr(evutil_socket_t fd, ioa_addr *orig_addr)
|
||||
}
|
||||
|
||||
#if defined(IP_RECVERR) && defined(SOCK_EXTENDED_ERR_DEFINED)
|
||||
static void handle_icmp(struct sock_extended_err *e, u32bits *errcode, int isIpv6, int len, size_t clen)
|
||||
static void handle_icmp(struct sock_extended_err *e, u32bits *errcode, int isIpv6, int len)
|
||||
{
|
||||
if(e && ((!isIpv6 && (e->ee_origin == SO_EE_ORIGIN_ICMP)) || (isIpv6 && (e->ee_origin == SO_EE_ORIGIN_ICMP6)))) {
|
||||
if(errcode)
|
||||
*errcode = e->ee_errno;
|
||||
|
||||
struct sockaddr* badaddr = SO_EE_OFFENDER(e);
|
||||
if(badaddr) {
|
||||
if(badaddr && (badaddr->sa_family != AF_UNSPEC)) {
|
||||
ioa_addr ibadaddr;
|
||||
addr_cpy10(&ibadaddr,badaddr);
|
||||
char saddr[129];
|
||||
addr_to_string(&ibadaddr, (u08bits*)saddr);
|
||||
clen -= (sizeof (struct cmsghdr));
|
||||
printf("%s: 111.111: %d:%d: ipv6=%d, addr=%s, port=%d, info=%lu, data=%lu, len=%lu, clen=%lu\n",__FUNCTION__,(int)e->ee_type,(int)e->ee_code,isIpv6,saddr,
|
||||
ntohs(((struct sockaddr_in*)badaddr)->sin_port),
|
||||
(unsigned long)(e->ee_info),(unsigned long)(e->ee_data),
|
||||
(unsigned long)len, (unsigned long)clen);
|
||||
TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "ICMP error: type=%d, code=%d, addr=%s, port=%d, pkg.len=%lu\n",
|
||||
(int)e->ee_type,(int)e->ee_code,
|
||||
saddr,
|
||||
addr_get_port(&ibadaddr),
|
||||
(unsigned long)len);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2084,7 +2084,6 @@ int udp_recvfrom(evutil_socket_t fd, ioa_addr* orig_addr, const ioa_addr *like_a
|
||||
= CMSG_NXTHDR(&msg,cmsgh)) {
|
||||
int l = cmsgh->cmsg_level;
|
||||
int t = cmsgh->cmsg_type;
|
||||
size_t clen = cmsgh->cmsg_len;
|
||||
|
||||
switch(l) {
|
||||
case IPPROTO_IP:
|
||||
@ -2103,7 +2102,7 @@ int udp_recvfrom(evutil_socket_t fd, ioa_addr* orig_addr, const ioa_addr *like_a
|
||||
#endif
|
||||
#if defined(IP_RECVERR) && defined(SOCK_EXTENDED_ERR_DEFINED)
|
||||
case IP_RECVERR:
|
||||
handle_icmp((struct sock_extended_err*) CMSG_DATA(cmsgh), errcode, 0, len, clen);
|
||||
handle_icmp((struct sock_extended_err*) CMSG_DATA(cmsgh), errcode, 0, len);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
@ -2127,7 +2126,7 @@ int udp_recvfrom(evutil_socket_t fd, ioa_addr* orig_addr, const ioa_addr *like_a
|
||||
#endif
|
||||
#if defined(IPV6_RECVERR) && defined(SOCK_EXTENDED_ERR_DEFINED)
|
||||
case IPV6_RECVERR:
|
||||
handle_icmp((struct sock_extended_err*) CMSG_DATA(cmsgh), errcode, 1, len, clen);
|
||||
handle_icmp((struct sock_extended_err*) CMSG_DATA(cmsgh), errcode, 1, len);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user