diff options
author | brian <brian@FreeBSD.org> | 2001-08-24 14:52:38 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2001-08-24 14:52:38 +0000 |
commit | d5f1613eb6c809d941a411c2d91e336a3b2eacf9 (patch) | |
tree | 546e49799b4e1831231076f91f31f89b90b958ca /libexec | |
parent | 94dfd084a9d9823da6cf6925d028933aac03ff07 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | libexec/pppoed/pppoed.c | 10 |
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); |