- (void) sigblock(sigmask(SIGALRM));
- if (gotalarm && lowdcd(0))
- break;
- if (gotalarm && lowdtr(0))
- break;
- gotalarm = 0;
- }
-
- if (lowdcd(0))
- syslog(LOG_NOTICE,
- "connection closed: loss of carrier %s%d: remote %s\n",
- SLIPIFNAME, unit, dstaddr);
- else if (lowdtr(0))
- syslog(LOG_NOTICE,
- "connection closed by foreign host %s%d: remote %s\n",
- SLIPIFNAME, unit, dstaddr);
-
- if (ioctl(0, TIOCSETD, (caddr_t)&odisc) < 0) {
- syslog(LOG_ERR, "ioctl(TIOCSETD) (2): %m");
- exit(1);
- }
- if (ioctl(0, TCSETA, (caddr_t)&otios) < 0) {
- syslog(LOG_ERR, "ioctl (TCSETA) (2): %m");
- exit(1);
- }
- exit(0);
-}
-
-findid(name)
- char *name;
-{
- char buf[BUFSIZ];
- static char mode[16];
- static char laddr[16];
- static char raddr[16];
- static char mask[16];
- char user[16];
- FILE *fp;
- struct passwd *pw;
- int n;
-
- if (name == NULL && (pw = getpwuid(getuid())) == NULL) {
- fprintf(stderr, "Your UID (%d) is unknown\n", getuid());
- syslog(LOG_ERR, "UID (%d) is unknown\n", getuid());
- exit(1);
- } else if (name == NULL)
- name = pw->pw_name;
- if ((fp = fopen(Accessfile, "r")) == NULL) {
- perror(Accessfile);
- syslog(LOG_ERR, "%s: %m\n", Accessfile);
- exit(3);
- }
- while (fgets(buf, sizeof(buf) - 1, fp)) {
- if (ferror(fp))
- break;
- n = sscanf(buf, "%15s%*[ \t]%15s%*[ \t]%15s%*[ \t]%15s%*[ \t]%15s\n",
- user, mode, laddr, raddr, mask);
- if (user[0] == '#' || n != 5)
- continue;
- if (strcmp(user, name) == 0) {
- char *p,*q; int val, i, domore;