Show
Ignore:
Timestamp:
07/11/08 01:13:42 (5 months ago)
Author:
psmedley
Message:

Update branch to 3.0.31 release

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/samba-3.0/source/nsswitch/winbindd_dual.c

    r134 r140  
    3636 
    3737extern BOOL override_logfile; 
    38 extern struct winbindd_methods cache_methods; 
    3938 
    4039/* Read some data from a client connection */ 
     
    888887        struct winbindd_cli_state state; 
    889888        struct winbindd_domain *domain; 
     889        struct winbindd_domain *primary_domain = NULL; 
    890890 
    891891        if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdpair) != 0) { 
     
    967967 
    968968        /* Ensure we have no pending check_online events other 
    969            than one for this domain. */ 
     969           than one for this domain or the primary domain. */ 
    970970 
    971971        for (domain = domain_list(); domain; domain = domain->next) { 
    972                 if (domain != child->domain) { 
     972                if (domain->primary) { 
     973                        primary_domain = domain; 
     974                } 
     975                if ((domain != child->domain) && !domain->primary) { 
    973976                        TALLOC_FREE(domain->check_online_event); 
    974977                } 
     
    986989 
    987990                set_domain_online_request(child->domain); 
     991 
     992                if (primary_domain != child->domain) { 
     993                        /* We need to talk to the primary 
     994                         * domain as well as the trusted 
     995                         * domain inside a trusted domain 
     996                         * child. 
     997                         * See the code in : 
     998                         * winbindd_dual_pam_auth_samlogon() 
     999                         * especially the calling of  
     1000                         * contact_domain = find_our_domain() 
     1001                         * in the non-DC case for details. 
     1002                         */ 
     1003                        set_domain_online_request(primary_domain); 
     1004                } 
    9881005 
    9891006                child->lockout_policy_event = event_add_timed( 
     
    9941011        } 
    9951012 
    996         /* Special case for Winbindd on a Samba DC, 
    997          * We want to make sure the child can connect to smbd 
    998          * but not the main daemon */ 
    999  
    1000         if (child->domain && child->domain->internal && IS_DC) { 
    1001                 child->domain->methods = &cache_methods; 
    1002                 child->domain->online = False; 
    1003         } 
    1004  
    10051013        while (1) { 
    10061014 
     
    10161024 
    10171025                /* check for signals */ 
    1018                 winbind_check_sigterm(); 
     1026                winbind_check_sigterm(false); 
    10191027                winbind_check_sighup(); 
    10201028