summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/log.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1999-09-06 08:16:33 +0000
committerbrian <brian@FreeBSD.org>1999-09-06 08:16:33 +0000
commit1a77c3372ee73695efb75693292dbb4fb7df1625 (patch)
tree680d9565a2e1e5acb4d08b76f16ec446096caa0d /usr.sbin/ppp/log.c
parent389c23d61791710d0d3af997c3eebb6d16582308 (diff)
downloadFreeBSD-src-1a77c3372ee73695efb75693292dbb4fb7df1625.zip
FreeBSD-src-1a77c3372ee73695efb75693292dbb4fb7df1625.tar.gz
When logging warning messages, there are now three scenarios:
o If a prompt is executing the command, only display the warning to that prompt o If a prompt is executing a ``load'' command, display the warning to all prompts *and* syslog o Otherwise, display the warning to all prompts *and* syslog.
Diffstat (limited to 'usr.sbin/ppp/log.c')
-rw-r--r--usr.sbin/ppp/log.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/ppp/log.c b/usr.sbin/ppp/log.c
index b017488..7c45d17 100644
--- a/usr.sbin/ppp/log.c
+++ b/usr.sbin/ppp/log.c
@@ -72,6 +72,7 @@ static u_long LogMask = MSK(LogPHASE);
static u_long LogMaskLocal = MSK(LogERROR) | MSK(LogALERT) | MSK(LogWARN);
static int LogTunno = -1;
static struct prompt *promptlist; /* Where to log local stuff */
+struct prompt *log_PromptContext;
int log_PromptListChanged;
struct prompt *
@@ -307,20 +308,23 @@ log_Printf(int lev, const char *fmt,...)
if (log_IsKept(lev)) {
char nfmt[200];
- if ((log_IsKept(lev) & LOG_KEPT_LOCAL) && promptlist) {
+ if (promptlist && (log_IsKept(lev) & LOG_KEPT_LOCAL)) {
if ((log_IsKept(LogTUN) & LOG_KEPT_LOCAL) && LogTunno != -1)
snprintf(nfmt, sizeof nfmt, "%s%d: %s: %s", TUN_NAME,
LogTunno, log_Name(lev), fmt);
else
snprintf(nfmt, sizeof nfmt, "%s: %s", log_Name(lev), fmt);
- for (prompt = promptlist; prompt; prompt = prompt->next)
+ if (log_PromptContext && lev == LogWARN)
+ /* Warnings just go to the current prompt */
+ prompt_vPrintf(log_PromptContext, nfmt, ap);
+ else for (prompt = promptlist; prompt; prompt = prompt->next)
if (lev > LogMAXCONF || (prompt->logmask & MSK(lev)))
prompt_vPrintf(prompt, nfmt, ap);
}
if ((log_IsKept(lev) & LOG_KEPT_SYSLOG) &&
- (lev != LogWARN || !promptlist)) {
+ (lev != LogWARN || !log_PromptContext)) {
if ((log_IsKept(LogTUN) & LOG_KEPT_SYSLOG) && LogTunno != -1)
snprintf(nfmt, sizeof nfmt, "%s%d: %s: %s", TUN_NAME,
LogTunno, log_Name(lev), fmt);
OpenPOWER on IntegriCloud