version 1.5, 1997/03/27 00:30:52 |
version 1.6, 1997/06/11 10:23:12 |
|
|
struct hostent *host; |
struct hostent *host; |
struct sockaddr_in sin; |
struct sockaddr_in sin; |
CREDENTIALS cred; |
CREDENTIALS cred; |
fd_set readfds; |
int fdsn; |
|
fd_set *fdsp; |
int rval; |
int rval; |
char pass[_PASSWORD_LEN], password[_PASSWORD_LEN]; |
char pass[_PASSWORD_LEN], password[_PASSWORD_LEN]; |
static void finish(); |
static void finish(); |
|
|
|
|
/* wait on the verification string */ |
/* wait on the verification string */ |
|
|
FD_ZERO(&readfds); |
fdsn = howmany(sock+1, NFDBITS) * sizeof(fd_mask); |
FD_SET(sock, &readfds); |
if ((fdsp = (fd_set *)malloc(fdsn)) == NULL) |
|
err(1, "malloc"); |
|
memset(fdsp, 0, fdsn); |
|
FD_SET(sock, fdsp); |
|
|
rval = |
rval = |
select(sock + 1, &readfds, (fd_set *) 0, (fd_set *) 0, &timeout); |
select(sock + 1, fdsp, (fd_set *) 0, (fd_set *) 0, &timeout); |
|
|
if ((rval < 1) || !FD_ISSET(sock, &readfds)) { |
if ((rval < 1) || !FD_ISSET(sock, fdsp)) { |
|
free(fdsp); |
if(rval == 0) { |
if(rval == 0) { |
warnx("timed out (aborted)"); |
warnx("timed out (aborted)"); |
cleanup(); |
cleanup(); |
|
|
cleanup(); |
cleanup(); |
return(1); |
return(1); |
} |
} |
|
free(fdsp); |
|
|
/* read verification string */ |
/* read verification string */ |
|
|
|
|
|
|
/* wait for ACK */ |
/* wait for ACK */ |
|
|
FD_ZERO(&readfds); |
fdsn = howmany(sock+1, NFDBITS) * sizeof(fd_mask); |
FD_SET(sock, &readfds); |
if ((fdsp = (fd_set *)malloc(fdsn)) == NULL) |
|
err(1, "malloc"); |
|
memset(fdsp, 0, fdsn); |
|
FD_SET(sock, fdsp); |
|
|
rval = |
rval = |
select(sock + 1, &readfds, (fd_set *) 0, (fd_set *) 0, &timeout); |
select(sock + 1, fdsp, (fd_set *) 0, (fd_set *) 0, &timeout); |
if ((rval < 1) || !FD_ISSET(sock, &readfds)) { |
if ((rval < 1) || !FD_ISSET(sock, fdsp)) { |
|
free(fdsp); |
if(rval == 0) { |
if(rval == 0) { |
warnx("timed out reading ACK (aborted)"); |
warnx("timed out reading ACK (aborted)"); |
cleanup(); |
cleanup(); |
|
|
cleanup(); |
cleanup(); |
exit(1); |
exit(1); |
} |
} |
|
free(fdsp); |
recv_ack(sock); |
recv_ack(sock); |
cleanup(); |
cleanup(); |
exit(0); |
exit(0); |