version 1.73, 2004/07/15 15:07:52 |
version 1.74, 2004/09/15 18:44:45 |
|
|
readwrite(int nfd) |
readwrite(int nfd) |
{ |
{ |
struct pollfd pfd[2]; |
struct pollfd pfd[2]; |
char buf[BUFSIZ]; |
unsigned char buf[BUFSIZ]; |
int wfd = fileno(stdin), n, ret; |
int wfd = fileno(stdin), n; |
int lfd = fileno(stdout); |
int lfd = fileno(stdout); |
|
|
/* Setup Network FD */ |
/* Setup Network FD */ |
|
|
} else { |
} else { |
if (tflag) |
if (tflag) |
atelnet(nfd, buf, n); |
atelnet(nfd, buf, n); |
if ((ret = atomicio( |
if (atomicio((ssize_t (*)(int, void *, size_t))write, |
(ssize_t (*)(int, void *, size_t))write, |
lfd, buf, n) != n) |
lfd, buf, n)) != n) |
|
return; |
return; |
} |
} |
} |
} |
|
|
pfd[1].fd = -1; |
pfd[1].fd = -1; |
pfd[1].events = 0; |
pfd[1].events = 0; |
} else { |
} else { |
if ((ret = atomicio( |
if (atomicio((ssize_t (*)(int, void *, size_t))write, |
(ssize_t (*)(int, void *, size_t))write, |
nfd, buf, n) != n) |
nfd, buf, n)) != n) |
|
return; |
return; |
} |
} |
} |
} |
|
|
void |
void |
atelnet(int nfd, unsigned char *buf, unsigned int size) |
atelnet(int nfd, unsigned char *buf, unsigned int size) |
{ |
{ |
int ret; |
|
unsigned char *p, *end; |
unsigned char *p, *end; |
unsigned char obuf[4]; |
unsigned char obuf[4]; |
|
|
|
|
p++; |
p++; |
obuf[2] = *p; |
obuf[2] = *p; |
obuf[3] = '\0'; |
obuf[3] = '\0'; |
if ((ret = atomicio( |
if (atomicio((ssize_t (*)(int, void *, size_t))write, |
(ssize_t (*)(int, void *, size_t))write, |
nfd, obuf, 3) != 3) |
nfd, obuf, 3)) != 3) |
|
warnx("Write Error!"); |
warnx("Write Error!"); |
obuf[0] = '\0'; |
obuf[0] = '\0'; |
} |
} |
|
|
int |
int |
udptest(int s) |
udptest(int s) |
{ |
{ |
int i, rv, ret; |
int i, ret; |
|
|
for (i = 0; i <= 3; i++) { |
for (i = 0; i <= 3; i++) { |
if ((rv = write(s, "X", 1)) == 1) |
if (write(s, "X", 1) == 1) |
ret = 1; |
ret = 1; |
else |
else |
ret = -1; |
ret = -1; |