diff options
author | Andrew Bartlett <abartlet@samba.org> | 2006-08-31 13:10:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:16:59 -0500 |
commit | e117323e2f60868b587cad3e4201df2fe198c9d9 (patch) | |
tree | 1507d138b3dc7df15f7dae830bfd1ec9beda18b0 /source4/rpc_server/dssetup/dcesrv_dssetup.c | |
parent | fc7f8236bd35d299efe9a17eff53d75c7509bc37 (diff) | |
download | samba-e117323e2f60868b587cad3e4201df2fe198c9d9.tar.gz samba-e117323e2f60868b587cad3e4201df2fe198c9d9.tar.bz2 samba-e117323e2f60868b587cad3e4201df2fe198c9d9.zip |
r17968: Consolidate the DSSETUP and LSA pipes into a single file, as DSSETUP
is just one call.
This simplifies the one remaining DSSETUP call, and removes another
user of the dnsDomain attribute.
Andrew Bartlett
(This used to be commit 6a54711564b67891c368c09ead3f7389ad40111f)
Diffstat (limited to 'source4/rpc_server/dssetup/dcesrv_dssetup.c')
-rw-r--r-- | source4/rpc_server/dssetup/dcesrv_dssetup.c | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/source4/rpc_server/dssetup/dcesrv_dssetup.c b/source4/rpc_server/dssetup/dcesrv_dssetup.c deleted file mode 100644 index 582b1f6071..0000000000 --- a/source4/rpc_server/dssetup/dcesrv_dssetup.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - endpoint server for the dssetup pipe - - Copyright (C) Andrew Tridgell 2004 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "includes.h" -#include "rpc_server/dcerpc_server.h" -#include "librpc/gen_ndr/ndr_samr.h" -#include "librpc/gen_ndr/ndr_dssetup.h" -#include "rpc_server/common/common.h" -#include "ldb/include/ldb.h" -#include "dsdb/samdb/samdb.h" -#include "db_wrap.h" -/* - dssetup_DsRoleGetPrimaryDomainInformation -*/ -static WERROR dssetup_DsRoleGetPrimaryDomainInformation(struct dcesrv_call_state *dce_call, - TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleGetPrimaryDomainInformation *r) -{ - union dssetup_DsRoleInfo *info; - - info = talloc(mem_ctx, union dssetup_DsRoleInfo); - W_ERROR_HAVE_NO_MEMORY(info); - - switch (r->in.level) { - case DS_ROLE_BASIC_INFORMATION: - { - void *sam_ctx; - const char * const attrs[] = { "dnsDomain", "nTMixedDomain", "objectGUID", "name", NULL }; - int ret; - struct ldb_message **res; - enum dssetup_DsRole role = DS_ROLE_STANDALONE_SERVER; - uint32_t flags = 0; - const char *domain = NULL; - const char *dns_domain = NULL; - const char *forest = NULL; - struct GUID domain_guid; - - ZERO_STRUCT(domain_guid); - - switch (lp_server_role()) { - case ROLE_STANDALONE: - role = DS_ROLE_STANDALONE_SERVER; - break; - case ROLE_DOMAIN_MEMBER: - role = DS_ROLE_MEMBER_SERVER; - break; - case ROLE_DOMAIN_BDC: - role = DS_ROLE_BACKUP_DC; - break; - case ROLE_DOMAIN_PDC: - role = DS_ROLE_PRIMARY_DC; - break; - } - - switch (lp_server_role()) { - case ROLE_STANDALONE: - domain = talloc_strdup(mem_ctx, lp_workgroup()); - W_ERROR_HAVE_NO_MEMORY(domain); - break; - case ROLE_DOMAIN_MEMBER: - domain = talloc_strdup(mem_ctx, lp_workgroup()); - W_ERROR_HAVE_NO_MEMORY(domain); - /* TODO: what is with dns_domain and forest and guid? */ - break; - case ROLE_DOMAIN_BDC: - case ROLE_DOMAIN_PDC: - sam_ctx = samdb_connect(mem_ctx, dce_call->conn->auth_state.session_info); - if (!sam_ctx) { - return WERR_SERVER_UNAVAILABLE; - } - - ret = gendb_search_dn(sam_ctx, mem_ctx, NULL, &res, attrs); - if (ret != 1) { - return WERR_SERVER_UNAVAILABLE; - } - - flags = DS_ROLE_PRIMARY_DS_RUNNING; - - if (samdb_result_uint(res[0], "nTMixedDomain", 0) == 1) { - flags |= DS_ROLE_PRIMARY_DS_MIXED_MODE; - } - - domain = samdb_search_string(sam_ctx, mem_ctx, NULL, "nETBIOSName", - "(&(objectclass=crossRef)(ncName=%s))", - ldb_dn_linearize(mem_ctx, samdb_base_dn(sam_ctx))); - - dns_domain = samdb_result_string(res[0], "dnsDomain", NULL); - forest = samdb_result_string(res[0], "dnsDomain", NULL); - - domain_guid = samdb_result_guid(res[0], "objectGUID"); - flags |= DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT; - break; - } - - info->basic.role = role; - info->basic.flags = flags; - info->basic.domain = domain; - info->basic.dns_domain = dns_domain; - info->basic.forest = forest; - info->basic.domain_guid = domain_guid; - - r->out.info = info; - return WERR_OK; - } - case DS_ROLE_UPGRADE_STATUS: - { - info->upgrade.upgrading = DS_ROLE_NOT_UPGRADING; - info->upgrade.previous_role = DS_ROLE_PREVIOUS_UNKNOWN; - - r->out.info = info; - return WERR_OK; - } - case DS_ROLE_OP_STATUS: - { - info->opstatus.status = DS_ROLE_OP_IDLE; - - r->out.info = info; - return WERR_OK; - } - default: - return WERR_INVALID_PARAM; - } - - return WERR_INVALID_PARAM; -} - - -/***************************************** -NOTE! The remaining calls below were -removed in w2k3, so the DCESRV_FAULT() -replies are the correct implementation. Do -not try and fill these in with anything else -******************************************/ - -/* - dssetup_DsRoleDnsNameToFlatName -*/ -static WERROR dssetup_DsRoleDnsNameToFlatName(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleDnsNameToFlatName *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleDcAsDc -*/ -static WERROR dssetup_DsRoleDcAsDc(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleDcAsDc *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleDcAsReplica -*/ -static WERROR dssetup_DsRoleDcAsReplica(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleDcAsReplica *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleDemoteDc -*/ -static WERROR dssetup_DsRoleDemoteDc(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleDemoteDc *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleGetDcOperationProgress -*/ -static WERROR dssetup_DsRoleGetDcOperationProgress(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleGetDcOperationProgress *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleGetDcOperationResults -*/ -static WERROR dssetup_DsRoleGetDcOperationResults(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleGetDcOperationResults *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleCancel -*/ -static WERROR dssetup_DsRoleCancel(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleCancel *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleServerSaveStateForUpgrade -*/ -static WERROR dssetup_DsRoleServerSaveStateForUpgrade(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleServerSaveStateForUpgrade *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleUpgradeDownlevelServer -*/ -static WERROR dssetup_DsRoleUpgradeDownlevelServer(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleUpgradeDownlevelServer *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* - dssetup_DsRoleAbortDownlevelServerUpgrade -*/ -static WERROR dssetup_DsRoleAbortDownlevelServerUpgrade(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, - struct dssetup_DsRoleAbortDownlevelServerUpgrade *r) -{ - DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR); -} - - -/* include the generated boilerplate */ -#include "librpc/gen_ndr/ndr_dssetup_s.c" |