[SCM] Samba Shared Repository - branch master updated

Björn Baumbach bbaumbach at samba.org
Fri Mar 3 12:53:01 UTC 2023


The branch, master has been updated
       via  e3cfb99d286 net: add hint which options can be used with net ads dns register command
       via  529ef99d7c5 testprogs: add test for new net ads dns register --dns-ttl option
       via  0ea27849062 docs: documentation for new net --dns-ttl option
       via  36ed126f4c3 net: add new --dns-ttl option to specify the ttl of dns records
       via  a320089a248 testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh: verify test results ($failed)
       via  350fe63a192 testprogs/blackbox/test_special_group.sh: verify test results ($failed)
       via  ca3fbde2c8d testprogs/blackbox/test_net_ads_dns.sh: verify test results ($failed)
       via  74dbfc4da6d testprogs: net ads dns: do not increase the $failed counter in "net ads dns" when test is OK
       via  cc3696f51d1 testprogs: remove used records in "net ads dns" tests
       via  8f53f32bfff testprogs: use more unique names in "net ads dns" tests
       via  80d58ead5e1 testprogs: remove only used dns records in "net ads dns" tests
       via  9fa659cc1fd testprogs: use uniqe names in "net ads dns" tests to avoid conflicts
       via  582621109b5 testprogs: adapt return values of testit_expect_failure_grep and testit_grep_count to function description
       via  1b2627fc705 testprogs: net ads dns tests: remove test user after usage.
       via  5e62d580f45 testprogs: fix some "net ads dns" tests
      from  c28f61b6bbd Add a git-blame-ignore-revs file

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit e3cfb99d2864ba288a152a2b4ff35fc9ec65fead
Author: Björn Baumbach <bb at sernet.de>
Date:   Thu Feb 16 19:20:14 2023 +0100

    net: add hint which options can be used with net ads dns register command
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Björn Baumbach <bb at sernet.de>
    Autobuild-Date(master): Fri Mar  3 12:52:00 UTC 2023 on atb-devel-224

