diff options
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" |