log.h revision 36314
131921Sbrian/*-
231921Sbrian * Copyright (c) 1997 Brian Somers <brian@Awfulhak.org>
331921Sbrian * All rights reserved.
431921Sbrian *
531921Sbrian * Redistribution and use in source and binary forms, with or without
631921Sbrian * modification, are permitted provided that the following conditions
731921Sbrian * are met:
831921Sbrian * 1. Redistributions of source code must retain the above copyright
931921Sbrian *    notice, this list of conditions and the following disclaimer.
1031921Sbrian * 2. Redistributions in binary form must reproduce the above copyright
1131921Sbrian *    notice, this list of conditions and the following disclaimer in the
1231921Sbrian *    documentation and/or other materials provided with the distribution.
1331921Sbrian *
1431921Sbrian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1531921Sbrian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1631921Sbrian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1731921Sbrian * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1831921Sbrian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1931921Sbrian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2031921Sbrian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2131921Sbrian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2231921Sbrian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2331921Sbrian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2431921Sbrian * SUCH DAMAGE.
2531921Sbrian *
2636314Sbrian *	$Id: log.h,v 1.19 1998/05/21 21:46:30 brian Exp $
2730715Sbrian */
2830715Sbrian
2926516Sbrian#define LogMIN		(1)
3028679Sbrian#define LogASYNC	(1)	/* syslog(LOG_INFO, ....)	 */
3136285Sbrian#define LogCCP		(2)
3236285Sbrian#define LogCHAT		(3)
3336285Sbrian#define LogCOMMAND	(4)
3436285Sbrian#define LogCONNECT	(5)
3536285Sbrian#define LogDEBUG	(6)	/* syslog(LOG_DEBUG, ....)	 */
3636285Sbrian#define LogHDLC		(7)
3736285Sbrian#define LogID0		(8)
3836285Sbrian#define LogIPCP		(9)
3936285Sbrian#define LogLCP		(10)
4036285Sbrian#define LogLQM		(11)
4136285Sbrian#define LogPHASE	(12)
4236285Sbrian#define LogTCPIP	(13)
4336285Sbrian#define LogTIMER	(14)	/* syslog(LOG_DEBUG, ....)	 */
4436285Sbrian#define LogTUN		(15)	/* If set, tun%d is output with each message */
4536285Sbrian#define LogMAXCONF	(15)
4636285Sbrian#define LogWARN		(16)	/* Sent to VarTerm else syslog(LOG_WARNING, ) */
4736285Sbrian#define LogERROR	(17)	/* syslog(LOG_ERR, ....), + sent to VarTerm */
4836285Sbrian#define LogALERT	(18)	/* syslog(LOG_ALERT, ....)	 */
4936285Sbrian#define LogMAX		(18)
506059Samurai
5136285Sbrianstruct mbuf;
5236285Sbrianstruct cmdargs;
5336285Sbrianstruct prompt;
5436314Sbrianstruct server;
5536314Sbrianstruct datalink;
5636285Sbrian
5726516Sbrian/* The first int arg for all of the following is one of the above values */
5836285Sbrianextern const char *log_Name(int);
5936285Sbrianextern void log_Keep(int);
6036285Sbrianextern void log_KeepLocal(int, u_long *);
6136285Sbrianextern void log_Discard(int);
6236285Sbrianextern void log_DiscardLocal(int, u_long *);
6336285Sbrianextern void log_DiscardAll(void);
6436285Sbrianextern void log_DiscardAllLocal(u_long *);
6536285Sbrian#define LOG_KEPT_SYSLOG (1)	/* Results of log_IsKept() */
6636285Sbrian#define LOG_KEPT_LOCAL  (2)	/* Results of log_IsKept() */
6736285Sbrianextern int log_IsKept(int);
6836285Sbrianextern int log_IsKeptLocal(int, u_long);
6936285Sbrianextern void log_Open(const char *);
7036285Sbrianextern void log_SetTun(int);
7136285Sbrianextern void log_Close(void);
7236285Sbrian#ifdef __GNUC__
7336285Sbrianextern void log_Printf(int, const char *,...)
7436285Sbrian            __attribute__ ((format (printf, 2, 3)));
7536285Sbrian#else
7636285Sbrianextern void log_Printf(int, const char *,...);
7736285Sbrian#endif
7836285Sbrianextern void log_DumpBp(int, const char *, const struct mbuf *);
7936285Sbrianextern void log_DumpBuff(int, const char *, const u_char *, int);
8036285Sbrianextern int log_ShowLevel(struct cmdargs const *);
8136285Sbrianextern int log_SetLevel(struct cmdargs const *);
8236285Sbrianextern int log_ShowWho(struct cmdargs const *);
8336314Sbrian
8436314Sbrianextern void log_RegisterPrompt(struct prompt *);
8536314Sbrianextern void log_UnRegisterPrompt(struct prompt *);
8636314Sbrianextern void log_DestroyPrompts(struct server *);
8736314Sbrianextern void log_DisplayPrompts(void);
8836314Sbrianextern void log_WritePrompts(struct datalink *, const char *, int);
8936314Sbrianextern void log_ActivatePrompt(struct prompt *);
9036314Sbrianextern void log_DeactivatePrompt(struct prompt *);
9136314Sbrianextern void log_SetTtyCommandMode(struct datalink *);
9236314Sbrianextern struct prompt *log_PromptList(void);
93