commit 529ef99d7c546de5a655de83a87b6de98459cc07
Author: Björn Baumbach <bb at sernet.de>
Date:   Tue Feb 21 18:00:41 2023 +0100

    testprogs: add test for new net ads dns register --dns-ttl option
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 0ea2784906241468dc5b01f0b452dd8821cd1a2f
Author: Björn Baumbach <bb at sernet.de>
Date:   Thu Feb 23 17:09:22 2023 +0100

    docs: documentation for new net --dns-ttl option
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 36ed126f4c3d91ba3154bd78c8becff9a15a4769
Author: Björn Baumbach <bb at sernet.de>
Date:   Thu Feb 16 18:36:37 2023 +0100

    net: add new --dns-ttl option to specify the ttl of dns records
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit a320089a248fe307fb29d92436c72e24917e9f90
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:29:02 2023 +0000

    testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh: verify test results ($failed)
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 350fe63a192c33944a2891ebd873bbc55442ea3d
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:28:26 2023 +0000

    testprogs/blackbox/test_special_group.sh: verify test results ($failed)
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit ca3fbde2c8d7ab78e02776c6e196d8294278b199
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:26:34 2023 +0000

    testprogs/blackbox/test_net_ads_dns.sh: verify test results ($failed)
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 74dbfc4da6d8693ea3a1b1ac174dba83151cff7a
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:20:51 2023 +0000

    testprogs: net ads dns: do not increase the $failed counter in "net ads dns" when test is OK
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit cc3696f51d10796841ffd26aea5fae7e3154b803
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Feb 24 16:52:05 2023 +0100

    testprogs: remove used records in "net ads dns" tests
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 8f53f32bffff61c35cbd06b9e74408e680fb6abb
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Feb 24 16:27:17 2023 +0100

    testprogs: use more unique names in "net ads dns" tests
    
    ADMINNAME can be used for records, created by the AD admin
    MACHINENAME for records, created by the machine (-P)
    UNPRIVNAME for records, created by the unprivileged user
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 80d58ead5e1e23c95cb9da45737f1b7228854efb
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Feb 24 16:35:02 2023 +0100

    testprogs: remove only used dns records in "net ads dns" tests
    
    $NAME was not added here in this section, but $UNPRIV.
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 9fa659cc1fd8a4ff05ce70923317113571345e4f
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:15:23 2023 +0000

    testprogs: use uniqe names in "net ads dns" tests to avoid conflicts
    
    Avoid conflicts when running the same tests multiple times.
    Reduces the needs to cleanup all objects properly.
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 582621109b5d95f61b76e5381de9f1c546cea698
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 19:02:38 2023 +0000

    testprogs: adapt return values of testit_expect_failure_grep and testit_grep_count to function description
    
    Improves logic when calling tests and make use of the $failed counter.
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 1b2627fc7051d1ca165be529f545b5e10b82c272
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 15:57:54 2023 +0100

    testprogs: net ads dns tests: remove test user after usage.
    
    Not required anymore and would produce errors, when the test runs
    a second time.
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 5e62d580f45ed51b10af4d85ede8ec1bbaea0f72
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Feb 22 15:22:58 2023 +0100

    testprogs: fix some "net ads dns" tests
    
    Use testit_grep_count instead of greping the output of testit.
    Running testit with "| grep" falsifies the test results.
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 docs-xml/manpages/net.8.xml                        |  13 ++
 lib/addns/dns.h                                    |   1 +
 lib/addns/dnsrecord.c                              |  13 +-
 source3/utils/net.c                                |   7 +
 source3/utils/net.h                                |   1 +
 source3/utils/net_ads.c                            |   3 +-
 source3/utils/net_ads_join_dns.c                   |   6 +
 source3/utils/net_dns.c                            |  28 +++-
 source3/utils/net_dns.h                            |   7 +-
 testprogs/blackbox/subunit.sh                      |   4 +-
 testprogs/blackbox/test_net_ads_dns.sh             | 144 ++++++++++++++++++---
 testprogs/blackbox/test_special_group.sh           |   2 +-
 .../blackbox/test_weak_disable_ntlmssp_ldap.sh     |   2 +-
 13 files changed, 195 insertions(+), 36 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages/net.8.xml b/docs-xml/manpages/net.8.xml
index 497a8114057..f98b56694d2 100644
--- a/docs-xml/manpages/net.8.xml
+++ b/docs-xml/manpages/net.8.xml
@@ -59,6 +59,7 @@
 		<arg choice="opt">-f|--force</arg>
 		<arg choice="opt">--request-timeout seconds</arg>
 		<arg choice="opt">-t|--timeout seconds</arg>
+		<arg choice="opt">--dns-ttl TTL-IN-SECONDS</arg>
 		<arg choice="opt">-i|--stdin</arg>
 	</cmdsynopsis>
 </refsynopsisdiv>
@@ -389,6 +390,18 @@
 		directory.</para></listitem>
 		</varlistentry>
 
+		<!-- Options for net ads dns register (and ads join) -->
+		<varlistentry>
+		<term>--dns-ttl TTL-IN-SECONDS</term>
+		<listitem><para>
+		Specify the Time to Live (TTL) of DNS records.
+		DNS records will be created or updated with the given TTL.
+		The TTL is specified in seconds. Can be used with "net ads dns
+		register" and "net ads join".
+		The default is 3600 seconds.
+		</para></listitem>
+		</varlistentry>
+
 		&cmdline.common.samba.client;
 		&cmdline.common.connection;
 		&cmdline.common.credentials;
diff --git a/lib/addns/dns.h b/lib/addns/dns.h
index 685cded966b..1f61d6e5bda 100644
--- a/lib/addns/dns.h
+++ b/lib/addns/dns.h
@@ -290,6 +290,7 @@ DNS_ERROR dns_create_update_request(TALLOC_CTX *mem_ctx,
 				    const char *hostname,
 				    const struct sockaddr_storage *ip_addr,
 				    size_t num_adds,
+				    uint32_t ttl,
 				    struct dns_update_request **preq);
 
 /* from dnssock.c */
