summaryrefslogtreecommitdiff
path: root/source4/rpc_server
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-10-15 11:08:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:55 -0500
commit1890e6a6593d3ddb6bcbda8446e02169e97e9030 (patch)
tree4f750b4e8508e26418290e167a39d47d10e50704 /source4/rpc_server
parentf4e4989cb79dfe7fb2317ca8072f34b66895a696 (diff)
downloadsamba-1890e6a6593d3ddb6bcbda8446e02169e97e9030.tar.gz
samba-1890e6a6593d3ddb6bcbda8446e02169e97e9030.tar.bz2
samba-1890e6a6593d3ddb6bcbda8446e02169e97e9030.zip
r2992: drsuapi uses WERROR not NTSTATUS
metze (This used to be commit 757f67c08b0b1309d8a0b900539111c7bc430b0e)
Diffstat (limited to 'source4/rpc_server')
-rw-r--r--source4/rpc_server/drsuapi/dcesrv_drsuapi.c62
-rw-r--r--source4/rpc_server/drsuapi/drsuapi_cracknames.c36
2 files changed, 48 insertions, 50 deletions
diff --git a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
index 9b9f4df3fc..42022dea01 100644
--- a/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
+++ b/source4/rpc_server/drsuapi/dcesrv_drsuapi.c
@@ -35,7 +35,7 @@ static void drsuapi_handle_destroy(struct dcesrv_connection *conn, struct dcesrv
/*
drsuapi_DsBind
*/
-static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsBind *r)
{
struct drsuapi_bind_state *b_state;
@@ -45,16 +45,14 @@ static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
ZERO_STRUCTP(r->out.bind_handle);
b_state = talloc_p(dce_call->conn, struct drsuapi_bind_state);
- if (!b_state) {
- return NT_STATUS_NO_MEMORY;
- }
+ WERR_TALLOC_CHECK(b_state);
/* TODO: fill b_state here */
handle = dcesrv_handle_new(dce_call->conn, DRSUAPI_BIND_HANDLE);
if (!handle) {
talloc_free(b_state);
- return NT_STATUS_NO_MEMORY;
+ return WERR_NOMEM;
}
handle->data = b_state;
@@ -62,21 +60,21 @@ static NTSTATUS drsuapi_DsBind(struct dcesrv_call_state *dce_call, TALLOC_CTX *m
*r->out.bind_handle = handle->wire_handle;
- return NT_STATUS_OK;
+ return WERR_OK;
}
/*
drsuapi_DsUnbind
*/
-static NTSTATUS drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsUnbind *r)
{
struct dcesrv_handle *h;
*r->out.bind_handle = *r->in.bind_handle;
- DCESRV_PULL_HANDLE(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
+ DCESRV_PULL_HANDLE_WERR(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
/* this causes the callback drsuapi_handle_destroy() to be called by
the handle destroy code which destroys the state associated
@@ -85,14 +83,14 @@ static NTSTATUS drsuapi_DsUnbind(struct dcesrv_call_state *dce_call, TALLOC_CTX
ZERO_STRUCTP(r->out.bind_handle);
- return NT_STATUS_OK;
+ return WERR_OK;
}
/*
DRSUAPI_REPLICA_SYNC
*/
-static NTSTATUS DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REPLICA_SYNC *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -102,7 +100,7 @@ static NTSTATUS DRSUAPI_REPLICA_SYNC(struct dcesrv_call_state *dce_call, TALLOC_
/*
DRSUAPI_GET_NC_CHANGES
*/
-static NTSTATUS DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_NC_CHANGES *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -112,7 +110,7 @@ static NTSTATUS DRSUAPI_GET_NC_CHANGES(struct dcesrv_call_state *dce_call, TALLO
/*
DRSUAPI_UPDATE_REFS
*/
-static NTSTATUS DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_UPDATE_REFS *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -122,7 +120,7 @@ static NTSTATUS DRSUAPI_UPDATE_REFS(struct dcesrv_call_state *dce_call, TALLOC_C
/*
DRSUAPI_REPLICA_ADD
*/
-static NTSTATUS DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REPLICA_ADD *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -132,7 +130,7 @@ static NTSTATUS DRSUAPI_REPLICA_ADD(struct dcesrv_call_state *dce_call, TALLOC_C
/*
DRSUAPI_REPLICA_DEL
*/
-static NTSTATUS DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REPLICA_DEL *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -142,7 +140,7 @@ static NTSTATUS DRSUAPI_REPLICA_DEL(struct dcesrv_call_state *dce_call, TALLOC_C
/*
DRSUAPI_REPLICA_MODIFY
*/
-static NTSTATUS DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REPLICA_MODIFY *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -152,7 +150,7 @@ static NTSTATUS DRSUAPI_REPLICA_MODIFY(struct dcesrv_call_state *dce_call, TALLO
/*
DRSUAPI_VERIFY_NAMES
*/
-static NTSTATUS DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_VERIFY_NAMES *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -162,7 +160,7 @@ static NTSTATUS DRSUAPI_VERIFY_NAMES(struct dcesrv_call_state *dce_call, TALLOC_
/*
DRSUAPI_GET_MEMBERSHIPS
*/
-static NTSTATUS DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_MEMBERSHIPS *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -172,7 +170,7 @@ static NTSTATUS DRSUAPI_GET_MEMBERSHIPS(struct dcesrv_call_state *dce_call, TALL
/*
DRSUAPI_INTER_DOMAIN_MOVE
*/
-static NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_INTER_DOMAIN_MOVE *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -182,7 +180,7 @@ static NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(struct dcesrv_call_state *dce_call, TA
/*
DRSUAPI_GET_NT4_CHANGELOG
*/
-static NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_NT4_CHANGELOG *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -192,13 +190,13 @@ static NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(struct dcesrv_call_state *dce_call, TA
/*
drsuapi_DsCrackNames => drsuapip_cracknames.c
*/
-static NTSTATUS (*drsuapi_DsCrackNames)(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR (*drsuapi_DsCrackNames)(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsCrackNames *r) = dcesrv_drsuapi_DsCrackNames;
/*
DRSUAPI_WRITE_SPN
*/
-static NTSTATUS DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_WRITE_SPN *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -208,7 +206,7 @@ static NTSTATUS DRSUAPI_WRITE_SPN(struct dcesrv_call_state *dce_call, TALLOC_CTX
/*
DRSUAPI_REMOVE_DS_SERVER
*/
-static NTSTATUS DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REMOVE_DS_SERVER *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -218,7 +216,7 @@ static NTSTATUS DRSUAPI_REMOVE_DS_SERVER(struct dcesrv_call_state *dce_call, TAL
/*
DRSUAPI_REMOVE_DS_DOMAIN
*/
-static NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REMOVE_DS_DOMAIN *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -228,7 +226,7 @@ static NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(struct dcesrv_call_state *dce_call, TAL
/*
drsuapi_DsGetDomainControllerInfo
*/
-static NTSTATUS drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsGetDomainControllerInfo *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -238,7 +236,7 @@ static NTSTATUS drsuapi_DsGetDomainControllerInfo(struct dcesrv_call_state *dce_
/*
DRSUAPI_ADD_ENTRY
*/
-static NTSTATUS DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_ADD_ENTRY *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -248,7 +246,7 @@ static NTSTATUS DRSUAPI_ADD_ENTRY(struct dcesrv_call_state *dce_call, TALLOC_CTX
/*
DRSUAPI_EXECUTE_KCC
*/
-static NTSTATUS DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_EXECUTE_KCC *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -258,7 +256,7 @@ static NTSTATUS DRSUAPI_EXECUTE_KCC(struct dcesrv_call_state *dce_call, TALLOC_C
/*
DRSUAPI_GET_REPL_INFO
*/
-static NTSTATUS DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_REPL_INFO *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -268,7 +266,7 @@ static NTSTATUS DRSUAPI_GET_REPL_INFO(struct dcesrv_call_state *dce_call, TALLOC
/*
DRSUAPI_ADD_SID_HISTORY
*/
-static NTSTATUS DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_ADD_SID_HISTORY *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -278,7 +276,7 @@ static NTSTATUS DRSUAPI_ADD_SID_HISTORY(struct dcesrv_call_state *dce_call, TALL
/*
DRSUAPI_GET_MEMBERSHIPS2
*/
-static NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_MEMBERSHIPS2 *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -288,7 +286,7 @@ static NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(struct dcesrv_call_state *dce_call, TAL
/*
DRSUAPI_REPLICA_VERIFY_OBJECTS
*/
-static NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -298,7 +296,7 @@ static NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(struct dcesrv_call_state *dce_cal
/*
DRSUAPI_GET_OBJECT_EXISTENCE
*/
-static NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
@@ -308,7 +306,7 @@ static NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(struct dcesrv_call_state *dce_call,
/*
DRSUAPI_QUERY_SITES_BY_COST
*/
-static NTSTATUS DRSUAPI_QUERY_SITES_BY_COST(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+static WERROR DRSUAPI_QUERY_SITES_BY_COST(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct DRSUAPI_QUERY_SITES_BY_COST *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
diff --git a/source4/rpc_server/drsuapi/drsuapi_cracknames.c b/source4/rpc_server/drsuapi/drsuapi_cracknames.c
index 1a31d541ba..45b1b362c7 100644
--- a/source4/rpc_server/drsuapi/drsuapi_cracknames.c
+++ b/source4/rpc_server/drsuapi/drsuapi_cracknames.c
@@ -26,7 +26,7 @@
#include "rpc_server/drsuapi/dcesrv_drsuapi.h"
-static NTSTATUS DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CTX *mem_ctx,
+static WERROR DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CTX *mem_ctx,
uint32 format_offered, uint32 format_desired, const char *name,
struct drsuapi_DsNameInfo1 *info1)
{
@@ -41,53 +41,53 @@ static NTSTATUS DsCrackNameOneName(struct drsuapi_bind_state *b_state, TALLOC_CT
char *str;
str = talloc_asprintf(mem_ctx, "%s/", lp_realm());
- NTSTATUS_TALLOC_CHECK(str);
+ WERR_TALLOC_CHECK(str);
ret = strcasecmp(str, name);
talloc_free(str);
if (ret != 0) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
- return NT_STATUS_OK;
+ return WERR_OK;
}
info1->status = DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY;
info1->dns_domain_name = talloc_asprintf(mem_ctx, "%s", lp_realm());
- NTSTATUS_TALLOC_CHECK(info1->dns_domain_name);
+ WERR_TALLOC_CHECK(info1->dns_domain_name);
switch (format_desired) {
case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT:
info1->status = DRSUAPI_DS_NAME_STATUS_OK;
info1->result_name = talloc_asprintf(mem_ctx, "%s\\",
lp_workgroup());
- NTSTATUS_TALLOC_CHECK(info1->result_name);
- return NT_STATUS_OK;
+ WERR_TALLOC_CHECK(info1->result_name);
+ return WERR_OK;
default:
- return NT_STATUS_OK;
+ return WERR_OK;
}
- return NT_STATUS_INVALID_PARAMETER;
+ return WERR_INVALID_PARAM;
}
default: {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
- return NT_STATUS_OK;
+ return WERR_OK;
}
}
- return NT_STATUS_INVALID_PARAMETER;
+ return WERR_INVALID_PARAM;
}
/*
drsuapi_DsCrackNames
*/
-NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+WERROR dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct drsuapi_DsCrackNames *r)
{
- NTSTATUS status;
+ WERROR status;
struct drsuapi_bind_state *b_state;
struct dcesrv_handle *h;
r->out.level = r->in.level;
ZERO_STRUCT(r->out.ctr);
- DCESRV_PULL_HANDLE(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
+ DCESRV_PULL_HANDLE_WERR(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
b_state = h->data;
switch (r->in.level) {
@@ -97,14 +97,14 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
int i;
r->out.ctr.ctr1 = talloc_p(mem_ctx, struct drsuapi_DsNameCtr1);
- NTSTATUS_TALLOC_CHECK(r->out.ctr.ctr1);
+ WERR_TALLOC_CHECK(r->out.ctr.ctr1);
r->out.ctr.ctr1->count = 0;
r->out.ctr.ctr1->array = NULL;
count = r->in.req.req1.count;
names = talloc_array_p(mem_ctx, struct drsuapi_DsNameInfo1, count);
- NTSTATUS_TALLOC_CHECK(names);
+ WERR_TALLOC_CHECK(names);
for (i=0; i < count; i++) {
status = DsCrackNameOneName(b_state, mem_ctx,
@@ -112,7 +112,7 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
r->in.req.req1.format_desired,
r->in.req.req1.names[i].str,
&names[i]);
- if (!NT_STATUS_IS_OK(status)) {
+ if (!W_ERROR_IS_OK(status)) {
return status;
}
}
@@ -120,9 +120,9 @@ NTSTATUS dcesrv_drsuapi_DsCrackNames(struct dcesrv_call_state *dce_call, TALLOC_
r->out.ctr.ctr1->count = count;
r->out.ctr.ctr1->array = names;
- return NT_STATUS_OK;
+ return WERR_OK;
}
}
- return NT_STATUS_INVALID_LEVEL;
+ return WERR_UNKNOWN_LEVEL;
}