|
Lines 345-350
Link Here
|
| 345 |
char buf[BUFSIZE], *cp = NULL, *p, **av, *osname = NULL; |
345 |
char buf[BUFSIZE], *cp = NULL, *p, **av, *osname = NULL; |
| 346 |
int len, c, fflag = 0, nflag = 0, rflag = 0, argc = 0; |
346 |
int len, c, fflag = 0, nflag = 0, rflag = 0, argc = 0; |
| 347 |
u_short lport, fport; |
347 |
u_short lport, fport; |
|
|
348 |
int bufsiz = sizeof(buf) - 1, size = 0; |
| 348 |
|
349 |
|
| 349 |
inetd_setproctitle(sep->se_service, s); |
350 |
inetd_setproctitle(sep->se_service, s); |
| 350 |
/* |
351 |
/* |
|
Lines 411-428
Link Here
|
| 411 |
* "local_port , foreign_port\r\n" (with local being the |
412 |
* "local_port , foreign_port\r\n" (with local being the |
| 412 |
* server's port and foreign being the client's.) |
413 |
* server's port and foreign being the client's.) |
| 413 |
*/ |
414 |
*/ |
| 414 |
FD_ZERO(&fdset); |
415 |
do { |
| 415 |
FD_SET(s, &fdset); |
416 |
FD_ZERO(&fdset); |
| 416 |
if (select(s + 1, &fdset, NULL, NULL, &tv) == -1) |
417 |
FD_SET(s, &fdset); |
| 417 |
iderror(0, 0, s, errno); |
418 |
if (select(s + 1, &fdset, NULL, NULL, &tv) == -1) |
| 418 |
if (ioctl(s, FIONREAD, &len) == -1) |
419 |
iderror(0, 0, s, errno); |
| 419 |
iderror(0, 0, s, errno); |
420 |
if (ioctl(s, FIONREAD, &len) == -1) |
| 420 |
if (len >= sizeof(buf)) |
421 |
iderror(0, 0, s, errno); |
| 421 |
len = sizeof(buf) - 1; |
422 |
if (len > bufsiz) |
| 422 |
len = read(s, buf, len); |
423 |
len = bufsiz; |
| 423 |
if (len == -1) |
424 |
len = read(s, &buf[size], len); |
| 424 |
iderror(0, 0, s, errno); |
425 |
if (len == -1) |
| 425 |
buf[len] = '\0'; |
426 |
iderror(0, 0, s, errno); |
|
|
427 |
bufsiz -= len; |
| 428 |
size += len; |
| 429 |
} while ((size < 1 || buf[size - 1] != '\n') && bufsiz > 0); |
| 430 |
buf[size] = '\0'; |
| 426 |
if (sscanf(buf, "%hu , %hu", &lport, &fport) != 2) |
431 |
if (sscanf(buf, "%hu , %hu", &lport, &fport) != 2) |
| 427 |
iderror(0, 0, s, 0); |
432 |
iderror(0, 0, s, 0); |
| 428 |
if (!rflag) /* Send HIDDEN-USER immediately if not "real" */ |
433 |
if (!rflag) /* Send HIDDEN-USER immediately if not "real" */ |