diff --git a/lib/addns/dnsrecord.c b/lib/addns/dnsrecord.c
index e6e205e6832..c1a65956909 100644
--- a/lib/addns/dnsrecord.c
+++ b/lib/addns/dnsrecord.c
@@ -408,6 +408,7 @@ DNS_ERROR dns_create_update_request(TALLOC_CTX *mem_ctx,
 				    const char *hostname,
 				    const struct sockaddr_storage *ss_addrs,
 				    size_t num_addrs,
+				    uint32_t ttl,
 				    struct dns_update_request **preq)
 {
 	struct dns_update_request *req = NULL;
@@ -448,11 +449,19 @@ DNS_ERROR dns_create_update_request(TALLOC_CTX *mem_ctx,
 
 		switch(ss_addrs[i].ss_family) {
 		case AF_INET:
-			err = dns_create_a_record(req, hostname, 3600, &ss_addrs[i], &rec);
+			err = dns_create_a_record(req,
+						  hostname,
+						  ttl,
+						  &ss_addrs[i],
+						  &rec);
 			break;
 #ifdef HAVE_IPV6
 		case AF_INET6:
-			err = dns_create_aaaa_record(req, hostname, 3600, &ss_addrs[i], &rec);
+			err = dns_create_aaaa_record(req,
+						     hostname,
+						     ttl,
+						     &ss_addrs[i],
+						     &rec);
 			break;
 #endif
 		default:
diff --git a/source3/utils/net.c b/source3/utils/net.c
index 679f04db22b..8272d8c4696 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -1225,6 +1225,13 @@ static struct functable net_func[] = {
 			.arg        = &c->opt_follow_symlink,
 			.descrip    = "follow symlinks",
 		},
+		/* Options for 'net ads dns register' */
+		{
+			.longName   = "dns-ttl",
+			.argInfo    = POPT_ARG_INT,
+			.arg        = &c->opt_dns_ttl,
+			.descrip    = "TTL in seconds of DNS records",
+		},
 		POPT_COMMON_SAMBA
 		POPT_COMMON_CONNECTION
 		POPT_COMMON_CREDENTIALS
diff --git a/source3/utils/net.h b/source3/utils/net.h
index e092eef5fdc..b21cf410529 100644
--- a/source3/utils/net.h
+++ b/source3/utils/net.h
@@ -90,6 +90,7 @@ struct net_context {
 	int opt_continue_on_error;
 	int opt_recursive;
 	int opt_follow_symlink;
+	int opt_dns_ttl;
 
 	int opt_have_ip;
 	struct sockaddr_storage opt_dest_ip;
diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index 4bca90d5c8c..2c5786a6e65 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -1892,7 +1892,8 @@ static int net_ads_dns_register(struct net_context *c, int argc, const char **ar
 
 	if (c->display_usage) {
 		d_printf(  "%s\n"
-			   "net ads dns register [hostname [IP [IP...]]]\n"
+			   "net ads dns register [hostname [IP [IP...]]] "
+			   "[--force] [--dns-ttl TTL]\n"
 			   "    %s\n",
 			 _("Usage:"),
 			 _("Register hostname with DNS\n"));
diff --git a/source3/utils/net_ads_join_dns.c b/source3/utils/net_ads_join_dns.c
index 7c98b0ee27f..3437f96ee58 100644
--- a/source3/utils/net_ads_join_dns.c
+++ b/source3/utils/net_ads_join_dns.c
@@ -56,6 +56,11 @@ static NTSTATUS net_update_dns_internal(struct net_context *c,
 	fstring dns_server;
 	const char *dnsdomain = NULL;
 	char *root_domain = NULL;
+	uint32_t ttl = 3600;
+
+	if (c->opt_dns_ttl > 0) {
+		ttl = MIN(c->opt_dns_ttl, UINT32_MAX);
+	}
 
 	if ( (dnsdomain = strchr_m( machine_name, '.')) == NULL ) {
 		d_printf(_("No DNS domain configured for %s. "
@@ -158,6 +163,7 @@ static NTSTATUS net_update_dns_internal(struct net_context *c,
 		                      addrs,
 				      num_addrs,
 				      flags,
+				      ttl,
 				      remove_host);
 		if (ERR_DNS_IS_OK(dns_err)) {
 			status = NT_STATUS_OK;
diff --git a/source3/utils/net_dns.c b/source3/utils/net_dns.c
index 751a6c120e0..9850ba40299 100644
--- a/source3/utils/net_dns.c
+++ b/source3/utils/net_dns.c
@@ -30,9 +30,13 @@
 *********************************************************************/
 
 DNS_ERROR DoDNSUpdate(char *pszServerName,
-		      const char *pszDomainName, const char *pszHostName,
-		      const struct sockaddr_storage *sslist, size_t num_addrs,
-		      uint32_t flags, bool remove_host)
+		      const char *pszDomainName,
+		      const char *pszHostName,
+		      const struct sockaddr_storage *sslist,
+		      size_t num_addrs,
+		      uint32_t flags,
+		      uint32_t ttl,
+		      bool remove_host)
 {
 	DNS_ERROR err;
 	struct dns_connection *conn;
@@ -91,8 +95,13 @@ DNS_ERROR DoDNSUpdate(char *pszServerName,
 		 * First try without signing
 		 */
 
-		err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName,
-						sslist, num_addrs, &req);
+		err = dns_create_update_request(mem_ctx,
+						pszDomainName,
+						pszHostName,
+						sslist,
+						num_addrs,
+						ttl,
+						&req);
 		if (!ERR_DNS_IS_OK(err)) goto error;
 
 		err = dns_update_transaction(mem_ctx, conn, req, &resp);
@@ -115,8 +124,13 @@ DNS_ERROR DoDNSUpdate(char *pszServerName,
 		gss_ctx_id_t gss_context;
 		char *keyname;
 
-		err = dns_create_update_request(mem_ctx, pszDomainName, pszHostName,
-						sslist, num_addrs, &req);
+		err = dns_create_update_request(mem_ctx,
+						pszDomainName,
+						pszHostName,
+						sslist,
+						num_addrs,
+						ttl,
+						&req);
 		if (!ERR_DNS_IS_OK(err)) goto error;
 
 		if (!(keyname = dns_generate_keyname( mem_ctx ))) {
diff --git a/source3/utils/net_dns.h b/source3/utils/net_dns.h
index f53e9546e23..4569e1c3328 100644
--- a/source3/utils/net_dns.h
+++ b/source3/utils/net_dns.h
@@ -33,9 +33,12 @@
 #include "../lib/addns/dns.h"
 
 DNS_ERROR DoDNSUpdate(char *pszServerName,
-		      const char *pszDomainName, const char *pszHostName,
+		      const char *pszDomainName,
+		      const char *pszHostName,
 		      const struct sockaddr_storage *sslist,
 		      size_t num_addrs,
-		      uint32_t flags, bool remove_host);
+		      uint32_t flags,
+		      uint32_t ttl,
+		      bool remove_host);
 
 #endif /* defined(HAVE_KRB5) */
diff --git a/testprogs/blackbox/subunit.sh b/testprogs/blackbox/subunit.sh
index 08bbeefd1e2..50eac3af968 100755
--- a/testprogs/blackbox/subunit.sh
+++ b/testprogs/blackbox/subunit.sh
@@ -146,8 +146,9 @@ testit_grep_count()
 	    printf 'GREP: "%s" found "%d" times, expected "%d" in output:\n%s'\
 		   "$grep" "$found" "$num" "$output" |
 		subunit_fail_test "$name"
+	    return 1
 	fi
-	return $status
+	return 0
 }
 
 testit_expect_failure()
@@ -188,6 +189,7 @@ testit_expect_failure_grep()
 		subunit_pass_test "$name"
 	else
 		printf 'GREP: "%s" not found in output:\n%s' "$grep" "$output" | subunit_fail_test "$name"
+		return 1
 	fi
 	return 0
 }
diff --git a/testprogs/blackbox/test_net_ads_dns.sh b/testprogs/blackbox/test_net_ads_dns.sh
index 072a4c5c311..8a85913c68a 100755
--- a/testprogs/blackbox/test_net_ads_dns.sh
+++ b/testprogs/blackbox/test_net_ads_dns.sh
@@ -42,24 +42,50 @@ IPADDRESS=10.1.4.111
 IP6ADDRESS=fd00:1a1a::1:5ee:bad:c0de
 IPADDRMAC=10.1.4.124
 UNPRIVIP=10.1.4.130
-NAME=testname
-UNPRIVNAME=unprivname
-UNPRIVUSER=unprivuser
+ADMINNAME=testname.$$
+MACHINENAME=membername.$$
+UNPRIVNAME=unprivname.$$
+UNPRIVUSER=unprivuser.$$
 UNPRIVPASS=UnPrivPass1
 
 # These tests check that privileged users can add DNS names and that
 # unprivileged users cannot do so.
 echo "Starting ..."
 
-testit "admin user should be able to add a DNS entry $NAME.$REALM $IPADDRESS $IP6ADDRESS" $VALGRIND $net_tool ads dns register $NAME.$REALM $IPADDRESS $IP6ADDRESS -U$DC_USERNAME%$DC_PASSWORD || failed=$(expr $failed + 1)
-
-testit "We should be able to see the new name $NAME.$REALM $IPADDRESS" dig @$SERVER +short -t a $NAME.$REALM | grep -q $IPADDRESS || failed=$(expr $failed + 1)
-testit "We should be able to see the new name $NAME.$REALM $IP6ADDRESS" dig @$SERVER +short -t aaaa $NAME.$REALM | grep -q $IP6ADDRESS || failed=$(expr $failed + 1)
-
-testit "We should be able to unregister the name $NAME.$REALM" $VALGRIND $net_tool ads dns unregister $NAME.$REALM -U$DC_USERNAME%$DC_PASSWORD || failed=$(expr $failed + 1)
-
-testit "The name $NAME.$REALM $IPADDRESS should not be there any longer" dig @$SERVER +short -t a $NAME.$REALM | grep -q $IPADDRESS && failed=$(expr $failed + 1)
-testit "The name $NAME.$REALM $IP6ADDRESS should not be there any longer" dig @$SERVER +short -t aaaa $NAME.$REALM | grep -q $IP6ADDRESS && failed=$(expr $failed + 1)
+testit "admin user should be able to add a DNS entry $ADMINNAME.$REALM $IPADDRESS $IP6ADDRESS" \
+	$VALGRIND $net_tool ads dns register $ADMINNAME.$REALM $IPADDRESS $IP6ADDRESS -U$DC_USERNAME%$DC_PASSWORD ||
+	failed=$(expr $failed + 1)
+
+testit_grep_count \
+	"We should be able to see the new name $ADMINNAME.$REALM $IPADDRESS" \
+	"$IPADDRESS" \
+	1 \
+	dig @$SERVER +short -t a $ADMINNAME.$REALM ||
+	failed=$(expr $failed + 1)
+testit_grep_count \
+	"We should be able to see the new name $ADMINNAME.$REALM $IP6ADDRESS" \
+	"$IP6ADDRESS" \
+	1 \
+	dig @$SERVER +short -t aaaa $ADMINNAME.$REALM ||
+	failed=$(expr $failed + 1)
+
+testit "We should be able to unregister the name $ADMINNAME.$REALM" \
+	$VALGRIND $net_tool ads dns unregister $ADMINNAME.$REALM -U$DC_USERNAME%$DC_PASSWORD ||
+	failed=$(expr $failed + 1)
+
+testit_grep_count \
+	"The name $ADMINNAME.$REALM $IPADDRESS should not be there any longer" \
+	"$IPADDRESS" \
+	0 \
+	dig @$SERVER +short -t a $ADMINNAME.$REALM ||
+	failed=$(expr $failed + 1)
+
+testit_grep_count \
+	"The name $ADMINNAME.$REALM $IP6ADDRESS should not be there any longer" \
+	"$IP6ADDRESS" \
+	0 \
+	dig @$SERVER +short -t aaaa $ADMINNAME.$REALM ||
+	failed=$(expr $failed + 1)
 
 # prime the kpasswd server, see "git blame" for an explanation
 $VALGRIND $net_tool user add $UNPRIVUSER $UNPRIVPASS -U$DC_USERNAME%$DC_PASSWORD
@@ -81,16 +107,92 @@ testit "We should have enabled the account" test $STATUS -eq 0 || failed=$(expr
 testit "Unprivileged users should be able to add new names" $net_tool ads dns register $UNPRIVNAME.$REALM $UNPRIVIP -U$UNPRIVUSER%$UNPRIVPASS || failed=$(expr $failed + 1)
 
 # This should work as well
-testit "machine account should be able to add a DNS entry net ads dns register membername.$REALM $IPADDRMAC -P " $net_tool ads dns register membername.$REALM $IPADDRMAC -P || failed=$(expr $failed + 1)
+testit "machine account should be able to add a DNS entry net ads dns register $MACHINENAME.$REALM $IPADDRMAC -P" \
+	$net_tool ads dns register $MACHINENAME.$REALM $IPADDRMAC -P ||
+	failed=$(expr $failed + 1)
 
-testit "We should be able to see the new name membername.$REALM" dig @$SERVER +short -t a membername.$REALM | grep -q $IPADDRMAC || failed=$(expr $failed + 1)
+testit_grep_count \
+	"We should be able to see the new name $MACHINENAME.$REALM" \
+	"$IPADDRMAC" \
+	1 \
+	dig @$SERVER +short -t a $MACHINENAME.$REALM ||
+	failed=$(expr $failed + 1)
 
 #Unprivileged users should not be able to overwrite other's names
-testit_expect_failure "Unprivileged users should not be able to modify existing names" $net_tool ads dns register membername.$REALM $UNPRIVIP -U$UNPRIVUSER%$UNPRIVPASS || failed=$(expr $failed + 1)
-
-testit "We should be able to unregister the name $NAME.$REALM $IPADDRESS" $VALGRIND $net_tool ads dns unregister $NAME.$REALM -P || failed=$(expr $failed + 1)
-
-testit "The name $NAME.$REALM ($IPADDRESS) should not be there any longer" dig @$SERVER +short -t a $NAME.$REALM | grep -q $IPADDRESS && failed=$(expr $failed + 1)
-testit "The name $NAME.$REALM ($IP6ADDRESS) should not be there any longer" dig @$SERVER +short -t aaaa $NAME.$REALM | grep -q $IP6ADDRESS && failed=$(expr $failed + 1)
+testit_expect_failure \
+	"Unprivileged users should not be able to modify existing names" \
+	$net_tool ads dns register $MACHINENAME.$REALM $UNPRIVIP -U$UNPRIVUSER%$UNPRIVPASS &&
+	failed=$(expr $failed + 1)
+
+testit "We should be able to unregister the name $UNPRIVNAME.$REALM $IPADDRESS" \
+	$VALGRIND $net_tool ads dns unregister $UNPRIVNAME.$REALM -U$UNPRIVUSER%$UNPRIVPASS ||
+	failed=$(expr $failed + 1)
+testit "We should be able to unregister the name $MACHINENAME.$REALM $IPADDRESS" \
+	$VALGRIND $net_tool ads dns unregister $MACHINENAME.$REALM -P ||
+	failed=$(expr $failed + 1)
+
+# Remove the unprivileged user, which is not required anymore
+$VALGRIND $net_tool user delete $UNPRIVUSER -U$DC_USERNAME%$DC_PASSWORD
 
-exit $failed
+testit_grep_count \
+	"The name $UNPRIVNAME.$REALM ($IPADDRESS) should not be there any longer" \
+	"$IPADDRESS" \
+	0 \
+	dig @$SERVER +short -t a $UNPRIVNAME.$REALM ||
+	failed=$(expr $failed + 1)
+testit_grep_count \
+	"The name $UNPRIVNAME.$REALM ($IP6ADDRESS) should not be there any longer" \
+	"$IP6ADDRESS" \
+	0 \
+	dig @$SERVER +short -t aaaa $UNPRIVNAME.$REALM ||
+	failed=$(expr $failed + 1)
+testit_grep_count \
+	"The name $MACHINENAME.$REALM ($IPADDRESS) should not be there any longer" \
+	"$IPADDRESS" \
+	0 \
+	dig @$SERVER +short -t a $MACHINENAME.$REALM ||
+	failed=$(expr $failed + 1)
+testit_grep_count \
+	"The name $MACHINENAME.$REALM ($IP6ADDRESS) should not be there any longer" \
+	"$IP6ADDRESS" \
+	0 \
+	dig @$SERVER +short -t aaaa $MACHINENAME.$REALM ||
+	failed=$(expr $failed + 1)
+
+# Tests with --dns-ttl option
+testit "net ads dns register with default TTL" \
+	$net_tool ads dns register $MACHINENAME.$REALM $IPADDRMAC -P ||
+	failed=$(expr $failed + 1)
+TTL=$(dig @$SERVER.$REALM +noall +ttlid +answer -t A $MACHINENAME.$REALM |
+	awk '{ print $2 }')
+testit "Verify default TTL of 3600 seconds" \
+	test "$TTL" = "3600" ||
+	failed=$(expr $failed + 1)
+
+testit "Update record with TTL of 60 seconds" \
+	$net_tool ads dns register --dns-ttl 60 --force $MACHINENAME.$REALM $IPADDRMAC -P ||
+	failed=$(expr $failed + 1)
+TTL=$(dig @$SERVER.$REALM +noall +ttlid +answer -t A $MACHINENAME.$REALM |
+	awk '{ print $2 }')
+testit "Verify new TTL of 60 seconds" \
+	test "$TTL" = "60" ||
+	failed=$(expr $failed + 1)
+
+testit "We should be able to unregister the name $MACHINENAME.$REALM $IPADDRESS" \
+	$VALGRIND $net_tool ads dns unregister $MACHINENAME.$REALM -P ||
+	failed=$(expr $failed + 1)
+
+testit_grep_count \
+	"The name $MACHINENAME.$REALM ($IPADDRESS) should not be there any longer" \
+	"$IPADDRESS" \
+	0 \
+	dig @$SERVER.$REALM +short -t A $MACHINENAME.$REALM ||
+	failed=$(expr $failed + 1)
+testit_grep_count \
+	"The name $MACHINENAME.$REALM ($IP6ADDRESS) should not be there any longer" \
+	"$IP6ADDRESS" \
+	0 \
+	dig @$SERVER.$REALM +short -t AAAA $MACHINENAME.$REALM ||
+	failed=$(expr $failed + 1)
+
+testok $0 $failed
diff --git a/testprogs/blackbox/test_special_group.sh b/testprogs/blackbox/test_special_group.sh
index c587d5be4cf..f0e86985cf6 100755
--- a/testprogs/blackbox/test_special_group.sh
+++ b/testprogs/blackbox/test_special_group.sh
@@ -55,4 +55,4 @@ testit_expect_failure_grep "add_duplicate_special_group" "Failed to add group.*a
 
 cleanup_output_directories
 
-exit $failed
+testok $0 $failed
diff --git a/testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh b/testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh
index efd6c974826..1e619811d48 100755
--- a/testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh
+++ b/testprogs/blackbox/test_weak_disable_ntlmssp_ldap.sh
@@ -38,4 +38,4 @@ testit_expect_failure_grep "net_ads_search.ntlm" "We can't fallback to NTLMSSP,
 
 unset GNUTLS_FORCE_FIPS_MODE
 
-exit $failed
+testok $0 $failed


-- 
Samba Shared Repository



More information about the samba-cvs mailing list