diff options
author | Andreas Schneider <asn@samba.org> | 2012-12-06 14:31:45 +0100 |
---|---|---|
committer | Jim McDonough <jmcd@samba.org> | 2012-12-07 22:38:43 +0100 |
commit | df0f59f66cca61eee967e89dc659af4ba33f0e6f (patch) | |
tree | 5239b378ac880f9aa5ff03bc9a6ed55dc998369b | |
parent | 16d725b4f5ed77db865e2a3c27ae0eb4accca5a8 (diff) | |
download | samba-df0f59f66cca61eee967e89dc659af4ba33f0e6f.tar.gz samba-df0f59f66cca61eee967e89dc659af4ba33f0e6f.tar.bz2 samba-df0f59f66cca61eee967e89dc659af4ba33f0e6f.zip |
winbind: Make the code more readable in trustdom_list_done().
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Jim McDonough <jmcd@samba.org>
Autobuild-User(master): Jim McDonough <jmcd@samba.org>
Autobuild-Date(master): Fri Dec 7 22:38:43 CET 2012 on sn-devel-104
-rw-r--r-- | source3/winbindd/winbindd_util.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index 6e13ca8ba7..c32feb8951 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -303,6 +303,7 @@ static void trustdom_list_done(struct tevent_req *req) struct dom_sid sid; struct winbindd_domain *domain; char *alternate_name = NULL; + bool domain_exists; alt_name = strchr(p, '\\'); if (alt_name == NULL) { @@ -336,22 +337,25 @@ static void trustdom_list_done(struct tevent_req *req) if ( !strequal( alt_name, "(null)" ) ) alternate_name = alt_name; - /* If we have an existing domain structure, calling - add_trusted_domain() will update the SID if - necessary. This is important because we need the - SID for sibling domains */ + /* Check if we already have a child for the domain */ + domain_exists = (find_domain_from_name_noinit(p) != NULL); - if ( find_domain_from_name_noinit(p) != NULL ) { - domain = add_trusted_domain(p, alternate_name, - &cache_methods, - &sid); - } else { - domain = add_trusted_domain(p, alternate_name, - &cache_methods, - &sid); - if (domain) { - setup_domain_child(domain); - } + /* + * We always call add_trusted_domain() cause on an existing + * domain structure, it will update the SID if necessary. + * This is important because we need the SID for sibling + * domains. + */ + domain = add_trusted_domain(p, alternate_name, + &cache_methods, + &sid); + + /* + * If the domain doesn't exist yet and got correctly added, + * setup a new domain child. + */ + if (!domain_exists && domain != NULL) { + setup_domain_child(domain); } p=q; if (p != NULL) |