s4:sites - get the server site (name) from DSDB
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Sun, 18 Oct 2009 09:59:11 +0000 (11:59 +0200)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Sun, 18 Oct 2009 12:33:43 +0000 (14:33 +0200)
source4/cldap_server/netlogon.c
source4/dsdb/common/util.c
source4/rpc_server/netlogon/dcerpc_netlogon.c

index b06fd609f29239bc5a7da767dfc96f767b742860..c565f2fb1ad2ac962464a6a7aa550bffff3e28e5 100644 (file)
@@ -251,8 +251,8 @@ NTSTATUS fill_netlogon_samlogon_response(struct ldb_context *sam_ctx,
                                           dns_domain);
 
        flatname         = lp_sam_name(lp_ctx);
-       /* FIXME: Hardcoded site names */
-       server_site      = "Default-First-Site-Name";
+       server_site      = samdb_server_site_name(sam_ctx, mem_ctx);
+       /* FIXME: Hardcoded site name */
        client_site      = "Default-First-Site-Name";
        load_interfaces(mem_ctx, lp_interfaces(lp_ctx), &ifaces);
        pdc_ip           = iface_best_ip(ifaces, src_address);
index c9562b0de73187824476d6aac888a9616e50cc8e..ace8e185ab443363e40b98d61929938569575e0c 100644 (file)
@@ -1432,6 +1432,16 @@ struct ldb_dn *samdb_server_site_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx
        return server_site_dn;
 }
 
+const char *samdb_server_site_name(struct ldb_context *ldb, TALLOC_CTX *mem_ctx)
+{
+       const struct ldb_val *val = ldb_dn_get_rdn_val(samdb_server_site_dn(ldb, mem_ctx));
+
+       if (val != NULL)
+               return (const char *) val->data;
+       else
+               return NULL;
+}
+
 /*
   work out if we are the PDC for the domain of the current open ldb
 */
index 3eaa64d82bfddd79ae936b1d90b0a54f7be79fed..f04f4be59c1cc4aa09d46aaf30d76dc4e40931ce 100644 (file)
@@ -1457,8 +1457,9 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call, TA
                                          DS_SERVER_LDAP |
                                          DS_SERVER_GC |
                                          DS_SERVER_PDC;
-       info->dc_site_name      = talloc_strdup(mem_ctx, "Default-First-Site-Name");
+       info->dc_site_name      = samdb_server_site_name(sam_ctx, mem_ctx);
        W_ERROR_HAVE_NO_MEMORY(info->dc_site_name);
+       /* FIXME: Hardcoded site name */
        info->client_site_name  = talloc_strdup(mem_ctx, "Default-First-Site-Name");
        W_ERROR_HAVE_NO_MEMORY(info->client_site_name);
 
@@ -1561,6 +1562,7 @@ static WERROR dcesrv_netr_DsRAddressToSitenamesExW(struct dcesrv_call_state *dce
        W_ERROR_HAVE_NO_MEMORY(ctr->subnetname);
 
        for (i=0; i<ctr->count; i++) {
+               /* FIXME: Hardcoded site name */
                ctr->sitename[i].string   = "Default-First-Site-Name";
                ctr->subnetname[i].string = NULL;
        }