1
0
mirror of https://github.com/coturn/coturn.git synced 2025-12-24 17:31:00 +01:00
This commit is contained in:
Oleg Moskalenko 2015-10-12 22:30:15 -07:00
parent e7dc9c910c
commit dfd36a7ad4

View File

@ -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: