mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
See changelog.
git-svn-id: file:///svn/unbound/trunk@33 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
a4bdb76a1e
commit
19555a95b0
9 changed files with 388 additions and 15 deletions
|
|
@ -192,7 +192,7 @@ AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl=pathname],
|
||||||
AC_CHECK_HEADERS([openssl/ssl.h],,, [AC_INCLUDES_DEFAULT])
|
AC_CHECK_HEADERS([openssl/ssl.h],,, [AC_INCLUDES_DEFAULT])
|
||||||
|
|
||||||
# check for libevent
|
# check for libevent
|
||||||
AC_ARG_WITH(ssl, AC_HELP_STRING([--with-libevent=pathname],
|
AC_ARG_WITH(libevent, AC_HELP_STRING([--with-libevent=pathname],
|
||||||
[set path to libevent (will check /usr/local /usr/lib /usr/pkg /usr/sfw /usr)]),[
|
[set path to libevent (will check /usr/local /usr/lib /usr/pkg /usr/sfw /usr)]),[
|
||||||
],[
|
],[
|
||||||
withval="yes"
|
withval="yes"
|
||||||
|
|
@ -221,6 +221,7 @@ AC_ARG_WITH(ssl, AC_HELP_STRING([--with-libevent=pathname],
|
||||||
AC_SUBST(RUNTIME_PATH)
|
AC_SUBST(RUNTIME_PATH)
|
||||||
fi
|
fi
|
||||||
AC_CHECK_HEADERS([event.h],,, [AC_INCLUDES_DEFAULT])
|
AC_CHECK_HEADERS([event.h],,, [AC_INCLUDES_DEFAULT])
|
||||||
|
AC_CHECK_FUNCS([event_base_free]) # only in libevent 1.2 and later
|
||||||
|
|
||||||
# check to see if libraries are needed for these functions.
|
# check to see if libraries are needed for these functions.
|
||||||
AC_CHECK_LIB(socket, socket)
|
AC_CHECK_LIB(socket, socket)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,34 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
*
|
*
|
||||||
* See LICENSE for the license.
|
* This software is open source.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -15,6 +42,24 @@
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "util/log.h"
|
#include "util/log.h"
|
||||||
|
#include "util/netevent.h"
|
||||||
|
|
||||||
|
/** print usage.
|
||||||
|
* @param argv: the argv passed to main().
|
||||||
|
*/
|
||||||
|
static void usage()
|
||||||
|
{
|
||||||
|
printf("usage: unbound [options]\n");
|
||||||
|
printf("\tstart unbound daemon DNS resolver.\n");
|
||||||
|
printf("\t-h\tthis help\n");
|
||||||
|
printf("\t-v\tverbose (multiple times increase verbosity)\n");
|
||||||
|
printf("Version %s\n", PACKAGE_VERSION);
|
||||||
|
printf("BSD licensed, see LICENSE file in source package.\n");
|
||||||
|
printf("Report bugs to %s.\n", PACKAGE_BUGREPORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
extern int optind;
|
||||||
|
extern char* optarg;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* main program. Set options given commandline arguments.
|
* main program. Set options given commandline arguments.
|
||||||
|
|
@ -24,13 +69,37 @@
|
||||||
int
|
int
|
||||||
main(int argc, char* argv[])
|
main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
if(argc != 1) {
|
struct comm_base *base = 0;
|
||||||
printf("usage: %s\n", argv[0]);
|
int c;
|
||||||
printf("\tstart unbound daemon DNS resolver.\n");
|
|
||||||
|
log_init();
|
||||||
|
/* parse the options */
|
||||||
|
while( (c=getopt(argc, argv, "hv")) != -1) {
|
||||||
|
switch(c) {
|
||||||
|
case 'v':
|
||||||
|
verbosity ++;
|
||||||
|
break;
|
||||||
|
case '?':
|
||||||
|
case 'h':
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
argc -= optind;
|
||||||
|
argv += optind;
|
||||||
|
|
||||||
|
if(argc != 0) {
|
||||||
|
usage();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
log_init();
|
|
||||||
log_info("Start of %s.", PACKAGE_STRING);
|
log_info("Start of %s.", PACKAGE_STRING);
|
||||||
|
|
||||||
|
base = comm_base_create();
|
||||||
|
if(!base)
|
||||||
|
fatal_exit("could not create commbase");
|
||||||
|
|
||||||
|
comm_base_delete(base);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
25 January 2007: Wouter
|
25 January 2007: Wouter
|
||||||
- fixed lint so it may work on BSD.
|
- fixed lint so it may work on BSD.
|
||||||
|
- put license into header of every file.
|
||||||
|
- created verbosity flag.
|
||||||
|
- fixed libevent configure flag.
|
||||||
|
- detects event_base_free() in new libevent 1.2 version.
|
||||||
|
- getopt in daemon. fatal_exit() and verbose() logging funcs.
|
||||||
|
|
||||||
24 January 2007: Wouter
|
24 January 2007: Wouter
|
||||||
- cleaned up configure.ac.
|
- cleaned up configure.ac.
|
||||||
|
|
|
||||||
43
services/listen_dnsport.c
Normal file
43
services/listen_dnsport.c
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* services/listen_dnsport.c - listen on port 53 for incoming DNS queries.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is open source.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
*
|
||||||
|
* This file has functions to get queries from clients.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "services/listen_dnsport.h"
|
||||||
|
|
||||||
81
services/listen_dnsport.h
Normal file
81
services/listen_dnsport.h
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* services/listen_dnsport.h - listen on port 53 for incoming DNS queries.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is open source.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
*
|
||||||
|
* This file has functions to get queries from clients.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LISTEN_DNSPORT_H
|
||||||
|
#define LISTEN_DNSPORT_H
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
struct comm_base;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listening for queries structure.
|
||||||
|
* Contains list of query-listen sockets.
|
||||||
|
*/
|
||||||
|
struct listen_dnsport {
|
||||||
|
/** Base for select calls */
|
||||||
|
struct comm_base* base;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getaddrinfo, create socket, bind and listen to zero or more
|
||||||
|
* interfaces for IP4 and/or IP6, for UDP and/or TCP.
|
||||||
|
* On the given port number. It creates the listening sockets.
|
||||||
|
* @param base: the comm_base that provides event functionality.
|
||||||
|
* @param num_ifs: number of interfaces to listen on. Can be 0,
|
||||||
|
* for default all ifs.
|
||||||
|
* @param ifs: array of strings with interface specs, IP addresses.
|
||||||
|
* @param port: the port number to bind to.
|
||||||
|
* @param do_ip4: listen to ip4 queries.
|
||||||
|
* @param do_ip6: listen to ip6 queries.
|
||||||
|
* @param do_udp: listen to udp queries.
|
||||||
|
* @param do_tcp: listen to tcp queries.
|
||||||
|
* @return: the malloced listening structure, ready for use.
|
||||||
|
*/
|
||||||
|
struct listen_dnsport* listen_create(struct comm_base* base,
|
||||||
|
int num_ifs, const char* ifs[], int port,
|
||||||
|
int do_ip4, int do_ip6, int do_udp, int do_tcp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* delete the listening structure
|
||||||
|
*/
|
||||||
|
void listen_delete(struct listen_dnsport* listen);
|
||||||
|
|
||||||
|
#endif /* LISTEN_DNSPORT_H */
|
||||||
60
util/log.c
60
util/log.c
|
|
@ -3,8 +3,34 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
*
|
*
|
||||||
* See LICENSE for the license.
|
* This software is open source.
|
||||||
*
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* \file
|
* \file
|
||||||
|
|
@ -17,6 +43,8 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
enum verbosity_value verbosity = 3;
|
||||||
|
|
||||||
void
|
void
|
||||||
log_init()
|
log_init()
|
||||||
{
|
{
|
||||||
|
|
@ -57,3 +85,33 @@ log_err(const char *format, ...)
|
||||||
log_vmsg("error", format, args);
|
log_vmsg("error", format, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* implementation of fatal_exit
|
||||||
|
* @param format: format string printf-style.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
fatal_exit(const char *format, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
log_vmsg("fatal error", format, args);
|
||||||
|
va_end(args);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* implementation of verbose
|
||||||
|
* @param level: verbose level for the message.
|
||||||
|
* @param format: format string printf-style.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
verbose(enum verbosity_value level, const char* format, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
if(verbosity >= level)
|
||||||
|
log_vmsg("note", format, args);
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
62
util/log.h
62
util/log.h
|
|
@ -3,8 +3,34 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
*
|
*
|
||||||
* See LICENSE for the license.
|
* This software is open source.
|
||||||
*
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -21,6 +47,33 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* verbosity value:
|
||||||
|
*/
|
||||||
|
enum verbosity_value {
|
||||||
|
/** 0 - no verbose messages */
|
||||||
|
NO_VERBOSE = 0,
|
||||||
|
/** 1 - operational information */
|
||||||
|
VERB_OPS,
|
||||||
|
/** 2 - query level information */
|
||||||
|
VERB_DETAIL,
|
||||||
|
/** 3 - algorithm level information */
|
||||||
|
VERB_ALGO
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The global verbosity setting */
|
||||||
|
extern enum verbosity_value verbosity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* log a verbose message, pass the level for this message.
|
||||||
|
* It has printf formatted arguments. No trailing newline is needed.
|
||||||
|
* @param level: verbosity level for this message, compared to global
|
||||||
|
* verbosity setting.
|
||||||
|
* @param format: printf-style format string. Arguments follow.
|
||||||
|
*/
|
||||||
|
void verbose(enum verbosity_value level,
|
||||||
|
const char* format, ...) ATTR_FORMAT(printf, 2, 3);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* call this to initialize logging services.
|
* call this to initialize logging services.
|
||||||
*/
|
*/
|
||||||
|
|
@ -40,6 +93,13 @@ void log_info(const char* format, ...) ATTR_FORMAT(printf, 1, 2);
|
||||||
*/
|
*/
|
||||||
void log_err(const char* format, ...) ATTR_FORMAT(printf, 1, 2);
|
void log_err(const char* format, ...) ATTR_FORMAT(printf, 1, 2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log fatal error message, and exit the current process.
|
||||||
|
* Pass printf formatted arguments. No trailing newline is needed.
|
||||||
|
* @param format: printf-style format string. Arguments follow.
|
||||||
|
*/
|
||||||
|
void fatal_exit(const char* format, ...) ATTR_FORMAT(printf, 1, 2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* va_list argument version of log_info.
|
* va_list argument version of log_info.
|
||||||
* @param type: string to designate type of message (info, error).
|
* @param type: string to designate type of message (info, error).
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,34 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
*
|
*
|
||||||
* See LICENSE for the license.
|
* This software is open source.
|
||||||
*
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -91,13 +117,17 @@ comm_base_create()
|
||||||
free(b);
|
free(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
verbose(VERB_ALGO, "libevent uses %s method.", event_get_method());
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
comm_base_delete(struct comm_base* b)
|
comm_base_delete(struct comm_base* b)
|
||||||
{
|
{
|
||||||
/* No way to delete event_base! leaks. */
|
#ifdef HAVE_EVENT_BASE_FREE
|
||||||
|
/* only libevent 1.2+ has it */
|
||||||
|
event_base_free(b->eb->base);
|
||||||
|
#endif /* HAVE_EVENT_BASE_FREE */
|
||||||
b->eb->base = NULL;
|
b->eb->base = NULL;
|
||||||
free(b->eb);
|
free(b->eb);
|
||||||
free(b);
|
free(b);
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,34 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
* Copyright (c) 2007, NLnet Labs. All rights reserved.
|
||||||
*
|
*
|
||||||
* See LICENSE for the license.
|
* This software is open source.
|
||||||
*
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of the NLNET LABS nor the names of its contributors may
|
||||||
|
* be used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue