The branch, master has been updated
       via  c7625979ceb350d90d87d2add6ed7156440072c3 (commit)
       via  8e1d93e6a692676744c267dfd0d95802ff036a5f (commit)
      from  63e908e4b4b07455e14ac04d8efb3c4a3d043692 (commit)

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


- Log -----------------------------------------------------------------
commit c7625979ceb350d90d87d2add6ed7156440072c3
Author: Gerald (Jerry) Carter <[EMAIL PROTECTED]>
Date:   Fri Oct 3 10:51:54 2008 -0500

    net_dns: Make "lwinet ads dns register" honor the "interfaces" parameter.
    
    This is helpful on multihomed hosts that only require a subset
    of IP addresses be registered with DNS.

commit 8e1d93e6a692676744c267dfd0d95802ff036a5f
Author: Gerald (Jerry) Carter <[EMAIL PROTECTED]>
Date:   Fri Oct 3 10:51:21 2008 -0500

    libaddns: Use the same prerequisite for DDNS update as Windows XP.
    
       Hostname, TYPE: CNAME, CLASS: NONE
    
    This has to have been broken for ages.  I cannot see
    how it would have worked in any environment.

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

Summary of changes:
 source3/libaddns/dnsrecord.c |    4 ++--
 source3/utils/net_dns.c      |   25 ++++++++++++-------------
 2 files changed, 14 insertions(+), 15 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libaddns/dnsrecord.c b/source3/libaddns/dnsrecord.c
index 500cbd6..559c264 100644
--- a/source3/libaddns/dnsrecord.c
+++ b/source3/libaddns/dnsrecord.c
@@ -378,10 +378,10 @@ DNS_ERROR dns_create_update_request(TALLOC_CTX *mem_ctx,
        if (!ERR_DNS_IS_OK(err)) return err;
 
        /*
-        * The zone must be used at all
+        * Use the same prereq as WinXP -- No CNAME records for this host.
         */
 
-       err = dns_create_rrec(req, domainname, QTYPE_ANY, DNS_CLASS_ANY,
+       err = dns_create_rrec(req, hostname, QTYPE_CNAME, DNS_CLASS_NONE,
                              0, 0, NULL, &rec);
        if (!ERR_DNS_IS_OK(err)) goto error;
 
diff --git a/source3/utils/net_dns.c b/source3/utils/net_dns.c
index 14d45e2..46f38d4 100644
--- a/source3/utils/net_dns.c
+++ b/source3/utils/net_dns.c
@@ -150,9 +150,10 @@ int get_my_ip_address( struct sockaddr_storage **pp_ss )
        struct sockaddr_storage *list = NULL;
        int count = 0;
 
-       /* find the first non-loopback address from our list of interfaces */
+       /* Honor the configured list of interfaces to register */
 
-       n = get_interfaces(nics, MAX_INTERFACES);
+       load_interfaces();
+       n = iface_count();
 
        if (n <= 0) {
                return -1;
@@ -163,19 +164,17 @@ int get_my_ip_address( struct sockaddr_storage **pp_ss )
        }
 
        for ( i=0; i<n; i++ ) {
-               if (is_loopback_addr(&nics[i].ip)) {
+               const struct sockaddr_storage *nic_sa_storage = NULL;
+
+               if ((nic_sa_storage = iface_n_sockaddr_storage(i)) == NULL)
+                       continue;
+
+               /* Don't register loopback addresses */
+               if (is_loopback_addr(nic_sa_storage)) {
                        continue;
                }
-#if defined(HAVE_IPV6)
-               if ((nics[i].ip.ss_family == AF_INET6)) {
-                       memcpy(&list[count++], &nics[i].ip,
-                              sizeof(struct sockaddr_storage));
-               } else
-#endif
-               if (nics[i].ip.ss_family == AF_INET) {
-                       memcpy(&list[count++], &nics[i].ip,
-                              sizeof(struct sockaddr_storage));
-               }
+
+               memcpy(&list[count++], nic_sa_storage, sizeof(struct 
sockaddr_storage));
        }
        *pp_ss = list;
 


-- 
Samba Shared Repository

Reply via email to