1/*	$NetBSD: plog.h,v 1.4.6.1 2007/11/06 16:41:27 vanhu Exp $	*/
2
3/* Id: plog.h,v 1.7 2006/06/20 09:57:31 vanhu Exp */
4
5/*
6 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the project nor the names of its contributors
18 *    may be used to endorse or promote products derived from this software
19 *    without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef _PLOG_H
35#define _PLOG_H
36
37#ifdef ANDROID_PATCHED
38
39#define LLV_ERROR   0
40#define LLV_WARNING 1
41#define LLV_NOTIFY  2
42#define LLV_INFO    3
43#define LLV_DEBUG   4
44#define LLV_DEBUG2  5
45
46#define loglevel LLV_DEBUG2
47
48#define plog(level, location, address, ...)                 \
49    do {                                                    \
50        if ((level) >= LLV_ERROR && (level) <= LLV_INFO) {  \
51            do_plog((level), __VA_ARGS__);                  \
52        }                                                   \
53    } while (0)
54
55#define plogdump(...)
56
57extern void do_plog(int level, char *format, ...);
58extern char *binsanitize(char *binary, size_t size);
59extern char *pname;
60
61#else
62
63#ifdef HAVE_STDARG_H
64#include <stdarg.h>
65#else
66#include <varargs.h>
67#endif
68#include <syslog.h>
69
70/*
71 * INFO: begin negotiation, SA establishment/deletion/expiration.
72 * NOTIFY: just notifiable.
73 * WARNING: not error strictly.
74 * ERROR: system call error. also invalid parameter/format.
75 * DEBUG1: debugging informatioin.
76 * DEBUG2: too more verbose. e.g. parsing config.
77 */
78#define LLV_ERROR	1
79#define LLV_WARNING	2
80#define LLV_NOTIFY	3
81#define LLV_INFO	4
82#define LLV_DEBUG	5
83#define LLV_DEBUG2	6
84
85#define LLV_BASE	LLV_INFO /* by default log less than this value. */
86
87extern char *pname;
88extern u_int32_t loglevel;
89extern int f_foreground;
90extern int print_location;
91
92struct sockaddr;
93#define plog(pri, ...) \
94	do { \
95		if ((pri) <= loglevel) \
96			_plog((pri), __VA_ARGS__); \
97	} while (0)
98extern void _plog __P((int, const char *, struct sockaddr *, const char *, ...))
99	__attribute__ ((__format__ (__printf__, 4, 5)));
100extern void plogv __P((int, const char *, struct sockaddr *,
101	const char *, va_list));
102extern void plogdump __P((int, void *, size_t));
103extern void ploginit __P((void));
104extern void plogset __P((char *));
105
106extern char* binsanitize __P((char*, size_t));
107
108#endif
109
110#endif /* _PLOG_H */
111