The branch, master has been updated
       via  063900a... s3: Fix a typo
       via  a66341b... s3: simplify find_root_domain, find_our_domain() never 
fails
       via  133f023... s3: Use global_sid_Builtin in find_builtin_domain
       via  92345f4... s3: Avoid adding a domain twice
       via  22a4a00... s3: Make free_domain_list() static
       via  583d192... s3: Adapt sid_dup_talloc to README.Coding
       via  d05e17f... s3: Introduce domain_is_forest_root() helper function
      from  5047548... s4-dsdb: force REVISION_ADS for new and updated ACLs in 
dsdb

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


- Log -----------------------------------------------------------------
commit 063900ae631ccee1474ffa0ccd19e2e01bb6defd
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 30 20:15:33 2009 +0100

    s3: Fix a typo

commit a66341b993c74c6db1c064bd48ff52acb704d9c9
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 30 20:09:52 2009 +0100

    s3: simplify find_root_domain, find_our_domain() never fails

commit 133f023d58de8106d41d59dfc3c22e63a5653701
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 30 20:11:36 2009 +0100

    s3: Use global_sid_Builtin in find_builtin_domain

commit 92345f49e3f9c18a21f8a0d5b9af86f383476c4c
Author: Volker Lendecke <[email protected]>
Date:   Mon Dec 28 18:11:34 2009 +0100

    s3: Avoid adding a domain twice
    
    If we found a match with sid==NULL, we ended up adding the domain twice

commit 22a4a000cecb971a16a1303e8b16fb659f5ccdec
Author: Volker Lendecke <[email protected]>
Date:   Mon Dec 28 18:03:14 2009 +0100

    s3: Make free_domain_list() static

commit 583d192e4715e5fa72041e6ea43dbf6c2a559c36
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 30 11:30:13 2009 +0100

    s3: Adapt sid_dup_talloc to README.Coding

commit d05e17f875300615c0b8543291e7e021448ddff1
Author: Volker Lendecke <[email protected]>
Date:   Wed Dec 30 10:25:41 2009 +0100

    s3: Introduce domain_is_forest_root() helper function
    
    Hopefully this makes the flag tests a bit more understandable

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

Summary of changes:
 source3/lib/util_sid.c            |   17 ++++++++-------
 source3/winbindd/winbindd_ads.c   |    7 +----
 source3/winbindd/winbindd_dual.c  |    2 +-
 source3/winbindd/winbindd_proto.h |    2 +-
 source3/winbindd/winbindd_util.c  |   38 +++++++++++++++++++-----------------
 5 files changed, 33 insertions(+), 33 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c
index 639269c..1f47bf3 100644
--- a/source3/lib/util_sid.c
+++ b/source3/lib/util_sid.c
@@ -557,17 +557,18 @@ char *sid_binstring_hex(const DOM_SID *sid)
  Tallocs a duplicate SID. 
 ********************************************************************/ 
 
