summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorRichard Sharpe <rsharpe@samba.org>2016-06-18 13:29:36 -0700
committerRalph Boehme <slow@samba.org>2016-06-19 10:34:37 +0200
commit9379a869439585410c4c3f74db2a39eaa36cb523 (patch)
tree2a674ef71959d7f1f63f66b8748e1d043e9edf8f /source3
parent3de3f643a870239a7a410a13065a86053992f7fa (diff)
downloadsamba-9379a869439585410c4c3f74db2a39eaa36cb523.tar.gz
s3/net: print returned addresses in dns gethostbyname
Make net ads dns gethostbyname actually print out the returned addresses so we can use it in self tests. Signed-off-by: Richard Sharpe <rsharpe@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org> Autobuild-User(master): Ralph Böhme <slow@samba.org> Autobuild-Date(master): Sun Jun 19 10:34:37 CEST 2016 on sn-devel-144
Diffstat (limited to 'source3')
-rw-r--r--source3/utils/net_ads.c7
-rw-r--r--source3/utils/net_dns.c29
2 files changed, 31 insertions, 5 deletions
diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index f4c25e1bf17..5feecc911f0 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -1751,9 +1751,10 @@ static int net_ads_dns_gethostbyname(struct net_context *c, int argc, const char
}
err = do_gethostbyname(argv[0], argv[1]);
-
- d_printf(_("do_gethostbyname returned %s (%d)\n"),
- dns_errstr(err), ERROR_DNS_V(err));
+ if (!ERR_DNS_IS_OK(err)) {
+ d_printf(_("do_gethostbyname returned %s (%d)\n"),
+ dns_errstr(err), ERROR_DNS_V(err));
+ }
#endif
return 0;
}
diff --git a/source3/utils/net_dns.c b/source3/utils/net_dns.c
index 3b9730a5313..207dfa51b20 100644
--- a/source3/utils/net_dns.c
+++ b/source3/utils/net_dns.c
@@ -212,14 +212,39 @@ DNS_ERROR do_gethostbyname(const char *server, const char *host)
struct dns_connection *conn = NULL;
struct dns_request *req, *resp;
DNS_ERROR err;
+ int ans = 0;
err = dns_open_connection(server, DNS_UDP, NULL, &conn);
- if (!ERR_DNS_IS_OK(err)) goto error;
+ if (!ERR_DNS_IS_OK(err)) {
+ goto error;
+ }
err = dns_create_query(conn, host, QTYPE_A, DNS_CLASS_IN, &req);
- if (!ERR_DNS_IS_OK(err)) goto error;
+ if (!ERR_DNS_IS_OK(err)) {
+ goto error;
+ }
err = dns_transaction(conn, conn, req, &resp);
+ if (!ERR_DNS_IS_OK(err)) {
+ goto error;
+ }
+
+ if (resp->num_answers == 0) {
+ printf("%s", "No answers!\n");
+ goto error;
+ }
+
+ for (ans = 0; ans < resp->num_answers; ans++) {
+ struct in_addr resp_ip;
+
+ if (ans > 0)
+ printf("%s", " ");
+
+ resp_ip.s_addr = *((uint32_t *)resp->answers[ans]->data);
+ printf("%s", inet_ntoa(resp_ip));
+ }
+
+ printf("%s", "\n");
error:
TALLOC_FREE(conn);