Ignore:
Timestamp:
Apr 10, 2007, 5:27:38 AM (14 years ago)
Author:
Paul Smedley
Message:

Updated source to 3.0.25rc1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/samba/source/rpc_server/srv_lsa_ds_nt.c

    r1 r26  
    3737{
    3838        DSROLE_PRIMARY_DOMAIN_INFO_BASIC *basic;
    39         const char *netbios_domain;
     39        const char *netbios_domain = "";
    4040        fstring dnsdomain;
    4141
     
    4747        }
    4848
    49         get_mydnsdomname(dnsdomain);
    50         strlower_m(dnsdomain);
    51 
    5249        switch ( lp_server_role() ) {
    5350                case ROLE_STANDALONE:
    5451                        basic->machine_role = DSROLE_STANDALONE_SRV;
     52                        basic->netbios_ptr = 1;
     53                        netbios_domain = get_global_sam_name();
    5554                        break;
    5655                case ROLE_DOMAIN_MEMBER:
     56                        basic->netbios_ptr = 1;
     57                        netbios_domain = lp_workgroup();
    5758                        basic->machine_role = DSROLE_DOMAIN_MEMBER_SRV;
    5859                        break;
    5960                case ROLE_DOMAIN_BDC:
     61                        basic->netbios_ptr = 1;
     62                        netbios_domain = get_global_sam_name();
    6063                        basic->machine_role = DSROLE_BDC;
    61                         basic->flags = DSROLE_PRIMARY_DS_RUNNING|DSROLE_PRIMARY_DS_MIXED_MODE;
    62                         if ( secrets_fetch_domain_guid( lp_workgroup(), &basic->domain_guid ) )
    63                                 basic->flags |= DSROLE_PRIMARY_DOMAIN_GUID_PRESENT;
    6464                        break;
    6565                case ROLE_DOMAIN_PDC:
     66                        basic->netbios_ptr = 1;
     67                        netbios_domain = get_global_sam_name();
    6668                        basic->machine_role = DSROLE_PDC;
    67                         basic->flags = DSROLE_PRIMARY_DS_RUNNING|DSROLE_PRIMARY_DS_MIXED_MODE;
    68                         if ( secrets_fetch_domain_guid( lp_workgroup(), &basic->domain_guid ) )
    69                                 basic->flags |= DSROLE_PRIMARY_DOMAIN_GUID_PRESENT;
    7069                        break;
    7170        }
    7271
    73         basic->unknown = 0x6173;                /* seen on the wire; maybe padding */
    74 
    7572        /* always set netbios name */
    7673
    77         basic->netbios_ptr = 1;
    78         netbios_domain = get_global_sam_name();
    79         init_unistr2( &basic->netbios_domain, netbios_domain, UNI_FLAGS_NONE);
     74        init_unistr2( &basic->netbios_domain, netbios_domain, UNI_STR_TERMINATE);
    8075
    81         basic->dnsname_ptr = 1;
    82         init_unistr2( &basic->dns_domain, dnsdomain, UNI_FLAGS_NONE);
    83         basic->forestname_ptr = 1;
    84         init_unistr2( &basic->forest_domain, dnsdomain, UNI_FLAGS_NONE);
    85        
     76        if ( secrets_fetch_domain_guid( lp_workgroup(), &basic->domain_guid ) )
     77                basic->flags |= DSROLE_PRIMARY_DOMAIN_GUID_PRESENT;
    8678
    8779        /* fill in some additional fields if we are a member of an AD domain */
    8880
    89         if ( lp_security() == SEC_ADS ) {       
    90                 /* TODO */
    91                 ;;
     81        if ( lp_security() == SEC_ADS ) {
     82                fstrcpy( dnsdomain, lp_realm() );
     83                strlower_m( dnsdomain );
     84               
     85                basic->dnsname_ptr = 1;
     86                init_unistr2( &basic->dns_domain, dnsdomain, UNI_STR_TERMINATE);
     87                basic->forestname_ptr = 1;
     88                init_unistr2( &basic->forest_domain, dnsdomain, UNI_STR_TERMINATE);
     89        } else {
     90                get_mydnsdomname(dnsdomain);
     91                strlower_m(dnsdomain);
     92
     93                basic->dnsname_ptr = 1;
     94                init_unistr2( &basic->dns_domain, dnsdomain, UNI_FLAGS_NONE);
     95                basic->forestname_ptr = 1;
     96                init_unistr2( &basic->forest_domain, dnsdomain, UNI_FLAGS_NONE);
    9297        }
    9398
Note: See TracChangeset for help on using the changeset viewer.