version 1.20.2.2, 2016/08/02 10:26:58
|
version 1.20.2.4, 2016/08/02 15:18:41
|
Line 153 try2read:
|
Line 153 try2read:
|
pfd.events = POLLIN | POLLPRI; |
pfd.events = POLLIN | POLLPRI; |
memset(buf, 0, blen); |
memset(buf, 0, blen); |
memset(&sa2, 0, sizeof sa2); |
memset(&sa2, 0, sizeof sa2); |
salen = (u_char) MIN(sizeof(sockaddr_t), 0xff); | salen = E_SOCKADDR_MAX; |
#ifndef __linux__ |
#ifndef __linux__ |
sa2.ss.ss_len = salen; |
sa2.ss.ss_len = salen; |
#endif |
#endif |
Line 254 try2read:
|
Line 254 try2read:
|
|
|
/* check RPC packet header */ |
/* check RPC packet header */ |
if (type == SOCK_RAW) { |
if (type == SOCK_RAW) { |
|
#ifdef IPV6_REMOVE_HEADER |
hlen = sa->sa.sa_family == AF_INET ? |
hlen = sa->sa.sa_family == AF_INET ? |
sizeof(struct ip) : sizeof(struct ip6_hdr); |
sizeof(struct ip) : sizeof(struct ip6_hdr); |
|
#else |
|
hlen = sa->sa.sa_family == AF_INET ? |
|
sizeof(struct ip) : 0; |
|
#endif |
ret -= hlen; |
ret -= hlen; |
if (ret > 0) |
if (ret > 0) |
memmove(buf, buf + hlen, blen - hlen); |
memmove(buf, buf + hlen, blen - hlen); |
Line 349 rpc_Write(int sock, int type, int flags, sockaddr_t *
|
Line 354 rpc_Write(int sock, int type, int flags, sockaddr_t *
|
return -1; |
return -1; |
} |
} |
|
|
ret = sendto(sock, buf, blen, flags, &sa->sa, sizeof sa->sa); | ret = sendto(sock, buf, blen, flags, &sa->sa, e_addrlen(sa)); |
break; |
break; |
default: |
default: |
rpc_SetErr(EINVAL, "Invalid argument(s)!"); |
rpc_SetErr(EINVAL, "Invalid argument(s)!"); |