-DOM_SID *sid_dup_talloc(TALLOC_CTX *ctx, const DOM_SID *src)
+struct dom_sid *sid_dup_talloc(TALLOC_CTX *ctx, const struct dom_sid *src)
 {
-       DOM_SID *dst;
-       
-       if(!src)
+       struct dom_sid *dst;
+
+       if (src == NULL) {
                return NULL;
-       
-       if((dst = TALLOC_ZERO_P(ctx, DOM_SID)) != NULL) {
-               sid_copy( dst, src);
        }
-       
+       dst = talloc_zero(ctx, struct dom_sid);
+       if (dst == NULL) {
+               return NULL;
+       }
+       sid_copy(dst, src);
        return dst;
 }
 
diff --git a/source3/winbindd/winbindd_ads.c b/source3/winbindd/winbindd_ads.c
index b0ca9b8..d15fb86 100644
--- a/source3/winbindd/winbindd_ads.c
+++ b/source3/winbindd/winbindd_ads.c
@@ -1263,7 +1263,6 @@ static NTSTATUS trusted_domains(struct winbindd_domain 
*domain,
        int                     i;
        uint32                  flags;  
        struct rpc_pipe_client *cli;
-       uint32                 fr_flags = (NETR_TRUST_FLAG_IN_FOREST | 
NETR_TRUST_FLAG_TREEROOT);
        int ret_count;
 
        DEBUG(3,("ads: trusted_domains\n"));
@@ -1274,9 +1273,7 @@ static NTSTATUS trusted_domains(struct winbindd_domain 
*domain,
           query for all trusts.  If not, then just look for domain
           trusts in the target forest */
 
-       if ( domain->primary ||
-               ((domain->domain_flags&fr_flags) == fr_flags) ) 
-       {
+       if (domain->primary || domain_is_forest_root(domain)) {
                flags = NETR_TRUST_FLAG_OUTBOUND |
                        NETR_TRUST_FLAG_INBOUND |
                        NETR_TRUST_FLAG_IN_FOREST;
@@ -1354,7 +1351,7 @@ static NTSTATUS trusted_domains(struct winbindd_domain 
*domain,
 
                        wcache_tdc_add_domain( &d );
                        ret_count++;
-               } else if ( (domain->domain_flags&fr_flags) == fr_flags ) {
+               } else if (domain_is_forest_root(domain)) {
                        /* Check if we already have this record. If
                         * we are following our forest root that is not
                         * our primary domain, we want to keep trust
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index bccd63f..74b2b99 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -610,7 +610,7 @@ void winbind_msg_offline(struct messaging_context *msg_ctx,
        }
 
        for (child = children; child != NULL; child = child->next) {
-               /* Don't send message to internal childs.  We've already
+               /* Don't send message to internal children.  We've already
                   done so above. */
                if (!child->domain || winbindd_internal_child(child)) {
                        continue;
diff --git a/source3/winbindd/winbindd_proto.h 
b/source3/winbindd/winbindd_proto.h
index 263e326..93d5748 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -412,7 +412,7 @@ enum winbindd_result 
winbindd_dual_pam_chng_pswd_auth_crap(struct winbindd_domai
 /* The following definitions come from winbindd/winbindd_util.c  */
 
 struct winbindd_domain *domain_list(void);
-void free_domain_list(void);
+bool domain_is_forest_root(const struct winbindd_domain *domain);
 void rescan_trusted_domains(struct tevent_context *ev, struct tevent_timer *te,
                            struct timeval now, void *private_data);
 enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain 
*domain,
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
index 1760382..3e03f40 100644
--- a/source3/winbindd/winbindd_util.c
+++ b/source3/winbindd/winbindd_util.c
@@ -58,7 +58,7 @@ struct winbindd_domain *domain_list(void)
 
 /* Free all entries in the trusted domain list */
 
-void free_domain_list(void)
+static void free_domain_list(void)
 {
        struct winbindd_domain *domain = _domain_list;
 
@@ -143,13 +143,14 @@ static struct winbindd_domain *add_trusted_domain(const 
char *domain_name, const
                }
        }
 
-       /* See if we found a match.  Check if we need to update the
-          SID. */
-
-       if ( domain && sid) {
-               if ( sid_equal( &domain->sid, &global_sid_NULL ) )
+       if (domain != NULL) {
+               /*
+                * We found a match. Possibly update the SID
+                */
+               if ((sid != NULL)
+                   && sid_equal(&domain->sid, &global_sid_NULL)) {
                        sid_copy( &domain->sid, sid );
-
+               }
                return domain;
        }
 
@@ -223,6 +224,14 @@ done:
        return domain;
 }
 
+bool domain_is_forest_root(const struct winbindd_domain *domain)
+{
+       const uint32_t fr_flags =
+               (NETR_TRUST_FLAG_TREEROOT|NETR_TRUST_FLAG_IN_FOREST);
+
+       return ((domain->domain_flags & fr_flags) == fr_flags);
+}
+
 /********************************************************************
   rescan our domains looking for new trusted domains
 ********************************************************************/
@@ -243,8 +252,6 @@ static void add_trusted_domains( struct winbindd_domain 
*domain )
        TALLOC_CTX *mem_ctx;
        struct winbindd_request *request;
        struct winbindd_response *response;
-       uint32 fr_flags = (NETR_TRUST_FLAG_TREEROOT|NETR_TRUST_FLAG_IN_FOREST);
-
        struct trustdom_state *state;
 
        mem_ctx = talloc_init("add_trusted_domains");
@@ -269,7 +276,7 @@ static void add_trusted_domains( struct winbindd_domain 
*domain )
        /* Flags used to know how to continue the forest trust search */
 
        state->primary = domain->primary;
-       state->forest_root = ((domain->domain_flags & fr_flags) == fr_flags );
+       state->forest_root = domain_is_forest_root(domain);
 
        request->length = sizeof(*request);
        request->cmd = WINBINDD_LIST_TRUSTDOM;
@@ -792,23 +799,18 @@ struct winbindd_domain *find_root_domain(void)
 {
        struct winbindd_domain *ours = find_our_domain();
 
-       if ( !ours )
-               return NULL;
-
-       if ( strlen(ours->forest_name) == 0 )
+       if (ours->forest_name[0] == '\0') {
                return NULL;
+       }
 
        return find_domain_from_name( ours->forest_name );
 }
 
 struct winbindd_domain *find_builtin_domain(void)
 {
-       DOM_SID sid;
        struct winbindd_domain *domain;
 
-       string_to_sid(&sid, "S-1-5-32");
-       domain = find_domain_from_sid(&sid);
-
+       domain = find_domain_from_sid(&global_sid_Builtin);
        if (domain == NULL) {
                smb_panic("Could not find BUILTIN domain");
        }


-- 
Samba Shared Repository

Reply via email to