static NTSTATUS dcesrv_interface_backupkey_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_require_privacy(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_require_privacy(context, iface);
}
static NTSTATUS set_lsa_secret(TALLOC_CTX *mem_ctx,
static NTSTATUS dcesrv_interface_backupkey_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_require_privacy(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_require_privacy(context, iface);
}
static const unsigned rsa_with_var_num[] = { 1, 2, 840, 113549, 1, 1, 1 };
context->allow_connect);
}
-NTSTATUS dcesrv_interface_bind_require_integrity(struct dcesrv_call_state *dce_call,
+NTSTATUS dcesrv_interface_bind_require_integrity(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface)
{
- if (dce_call->context == NULL) {
- return NT_STATUS_INTERNAL_ERROR;
- }
-
/*
* For connection oriented DCERPC DCERPC_AUTH_LEVEL_PACKET (4)
* has the same behavior as DCERPC_AUTH_LEVEL_INTEGRITY (5).
*/
- dce_call->context->min_auth_level = DCERPC_AUTH_LEVEL_PACKET;
+ context->min_auth_level = DCERPC_AUTH_LEVEL_PACKET;
return NT_STATUS_OK;
}
-NTSTATUS dcesrv_interface_bind_require_privacy(struct dcesrv_call_state *dce_call,
+NTSTATUS dcesrv_interface_bind_require_privacy(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface)
{
- if (dce_call->context == NULL) {
- return NT_STATUS_INTERNAL_ERROR;
- }
-
- dce_call->context->min_auth_level = DCERPC_AUTH_LEVEL_PRIVACY;
+ context->min_auth_level = DCERPC_AUTH_LEVEL_PRIVACY;
return NT_STATUS_OK;
}
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_reject_connect(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_reject_connect(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface)
{
- struct loadparm_context *lp_ctx = dce_call->conn->dce_ctx->lp_ctx;
- const struct dcesrv_endpoint *endpoint = dce_call->conn->endpoint;
+ struct loadparm_context *lp_ctx = context->conn->dce_ctx->lp_ctx;
+ const struct dcesrv_endpoint *endpoint = context->conn->endpoint;
enum dcerpc_transport_t transport =
dcerpc_binding_get_transport(endpoint->ep_description);
- struct dcesrv_connection_context *context = dce_call->context;
-
- if (context == NULL) {
- return NT_STATUS_INTERNAL_ERROR;
- }
if (transport == NCALRPC) {
context->allow_connect = true;
return NT_STATUS_OK;
}
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_allow_connect(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_allow_connect(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface)
{
- struct loadparm_context *lp_ctx = dce_call->conn->dce_ctx->lp_ctx;
- const struct dcesrv_endpoint *endpoint = dce_call->conn->endpoint;
+ struct loadparm_context *lp_ctx = context->conn->dce_ctx->lp_ctx;
+ const struct dcesrv_endpoint *endpoint = context->conn->endpoint;
enum dcerpc_transport_t transport =
dcerpc_binding_get_transport(endpoint->ep_description);
- struct dcesrv_connection_context *context = dce_call->context;
-
- if (context == NULL) {
- return NT_STATUS_INTERNAL_ERROR;
- }
if (transport == NCALRPC) {
context->allow_connect = true;
enum dcerpc_AuthType *auth_type,
enum dcerpc_AuthLevel *auth_level);
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_require_integrity(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_require_integrity(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface);
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_require_privacy(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_require_privacy(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface);
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_reject_connect(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_reject_connect(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface);
-_PUBLIC_ NTSTATUS dcesrv_interface_bind_allow_connect(struct dcesrv_call_state *dce_call,
+_PUBLIC_ NTSTATUS dcesrv_interface_bind_allow_connect(struct dcesrv_connection_context *context,
const struct dcesrv_interface *iface);
_PUBLIC_ NTSTATUS _dcesrv_iface_state_store_assoc(
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);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_allow_connect(context, iface);
}
/*
static NTSTATUS dcesrv_interface_dnsserver_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_require_integrity(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_require_integrity(context, iface);
}
#define DNSSERVER_STATE_MAGIC 0xc9657ab4
static NTSTATUS dcesrv_interface_drsuapi_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_require_privacy(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_require_privacy(context, iface);
}
/*
static NTSTATUS dcesrv_interface_rpcecho_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_allow_connect(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_allow_connect(context, iface);
}
static NTSTATUS dcesrv_echo_AddOne(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct echo_AddOne *r)
static NTSTATUS dcesrv_interface_epmapper_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_allow_connect(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_allow_connect(context, iface);
}
typedef uint32_t error_status_t;
static NTSTATUS dcesrv_interface_lsarpc_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_reject_connect(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_reject_connect(context, iface);
}
static NTSTATUS lsarpc__op_init_server(struct dcesrv_context *dce_ctx,
static NTSTATUS dcesrv_interface_netlogon_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_reject_connect(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_reject_connect(context, iface);
}
#define NETLOGON_SERVER_PIPE_STATE_MAGIC 0x4f555358
static NTSTATUS dcesrv_interface_samr_bind(struct dcesrv_call_state *dce_call,
const struct dcesrv_interface *iface)
{
- return dcesrv_interface_bind_reject_connect(dce_call, iface);
+ struct dcesrv_connection_context *context = dce_call->context;
+ return dcesrv_interface_bind_reject_connect(context, iface);
}
/* these query macros make samr_Query[User|Group|Alias]Info a bit easier to read */