if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) >= 0
&& ((ifr.ifr_flags & IFF_UP) != 0)) {
ifr.ifr_flags &= ~IFF_UP;
if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) >= 0
&& ((ifr.ifr_flags & IFF_UP) != 0)) {
ifr.ifr_flags &= ~IFF_UP;
|| fcntl(fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
warn("Couldn't set device to non-blocking mode: %m");
}
|| fcntl(fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
warn("Couldn't set device to non-blocking mode: %m");
}
ifr.ifr_mtu = mtu;
if (ioctl(sockfd, SIOCSIFMTU, (caddr_t) &ifr) < 0)
fatal("ioctl(SIOCSIFMTU): %m");
ifr.ifr_mtu = mtu;
if (ioctl(sockfd, SIOCSIFMTU, (caddr_t) &ifr) < 0)
fatal("ioctl(SIOCSIFMTU): %m");
if (ioctl(sockfd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
error("ioctl (SIOCGIFFLAGS): %m");
return 0;
if (ioctl(sockfd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
error("ioctl (SIOCGIFFLAGS): %m");
return 0;
ioctl(ttyfd, SIOCSETNPMODE, &npi);
/* ignore errors, because ttyfd might have been closed by now. */
ioctl(ttyfd, SIOCSETNPMODE, &npi);
/* ignore errors, because ttyfd might have been closed by now. */
if (ioctl(sockfd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
error("ioctl (SIOCGIFFLAGS): %m");
rv = 0;
if (ioctl(sockfd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
error("ioctl (SIOCGIFFLAGS): %m");
rv = 0;
SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
if (m != 0) {
info("Setting interface mask to %s\n", ip_ntoa(m));
SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
if (m != 0) {
info("Setting interface mask to %s\n", ip_ntoa(m));
if (ioctl(sockfd, SIOCGIFFLAGS, &ifreq) < 0)
continue;
if ((ifreq.ifr_flags & (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
if (ioctl(sockfd, SIOCGIFFLAGS, &ifreq) < 0)
continue;
if ((ifreq.ifr_flags & (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
- strlcpy(ut.ut_line, sizeof(ut.ut_line), line);
- strlcpy(ut.ut_name, sizeof(ut.ut_name), name);
- strlcpy(ut.ut_host, sizeof(ut.ut_host), host);
+ strncpy(ut.ut_line, line, sizeof(ut.ut_line));
+ strncpy(ut.ut_name, name, sizeof(ut.ut_name));
+ strncpy(ut.ut_host, host, sizeof(ut.ut_host));
(void)time(&ut.ut_time);
if (write(fd, (char *)&ut, sizeof(struct utmp)) != sizeof(struct utmp))
(void)ftruncate(fd, buf.st_size);
(void)time(&ut.ut_time);
if (write(fd, (char *)&ut, sizeof(struct utmp)) != sizeof(struct utmp))
(void)ftruncate(fd, buf.st_size);