#include "includes.h"
#include "rpc_server/dcerpc_server.h"
+#include "rpc_server/dcerpc_server_proto.h"
#include "librpc/gen_ndr/ndr_mgmt.h"
-#include "rpc_server/common/common.h"
+
+#define DCESRV_INTERFACE_MGMT_BIND(call, iface) \
+ dcesrv_interface_mgmt_bind(call, iface)
+/*
+ * This #define allows the mgmt interface to accept invalid
+ * association groups, because association groups are to coordinate
+ * handles, and handles are not used in mgmt. This in turn avoids
+ * the need to coordinate these across multiple possible NETLOGON
+ * processes, as an mgmt interface is added to each
+ */
+
+#define DCESRV_INTERFACE_MGMT_FLAGS DCESRV_INTERFACE_FLAGS_HANDLES_NOT_USED
+
+static NTSTATUS dcesrv_interface_mgmt_bind(struct dcesrv_call_state *dce_call,
+ const struct dcesrv_interface *iface)
+{
+ return dcesrv_interface_bind_allow_connect(dce_call, iface);
+}
/*
mgmt_inq_if_ids
vector->if_id = NULL;
for (l = ep->interface_list; l; l = l->next) {
vector->count++;
- vector->if_id = talloc_realloc(mem_ctx, vector->if_id, struct dcerpc_syntax_id_p, vector->count);
+ vector->if_id = talloc_realloc(mem_ctx, vector->if_id, struct ndr_syntax_id_p, vector->count);
vector->if_id[vector->count-1].id = &l->iface.syntax_id;
}
return WERR_OK;
/* include the generated boilerplate */
#include "librpc/gen_ndr/ndr_mgmt_s.c"
+
+const struct dcesrv_interface dcesrv_get_mgmt_interface(void)
+{
+ return dcesrv_mgmt_interface;
+}