Annotation of embedaddon/strongswan/src/libstrongswan/utils/debug.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Copyright (C) 2006 Martin Willi
                      3:  * HSR Hochschule fuer Technik Rapperswil
                      4:  *
                      5:  * This program is free software; you can redistribute it and/or modify it
                      6:  * under the terms of the GNU General Public License as published by the
                      7:  * Free Software Foundation; either version 2 of the License, or (at your
                      8:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
                      9:  *
                     10:  * This program is distributed in the hope that it will be useful, but
                     11:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     12:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
                     13:  * for more details.
                     14:  */
                     15: 
                     16: #include <stdarg.h>
                     17: 
                     18: #include "debug.h"
                     19: 
                     20: ENUM(debug_names, DBG_DMN, DBG_ANY,
                     21:        "DMN",
                     22:        "MGR",
                     23:        "IKE",
                     24:        "CHD",
                     25:        "JOB",
                     26:        "CFG",
                     27:        "KNL",
                     28:        "NET",
                     29:        "ASN",
                     30:        "ENC",
                     31:        "TNC",
                     32:        "IMC",
                     33:        "IMV",
                     34:        "PTS",
                     35:        "TLS",
                     36:        "APP",
                     37:        "ESP",
                     38:        "LIB",
                     39:        "ANY",
                     40: );
                     41: 
                     42: ENUM(debug_lower_names, DBG_DMN, DBG_ANY,
                     43:        "dmn",
                     44:        "mgr",
                     45:        "ike",
                     46:        "chd",
                     47:        "job",
                     48:        "cfg",
                     49:        "knl",
                     50:        "net",
                     51:        "asn",
                     52:        "enc",
                     53:        "tnc",
                     54:        "imc",
                     55:        "imv",
                     56:        "pts",
                     57:        "tls",
                     58:        "app",
                     59:        "esp",
                     60:        "lib",
                     61:        "any",
                     62: );
                     63: 
                     64: /**
                     65:  * level logged by the default logger
                     66:  */
                     67: static level_t default_level = 1;
                     68: 
                     69: /**
                     70:  * stream logged to by the default logger
                     71:  */
                     72: static FILE *default_stream = NULL;
                     73: 
                     74: /**
                     75:  * default dbg function which printf all to stderr
                     76:  */
                     77: void dbg_default(debug_t group, level_t level, char *fmt, ...)
                     78: {
                     79:        if (!default_stream)
                     80:        {
                     81:                default_stream = stderr;
                     82:        }
                     83:        if (level <= default_level)
                     84:        {
                     85:                va_list args;
                     86: 
                     87:                va_start(args, fmt);
                     88:                vfprintf(default_stream, fmt, args);
                     89:                fprintf(default_stream, "\n");
                     90:                va_end(args);
                     91:        }
                     92: }
                     93: 
                     94: /**
                     95:  * set the level logged by the default stderr logger
                     96:  */
                     97: void dbg_default_set_level(level_t level)
                     98: {
                     99:        default_level = level;
                    100: }
                    101: 
                    102: /**
                    103:  * set the stream logged by dbg_default() to
                    104:  */
                    105: void dbg_default_set_stream(FILE *stream)
                    106: {
                    107:        default_stream = stream;
                    108: }
                    109: 
                    110: /**
                    111:  * The registered debug hook.
                    112:  */
                    113: void (*dbg) (debug_t group, level_t level, char *fmt, ...) = dbg_default;
                    114: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>