summaryrefslogtreecommitdiffstats
path: root/libexec/pppoed
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2001-08-24 14:52:38 +0000
committerbrian <brian@FreeBSD.org>2001-08-24 14:52:38 +0000
commitd5f1613eb6c809d941a411c2d91e336a3b2eacf9 (patch)
tree546e49799b4e1831231076f91f31f89b90b958ca /libexec/pppoed
parent94dfd084a9d9823da6cf6925d028933aac03ff07 (diff)
downloadFreeBSD-src-d5f1613eb6c809d941a411c2d91e336a3b2eacf9.zip
FreeBSD-src-d5f1613eb6c809d941a411c2d91e336a3b2eacf9.tar.gz
Understand that a return value of 0 from NgRecvMsg() means that the
socket was closed. This prevents erroneous ``Unexpected netgraph version'' from turning up in the log.
Diffstat (limited to 'libexec/pppoed')
-rw-r--r--libexec/pppoed/pppoed.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libexec/pppoed/pppoed.c b/libexec/pppoed/pppoed.c
index ce50ee4..a3c6d37 100644
--- a/libexec/pppoed/pppoed.c
+++ b/libexec/pppoed/pppoed.c
@@ -141,7 +141,7 @@ ConfigureNode(const char *prog, const char *iface, const char *provider,
/* Get our list back */
resp = (struct ng_mesg *)rbuf;
- if (NgRecvMsg(cs, resp, sizeof rbuf, NULL) < 0) {
+ if (NgRecvMsg(cs, resp, sizeof rbuf, NULL) <= 0) {
perror("Cannot get netgraph response");
return EX_UNAVAILABLE;
}
@@ -359,11 +359,17 @@ Spawn(const char *prog, const char *acname, const char *provider,
syslog(LOG_INFO, "Waiting for a SUCCESS reply %s", path);
do {
- if (NgRecvMsg(cs, rep, sizeof msgbuf, NULL) < 0) {
+ if ((ret = NgRecvMsg(cs, rep, sizeof msgbuf, NULL) < 0)) {
syslog(LOG_ERR, "%s: Cannot receive a message: %m", path);
_exit(EX_OSERR);
}
+ if (ret == 0) {
+ /* The socket has been closed */
+ syslog(LOG_INFO, "%s: Client timed out", path);
+ _exit(EX_TEMPFAIL);
+ }
+
if (rep->header.version != NG_VERSION) {
syslog(LOG_ERR, "%ld: Unexpected netgraph version, expected %ld",
(long)rep->header.version, (long)NG_VERSION);
OpenPOWER on IntegriCloud