Added free_domain_info() function.
authorTim Potter <tpot@samba.org>
Thu, 15 Nov 2001 03:34:27 +0000 (03:34 +0000)
committerTim Potter <tpot@samba.org>
Thu, 15 Nov 2001 03:34:27 +0000 (03:34 +0000)
Get list of trusted domains if we haven't fetched them yet.
(This used to be commit ed16aa88a422e759d27dbfae39afc72250c80e8d)

source3/nsswitch/winbindd_util.c

index 6a0a5389ef56ff61111eb40342dcff0a53c43740..1b63cd28100cafada7661f714b815a58c3a90aee 100644 (file)
@@ -118,6 +118,27 @@ BOOL get_domain_info(void)
         return rv;
 }
 
+/* Free global domain info */
+
+void free_domain_info(void)
+{
+        struct winbindd_domain *domain;
+
+        /* Free list of domains */
+
+        if (domain_list) {
+                struct winbindd_domain *next_domain;
+
+                domain = domain_list;
+
+                while(domain) {
+                        next_domain = domain->next;
+                        free(domain);
+                        domain = next_domain;
+                }
+        }
+}
+
 /* Connect to a domain controller using get_any_dc_name() to discover 
    the domain name and sid */
 
@@ -420,6 +441,9 @@ struct winbindd_domain *find_domain_from_name(char *domain_name)
 {
        struct winbindd_domain *tmp;
 
+        if (domain_list == NULL)
+                get_domain_info();
+
        /* Search through list */
 
        for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {
@@ -438,6 +462,9 @@ struct winbindd_domain *find_domain_from_sid(DOM_SID *sid)
 {
        struct winbindd_domain *tmp;
 
+        if (domain_list == NULL)
+                get_domain_info();
+
        /* Search through list */
 
        for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {