The branch, master has been updated via 671691a doc: Use kinit instead of dig in the manpage example via 113c211 tests: Add tests for res_query and res_search via c78b81b Change my e-mail address from 538f2b9 rwrap: Fix strict aliasing warnings for symbol binding
https://git.samba.org/?p=resolv_wrapper.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 671691a7b08ec60baa2dd5d339bdcb46635d61e4 Author: Jakub Hrozek <jhro...@redhat.com> Date: Mon Feb 9 17:26:10 2015 +0100 doc: Use kinit instead of dig in the manpage example Signed-off-by: Jakub Hrozek <jakub.hro...@posteo.se> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit 113c211dc903f90bf6ef5c12cf9c746d8265f70c Author: Jakub Hrozek <jhro...@redhat.com> Date: Tue Aug 18 11:22:14 2015 +0200 tests: Add tests for res_query and res_search Signed-off-by: Jakub Hrozek <jakub.hro...@posteo.se> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> commit c78b81b4c41b7e22a2801e9d96af07b63ed0d1ce Author: Jakub Hrozek <jhro...@redhat.com> Date: Tue Aug 18 11:21:59 2015 +0200 Change my e-mail address Signed-off-by: Jakub Hrozek <jakub.hro...@posteo.se> Reviewed-by: Andreas Schneider <a...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> ----------------------------------------------------------------------- Summary of changes: doc/resolv_wrapper.1 | 8 +++-- doc/resolv_wrapper.1.txt | 6 +++- src/resolv_wrapper.c | 4 +-- tests/dns_srv.c | 2 +- tests/test_dns_fake.c | 2 +- tests/test_real_res_query.c | 2 +- tests/test_res_query_search.c | 69 +++++++++++++++++++++++++++++++++++++++++-- 7 files changed, 81 insertions(+), 12 deletions(-) Changeset truncated at 500 lines: diff --git a/doc/resolv_wrapper.1 b/doc/resolv_wrapper.1 index 5482b3d..2691964 100644 --- a/doc/resolv_wrapper.1 +++ b/doc/resolv_wrapper.1 @@ -2,12 +2,12 @@ .\" Title: resolv_wrapper .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> -.\" Date: 10/12/2014 +.\" Date: 2015-08-18 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "RESOLV_WRAPPER" "1" "10/12/2014" "\ \&" "\ \&" +.TH "RESOLV_WRAPPER" "1" "2015\-08\-18" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -147,11 +147,13 @@ If you need to see what is going on in resolv_wrapper itself or try to find a bu .RE .SH "EXAMPLE" .sp +The following command would trick \fIkinit(1)\fR into using DNS servers from "\&./resolv\&.conf" for Kerberos service resolution: +.sp .if n \{\ .RS 4 .\} .nf -$ LD_PRELOAD=libresolv_wrapper\&.so RESOLV_WRAPPER_CONF="\&./resolv\&.conf" dig test\&.example\&.site +$ LD_PRELOAD=libresolv_wrapper\&.so RESOLV_WRAPPER_CONF="\&./resolv\&.conf" kinit user@EXAMPLE\&.COM .fi .if n \{\ .RE diff --git a/doc/resolv_wrapper.1.txt b/doc/resolv_wrapper.1.txt index a9e4ec5..e2e6837 100644 --- a/doc/resolv_wrapper.1.txt +++ b/doc/resolv_wrapper.1.txt @@ -1,5 +1,6 @@ resolv_wrapper(1) ================= +:revdate: 2015-08-18 NAME ---- @@ -61,4 +62,7 @@ debug symbols. EXAMPLE ------- - $ LD_PRELOAD=libresolv_wrapper.so RESOLV_WRAPPER_CONF="./resolv.conf" dig test.example.site +The following command would trick 'kinit(1)' into using DNS servers from "./resolv.conf" +for Kerberos service resolution: + + $ LD_PRELOAD=libresolv_wrapper.so RESOLV_WRAPPER_CONF="./resolv.conf" kinit u...@example.com diff --git a/src/resolv_wrapper.c b/src/resolv_wrapper.c index d36d080..d6a17cf 100644 --- a/src/resolv_wrapper.c +++ b/src/resolv_wrapper.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2014 Andreas Schneider <a...@samba.org> - * Copyright (c) 2014 Jakub Hrozek <jakub.hro...@gmail.com> + * Copyright (c) 2014 Jakub Hrozek <jakub.hro...@posteo.se> * * All rights reserved. * @@ -1690,7 +1690,7 @@ int __res_nsearch(struct __res_state *state, } /**************************************************************************** - * RES_QUERY + * RES_SEARCH ***************************************************************************/ static int rwrap_res_search(const char *dname, diff --git a/tests/dns_srv.c b/tests/dns_srv.c index b2e6aa3..94e5c3d 100644 --- a/tests/dns_srv.c +++ b/tests/dns_srv.c @@ -1,5 +1,5 @@ /* - * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@gmail.com> + * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@posteo.se> * * All rights reserved. * diff --git a/tests/test_dns_fake.c b/tests/test_dns_fake.c index 9bc92cd..8d1dd0c 100644 --- a/tests/test_dns_fake.c +++ b/tests/test_dns_fake.c @@ -1,5 +1,5 @@ /* - * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@gmail.com> + * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@posteo.se> * * All rights reserved. * diff --git a/tests/test_real_res_query.c b/tests/test_real_res_query.c index 04ade89..f563a3d 100644 --- a/tests/test_real_res_query.c +++ b/tests/test_real_res_query.c @@ -1,5 +1,5 @@ /* - * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@gmail.com> + * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@posteo.se> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/tests/test_res_query_search.c b/tests/test_res_query_search.c index 395cb0c..616772c 100644 --- a/tests/test_res_query_search.c +++ b/tests/test_res_query_search.c @@ -1,5 +1,5 @@ /* - * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@gmail.com> + * Copyright (C) Jakub Hrozek 2014 <jakub.hro...@posteo.se> * * All rights reserved. * @@ -66,7 +66,7 @@ static int teardown(void **state) return 0; } -static void test_res_query(void **state) +static void test_res_nquery(void **state) { int rv; struct __res_state dnsstate; @@ -102,7 +102,36 @@ static void test_res_query(void **state) res_nclose(&dnsstate); } -static void test_res_search(void **state) +static void test_res_query(void **state) +{ + int rv; + unsigned char answer[ANSIZE]; + char addr[INET_ADDRSTRLEN]; + ns_msg handle; + ns_rr rr; /* expanded resource record */ + + (void) state; /* unused */ + + rv = res_query("www.cwrap.org", ns_c_in, ns_t_a, + answer, sizeof(answer)); + assert_int_not_equal(rv, -1); + + ns_initparse(answer, sizeof(answer), &handle); + /* + * The query must finish w/o an error, have one answer and the answer + * must be a parseable RR of type A and have the address that our + * test server sends. + */ + assert_int_equal(ns_msg_getflag(handle, ns_f_rcode), ns_r_noerror); + assert_int_equal(ns_msg_count(handle, ns_s_an), 1); + assert_int_equal(ns_parserr(&handle, ns_s_an, 0, &rr), 0); + assert_int_equal(ns_rr_type(rr), ns_t_a); + assert_non_null(inet_ntop(AF_INET, ns_rr_rdata(rr), + addr, sizeof(addr))); + assert_string_equal(addr, "127.0.10.10"); +} + +static void test_res_nsearch(void **state) { int rv; struct __res_state dnsstate; @@ -137,14 +166,48 @@ static void test_res_search(void **state) res_nclose(&dnsstate); } +static void test_res_search(void **state) +{ + int rv; + unsigned char answer[ANSIZE]; + char addr[INET_ADDRSTRLEN]; + ns_msg handle; + ns_rr rr; /* expanded resource record */ + + (void) state; /* unused */ + + rv = res_search("www.cwrap.org", ns_c_in, ns_t_a, + answer, sizeof(answer)); + assert_int_not_equal(rv, -1); + + ns_initparse(answer, sizeof(answer), &handle); + /* The query must finish w/o an error, have one answer and the answer + * must be a parseable RR of type A and have the address that our + * test server sends + */ + assert_int_equal(ns_msg_getflag(handle, ns_f_rcode), ns_r_noerror); + assert_int_equal(ns_msg_count(handle, ns_s_an), 1); + assert_int_equal(ns_parserr(&handle, ns_s_an, 0, &rr), 0); + assert_int_equal(ns_rr_type(rr), ns_t_a); + assert_non_null(inet_ntop(AF_INET, ns_rr_rdata(rr), + addr, sizeof(addr))); + assert_string_equal(addr, "127.0.10.10"); +} + int main(void) { int rc; const struct CMUnitTest res_tests[] = { + cmocka_unit_test_setup_teardown(test_res_nquery, + setup_dns_srv_ipv4, + teardown), cmocka_unit_test_setup_teardown(test_res_query, setup_dns_srv_ipv4, teardown), + cmocka_unit_test_setup_teardown(test_res_nsearch, + setup_dns_srv_ipv4, + teardown), cmocka_unit_test_setup_teardown(test_res_search, setup_dns_srv_ipv4, teardown), -- Resolv Wrapper Repository