- if (options & SO_DEBUG && setsockopt(f, SOL_SOCKET, SO_DEBUG, 0, 0) < 0)
- perror("rshd: setsockopt (SO_DEBUG)");
- if (setsockopt(f, SOL_SOCKET, SO_KEEPALIVE, 0, 0) < 0)
- perror("rshd: setsockopt (SO_KEEPALIVE)");
- linger = 60; /* XXX */
- if (setsockopt(f, SOL_SOCKET, SO_LINGER, &linger, 0) < 0)
- perror("rshd: setsockopt (SO_LINGER)");
- if (bind(f, (caddr_t)&sin, sizeof (sin), 0) < 0) {
- perror("rshd: bind");
- exit(1);
+ linger.l_onoff = 1;
+ linger.l_linger = 60; /* XXX */
+ if (setsockopt(0, SOL_SOCKET, SO_LINGER, &linger, sizeof (linger)) < 0) {
+ openlog(argv[0], LOG_PID, 0);
+ syslog(LOG_WARNING, "setsockopt (SO_LINGER): %m");