Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
struct dcesrv_context *dce_ctx,
struct dcesrv_context_callbacks *cb);
+/*
+ * Use dcesrv_async_reply() in async code
+ */
NTSTATUS dcesrv_reply(struct dcesrv_call_state *call);
+void _dcesrv_async_reply(struct dcesrv_call_state *call,
+ const char *func,
+ const char *location);
+#define dcesrv_async_reply(__call) \
+ _dcesrv_async_reply(__call, __func__, __location__)
+
struct dcesrv_handle *dcesrv_handle_create(struct dcesrv_call_state *call,
uint8_t handle_type);
return NT_STATUS_OK;
}
+
+_PUBLIC_ void _dcesrv_async_reply(struct dcesrv_call_state *call,
+ const char *func,
+ const char *location)
+{
+ struct dcesrv_connection *conn = call->conn;
+ NTSTATUS status;
+
+ status = dcesrv_reply(call);
+ if (!NT_STATUS_IS_OK(status)) {
+ D_ERR("%s: %s: dcesrv_async_reply() failed - %s\n",
+ func, location, nt_errstr(status));
+ dcesrv_terminate_connection(conn, nt_errstr(status));
+ }
+}