NTSTATUS wbsrv_samba3_process(void *private_data, DATA_BLOB blob) { NTSTATUS status; struct wbsrv_connection *wbconn = talloc_get_type(private_data, struct wbsrv_connection); struct wbsrv_samba3_call *call; status = wbsrv_samba3_pull_request(blob, wbconn, &call); if (!NT_STATUS_IS_OK(status)) { return status; } status = wbsrv_samba3_handle_call(call); if (!NT_STATUS_IS_OK(status)) { talloc_free(call); return status; } if (call->flags & WBSRV_CALL_FLAGS_REPLY_ASYNC) { return NT_STATUS_OK; } status = wbsrv_samba3_send_reply(call); return status; }
NTSTATUS wbsrv_samba3_process(struct wbsrv_samba3_call *call) { NTSTATUS status; status = wbsrv_samba3_pull_request(call); if (!NT_STATUS_IS_OK(status)) { return status; } status = wbsrv_samba3_handle_call(call); if (!NT_STATUS_IS_OK(status)) { talloc_free(call); return status; } if (call->flags & WBSRV_CALL_FLAGS_REPLY_ASYNC) { return NT_STATUS_OK; } status = wbsrv_samba3_send_reply(call); return status; }