version 1.22.6.2, 2014/11/26 00:50:04
|
version 1.22.6.5, 2014/12/19 02:12:49
|
Line 350 rpc_pkt_Receive(int sock, int type, sockaddr_t * __res
|
Line 350 rpc_pkt_Receive(int sock, int type, sockaddr_t * __res
|
do { |
do { |
if (type == SOCK_STREAM) |
if (type == SOCK_STREAM) |
ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, NULL, buf, blen); |
ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, NULL, buf, blen); |
else | else if (type == SOCK_BPF) { |
| ret = rpc_Read(sock, type, 0, sa, AIT_GET_BUF(pkt), AIT_LEN(pkt)); |
| if (ret > 0) |
| estlen = ret; |
| } else |
ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, sa, buf, blen); |
ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, sa, buf, blen); |
if (ret < 1) |
if (ret < 1) |
return ret; |
return ret; |
Line 638 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
Line 642 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
register int i; |
register int i; |
struct ifreq ifr; |
struct ifreq ifr; |
int n = 1; |
int n = 1; |
|
struct bpf_insn insns[] = { |
|
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 12), |
|
BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, RPC_DEFPORT, 0, 1), |
|
BPF_STMT(BPF_RET + BPF_K, -1), |
|
BPF_STMT(BPF_RET + BPF_K, 0), |
|
}; |
|
struct bpf_program fcode = { |
|
.bf_len = sizeof(insns) / sizeof(struct bpf_insn), |
|
.bf_insns = insns |
|
}; |
|
|
if (!csHost || !e_getlinkbyname(csHost, &sa)) |
if (!csHost || !e_getlinkbyname(csHost, &sa)) |
return NULL; |
return NULL; |
Line 646 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
Line 660 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
return NULL; |
return NULL; |
} else |
} else |
strlcpy(szIface, csIface, sizeof szIface); |
strlcpy(szIface, csIface, sizeof szIface); |
if (e_getifacebyname(szIface, &sal)) | if (!e_getifacebyname(szIface, &sal)) |
return NULL; |
return NULL; |
|
|
cli = e_malloc(sizeof(rpc_cli_t)); |
cli = e_malloc(sizeof(rpc_cli_t)); |
Line 686 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
Line 700 rpc_cli_openClient2(u_char InstID, int netBuf, const c
|
} |
} |
|
|
if (ioctl(cli->cli_sock, BIOCIMMEDIATE, &n) == -1) { |
if (ioctl(cli->cli_sock, BIOCIMMEDIATE, &n) == -1) { |
|
LOGERR; |
|
goto err; |
|
} |
|
if (ioctl(cli->cli_sock, BIOCSETF, &fcode) == -1) { |
LOGERR; |
LOGERR; |
goto err; |
goto err; |
} |
} |