summaryrefslogtreecommitdiff
path: root/source4/rpc_server/drsuapi
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-12-14 07:18:58 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:07:26 -0500
commit75f02f9d4daf4a16b408ce145f841f11d4b0ca67 (patch)
tree330368c63a486998590a55147dc7a0d871d51397 /source4/rpc_server/drsuapi
parent4d545e09c899dd63dfc055d05dd871c7df8638a5 (diff)
downloadsamba-75f02f9d4daf4a16b408ce145f841f11d4b0ca67.tar.gz
samba-75f02f9d4daf4a16b408ce145f841f11d4b0ca67.tar.bz2
samba-75f02f9d4daf4a16b408ce145f841f11d4b0ca67.zip
r4203: the bind_info blob isn't a const.
here's the idl to parse it, because we don't want the callers to manually de/encode this metze (This used to be commit 983f74c3651759991378b0d7b13b0952d77b3544)
Diffstat (limited to 'source4/rpc_server/drsuapi')
-rw-r--r--source4/rpc_server/drsuapi/dcesrv_drsuapi.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
index a8c48d6805..5539c9117f 100644
--- a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
+++ b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
@@ -42,8 +42,8 @@ static WERROR drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem
{
struct drsuapi_bind_state *b_state;
struct dcesrv_handle *handle;
- struct drsuapi_DsBindInfo *bind_info;
- const uint8_t bind_info_data[] = DRSUAPI_DS_BIND_INFO_RESPONSE_W2K3;
+ struct drsuapi_DsBindInfoCtr *bind_info;
+ struct GUID site_guid;
r->out.bind_info = NULL;
ZERO_STRUCTP(r->out.bind_handle);
@@ -66,12 +66,16 @@ static WERROR drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem
handle->data = b_state;
handle->destroy = drsuapi_handle_destroy;
- bind_info = talloc_p(mem_ctx, struct drsuapi_DsBindInfo);
+ bind_info = talloc_p(mem_ctx, struct drsuapi_DsBindInfoCtr);
WERR_TALLOC_CHECK(bind_info);
-
- bind_info->length = sizeof(bind_info_data);
- bind_info->data = talloc_memdup(mem_ctx, bind_info_data, sizeof(bind_info_data));
- WERR_TALLOC_CHECK(bind_info->data);
+
+ ZERO_STRUCT(site_guid);
+
+ bind_info->length = 28;
+ bind_info->info.info28.supported_extensions = 0;
+ bind_info->info.info28.site_guid = site_guid;
+ bind_info->info.info28.u1 = 0;
+ bind_info->info.info28.repl_epoch = 0;
r->out.bind_info = bind_info;
*r->out.bind_handle = handle->wire_handle;
@@ -109,8 +113,9 @@ static WERROR drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
static WERROR drsuapi_DsReplicaSync(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsReplicaSync *r)
{
- /* TODO: implment this call correct!
- * for now we just say yes
+ /* TODO: implement this call correct!
+ * for now we just say yes,
+ * because we have no output parameter
*/
return WERR_OK;
}