summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/tty.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2000-10-31 23:27:35 +0000
committerbrian <brian@FreeBSD.org>2000-10-31 23:27:35 +0000
commit6883207ac06c74db2f2ccddbe8bdc4f1ade9ccd8 (patch)
tree148bb0cb97b68182037940ec8089faa9ae736e63 /usr.sbin/ppp/tty.c
parent7f4366ad6f272969b741590f355dc32ea8459cc0 (diff)
downloadFreeBSD-src-6883207ac06c74db2f2ccddbe8bdc4f1ade9ccd8.zip
FreeBSD-src-6883207ac06c74db2f2ccddbe8bdc4f1ade9ccd8.tar.gz
Don't ignore the return from tcsetattr() - moan about it instead.
Suggested by: Andre Albsmeier <andre@akademie3000.de>
Diffstat (limited to 'usr.sbin/ppp/tty.c')
-rw-r--r--usr.sbin/ppp/tty.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/usr.sbin/ppp/tty.c b/usr.sbin/ppp/tty.c
index df6029c..2727fec 100644
--- a/usr.sbin/ppp/tty.c
+++ b/usr.sbin/ppp/tty.c
@@ -216,7 +216,9 @@ tty_Raw(struct physical *p)
if (p->type != PHYS_DEDICATED)
ios.c_cflag |= HUPCL;
- tcsetattr(p->fd, TCSANOW, &ios);
+ if (tcsetattr(p->fd, TCSANOW, &ios) == -1)
+ log_Printf(LogWARN, "%s: tcsetattr: Failed configuring device\n",
+ p->link.name);
}
oldflag = fcntl(p->fd, F_GETFL, 0);
@@ -239,11 +241,9 @@ tty_Offline(struct physical *p)
struct termios tio;
tcgetattr(p->fd, &tio);
- if (cfsetspeed(&tio, B0) == -1)
+ if (cfsetspeed(&tio, B0) == -1 || tcsetattr(p->fd, TCSANOW, &tio) == -1)
log_Printf(LogWARN, "%s: Unable to set physical to speed 0\n",
p->link.name);
- else
- tcsetattr(p->fd, TCSANOW, &tio);
}
}
}
@@ -258,8 +258,9 @@ tty_Cooked(struct physical *p)
tcflush(p->fd, TCIOFLUSH);
- if (!physical_IsSync(p))
- tcsetattr(p->fd, TCSAFLUSH, &dev->ios);
+ if (!physical_IsSync(p) && tcsetattr(p->fd, TCSAFLUSH, &dev->ios) == -1)
+ log_Printf(LogWARN, "%s: tcsetattr: Unable to restore device settings\n",
+ p->link.name);
if ((oldflag = fcntl(p->fd, F_GETFL, 0)) != -1)
fcntl(p->fd, F_SETFL, oldflag & ~O_NONBLOCK);
@@ -436,7 +437,15 @@ tty_Create(struct physical *p)
log_Printf(LogWARN, "%s: %s: Unable to set speed to %d\n",
p->link.name, p->name.full, p->cfg.speed);
}
- tcsetattr(p->fd, TCSADRAIN, &ios);
+
+ if (tcsetattr(p->fd, TCSADRAIN, &ios) == -1) {
+ log_Printf(LogWARN, "%s: tcsetattr: Failed configuring device\n",
+ p->link.name);
+ if (p->type != PHYS_DIRECT && p->cfg.speed > 115200)
+ log_Printf(LogWARN, "%.*s Perhaps the speed is unsupported\n",
+ (int)strlen(p->link.name), "");
+ }
+
log_Printf(LogDEBUG, "%s: physical (put): iflag = %lx, oflag = %lx, "
"cflag = %lx\n", p->link.name, (u_long)ios.c_iflag,
(u_long)ios.c_oflag, (u_long)ios.c_cflag);
OpenPOWER on IntegriCloud