003 File Manager
Current Path:
/usr/src/contrib/unbound/contrib
usr
/
src
/
contrib
/
unbound
/
contrib
/
📁
..
📄
README
(3.49 KB)
📄
aaaa-filter-iterator.patch
(14.98 KB)
📁
android
📄
build-unbound-localzone-from-hosts.pl
(1.18 KB)
📄
create_unbound_ad_servers.cmd
(1.1 KB)
📄
create_unbound_ad_servers.sh
(1.02 KB)
📄
drop-tld.diff
(3.13 KB)
📄
drop2rpz
(1009 B)
📄
fastrpz.patch
(106.8 KB)
📁
ios
📄
libunbound.pc.in
(416 B)
📄
libunbound.so.conf
(2.03 KB)
📄
metrics.awk
(10.13 KB)
📄
parseunbound.pl
(5.58 KB)
📄
patch_rsamd5_enable.diff
(542 B)
📄
rc_d_unbound
(586 B)
📄
redirect-bogus.patch
(12.57 KB)
📁
selinux
📄
unbound-fuzzers.tar.bz2
(1.61 KB)
📄
unbound-fuzzme.patch
(6.43 KB)
📄
unbound-host.nagios.patch
(3.17 KB)
📄
unbound-querycachedb.py
(2.71 KB)
📄
unbound.init
(3.45 KB)
📄
unbound.init_fedora
(2.77 KB)
📄
unbound.plist
(926 B)
📄
unbound.service.in
(3.43 KB)
📄
unbound.socket.in
(142 B)
📄
unbound.spec
(3.79 KB)
📄
unbound.spec_fedora
(14.83 KB)
📄
unbound_cache.cmd
(2.56 KB)
📄
unbound_cache.sh
(3.38 KB)
📄
unbound_cacti.tar.gz
(71.5 KB)
📄
unbound_munin_
(17.57 KB)
📄
unbound_portable.service.in
(1.38 KB)
📄
unbound_smf23.tar.gz
(4.54 KB)
📄
update-anchor.sh
(4.25 KB)
📄
validation-reporter.sh
(2.27 KB)
📄
warmup.cmd
(2.47 KB)
📄
warmup.sh
(2.13 KB)
Editing: unbound-host.nagios.patch
Index: smallapp/unbound-host.c =================================================================== --- smallapp/unbound-host.c (revision 2115) +++ smallapp/unbound-host.c (working copy) @@ -62,9 +62,18 @@ #include "libunbound/unbound.h" #include <ldns/ldns.h> +/** status variable ala nagios */ +#define FINAL_STATUS_OK 0 +#define FINAL_STATUS_WARNING 1 +#define FINAL_STATUS_CRITICAL 2 +#define FINAL_STATUS_UNKNOWN 3 + /** verbosity for unbound-host app */ static int verb = 0; +/** variable to determine final output */ +static int final_status = FINAL_STATUS_UNKNOWN; + /** Give unbound-host usage, and exit (1). */ static void usage() @@ -93,7 +102,7 @@ printf("Version %s\n", PACKAGE_VERSION); printf("BSD licensed, see LICENSE in source package for details.\n"); printf("Report bugs to %s\n", PACKAGE_BUGREPORT); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } /** determine if str is ip4 and put into reverse lookup format */ @@ -138,7 +147,7 @@ *res = strdup(buf); if(!*res) { fprintf(stderr, "error: out of memory\n"); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } return 1; } @@ -158,7 +167,7 @@ } if(!res) { fprintf(stderr, "error: out of memory\n"); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } return res; } @@ -172,7 +181,7 @@ if(r == 0 && strcasecmp(t, "TYPE0") != 0 && strcmp(t, "") != 0) { fprintf(stderr, "error unknown type %s\n", t); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } return r; } @@ -191,7 +200,7 @@ if(r == 0 && strcasecmp(c, "CLASS0") != 0 && strcmp(c, "") != 0) { fprintf(stderr, "error unknown class %s\n", c); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } return r; } @@ -207,6 +216,19 @@ return "(insecure)"; } +/** update the final status for the exit code */ +void +update_final_status(struct ub_result* result) +{ + if (final_status == FINAL_STATUS_UNKNOWN || final_status == FINAL_STATUS_OK) { + if (result->secure) final_status = FINAL_STATUS_OK; + else if (result->bogus) final_status = FINAL_STATUS_CRITICAL; + else final_status = FINAL_STATUS_WARNING; + } + else if (final_status == FINAL_STATUS_WARNING && result->bogus) + final_status = FINAL_STATUS_CRITICAL; +} + /** nice string for type */ static void pretty_type(char* s, size_t len, int t) @@ -353,7 +375,7 @@ } else { fprintf(stderr, "could not parse " "reply packet to ANY query\n"); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } ldns_pkt_free(p); @@ -388,9 +410,10 @@ ret = ub_resolve(ctx, q, t, c, &result); if(ret != 0) { fprintf(stderr, "resolve error: %s\n", ub_strerror(ret)); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } pretty_output(q, t, c, result, docname); + update_final_status(result); ret = result->nxdomain; ub_resolve_free(result); return ret; @@ -427,7 +450,7 @@ { if(r != 0) { fprintf(stderr, "error: %s\n", ub_strerror(r)); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } } @@ -448,7 +471,7 @@ ctx = ub_ctx_create(); if(!ctx) { fprintf(stderr, "error: out of memory\n"); - exit(1); + exit(FINAL_STATUS_UNKNOWN); } /* parse the options */ @@ -509,5 +532,5 @@ usage(); lookup(ctx, argv[0], qtype, qclass); - return 0; + return final_status; }
Upload File
Create Folder