Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}