Fixed prior logic in sim_check_conn to return error conditions prior to read/write checks and to validate the peer's address on both read and write connection checks.
This commit is contained in:
parent
d308a234e2
commit
b125da77cc
1 changed files with 4 additions and 5 deletions
|
@ -862,14 +862,13 @@ FD_SET (sock, er_p);
|
||||||
if (rd)
|
if (rd)
|
||||||
select ((int) sock + 1, rw_p, NULL, er_p, &tz);
|
select ((int) sock + 1, rw_p, NULL, er_p, &tz);
|
||||||
else select ((int) sock + 1, NULL, rw_p, er_p, &tz);
|
else select ((int) sock + 1, NULL, rw_p, er_p, &tz);
|
||||||
if (FD_ISSET (sock, rw_p)) {
|
if (FD_ISSET (sock, er_p))
|
||||||
if ((rd) || (0 == getpeername (sock, (struct sockaddr *)&peername, &peernamesize)))
|
return -1;
|
||||||
|
if (FD_ISSET (sock, rw_p))
|
||||||
|
if (0 == getpeername (sock, (struct sockaddr *)&peername, &peernamesize))
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
if (FD_ISSET (sock, er_p))
|
|
||||||
return -1;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue