diff options
Diffstat (limited to 'source4/rpc_server')
-rw-r--r-- | source4/rpc_server/samr/dcesrv_samr.c | 302 |
1 files changed, 151 insertions, 151 deletions
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index 44bf55b013..d5a028ce09 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -56,7 +56,7 @@ struct samr_domain_state { uint32 access_mask; const char *domain_sid; const char *domain_name; - const char *basedn; + const char *domain_dn; }; /* @@ -69,19 +69,19 @@ struct samr_account_state { uint32 access_mask; const char *account_sid; const char *account_name; - const char *basedn; + const char *account_dn; }; /* destroy connection state */ -static void samr_Connect_close(struct samr_connect_state *state) +static void samr_Connect_close(struct samr_connect_state *c_state) { - state->reference_count--; - if (state->reference_count == 0) { - samdb_close(state->sam_ctx); - talloc_destroy(state->mem_ctx); + c_state->reference_count--; + if (c_state->reference_count == 0) { + samdb_close(c_state->sam_ctx); + talloc_destroy(c_state->mem_ctx); } } @@ -90,8 +90,8 @@ static void samr_Connect_close(struct samr_connect_state *state) */ static void samr_Connect_destroy(struct dcesrv_connection *conn, struct dcesrv_handle *h) { - struct samr_connect_state *state = h->data; - samr_Connect_close(state); + struct samr_connect_state *c_state = h->data; + samr_Connect_close(c_state); } /* @@ -102,7 +102,7 @@ static void samr_Connect_destroy(struct dcesrv_connection *conn, struct dcesrv_h static NTSTATUS samr_Connect(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct samr_Connect *r) { - struct samr_connect_state *state; + struct samr_connect_state *c_state; struct dcesrv_handle *handle; TALLOC_CTX *connect_mem_ctx; @@ -113,30 +113,30 @@ static NTSTATUS samr_Connect(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem return NT_STATUS_NO_MEMORY; } - state = talloc_p(connect_mem_ctx, struct samr_connect_state); - if (!state) { + c_state = talloc_p(connect_mem_ctx, struct samr_connect_state); + if (!c_state) { return NT_STATUS_NO_MEMORY; } - state->mem_ctx = connect_mem_ctx; + c_state->mem_ctx = connect_mem_ctx; /* make sure the sam database is accessible */ - state->sam_ctx = samdb_connect(); - if (state->sam_ctx == NULL) { - talloc_destroy(state->mem_ctx); + c_state->sam_ctx = samdb_connect(); + if (c_state->sam_ctx == NULL) { + talloc_destroy(c_state->mem_ctx); return NT_STATUS_INVALID_SYSTEM_SERVICE; } handle = dcesrv_handle_new(dce_call->conn, SAMR_HANDLE_CONNECT); if (!handle) { - talloc_destroy(state->mem_ctx); + talloc_destroy(c_state->mem_ctx); return NT_STATUS_NO_MEMORY; } - handle->data = state; + handle->data = c_state; handle->destroy = samr_Connect_destroy; - state->reference_count = 1; - state->access_mask = r->in.access_mask; + c_state->reference_count = 1; + c_state->access_mask = r->in.access_mask; *r->out.handle = handle->wire_handle; return NT_STATUS_OK; @@ -207,7 +207,7 @@ static NTSTATUS samr_Shutdown(struct dcesrv_call_state *dce_call, TALLOC_CTX *me static NTSTATUS samr_LookupDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct samr_LookupDomain *r) { - struct samr_connect_state *state; + struct samr_connect_state *c_state; struct dcesrv_handle *h; struct dom_sid2 *sid; const char *sidstr; @@ -216,13 +216,13 @@ static NTSTATUS samr_LookupDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_CONNECT); - state = h->data; + c_state = h->data; if (r->in.domain->name == NULL) { return NT_STATUS_INVALID_PARAMETER; } - sidstr = samdb_search_string(state->sam_ctx, + sidstr = samdb_search_string(c_state->sam_ctx, mem_ctx, NULL, "objectSid", "(&(name=%s)(objectclass=domain))", r->in.domain->name); @@ -251,7 +251,7 @@ static NTSTATUS samr_LookupDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX static NTSTATUS samr_EnumDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct samr_EnumDomains *r) { - struct samr_connect_state *state; + struct samr_connect_state *c_state; struct dcesrv_handle *h; struct samr_SamArray *array; const char **domains; @@ -263,9 +263,9 @@ static NTSTATUS samr_EnumDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_CONNECT); - state = h->data; + c_state = h->data; - count = samdb_search_string_multiple(state->sam_ctx, + count = samdb_search_string_multiple(c_state->sam_ctx, mem_ctx, NULL, &domains, "name", "(objectclass=domain)"); if (count == -1) { @@ -312,12 +312,12 @@ static NTSTATUS samr_EnumDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX close an open domain context */ static void samr_Domain_close(struct dcesrv_connection *conn, - struct samr_domain_state *state) + struct samr_domain_state *d_state) { - state->reference_count--; - if (state->reference_count == 0) { - samr_Connect_close(state->connect_state); - talloc_destroy(state->mem_ctx); + d_state->reference_count--; + if (d_state->reference_count == 0) { + samr_Connect_close(d_state->connect_state); + talloc_destroy(d_state->mem_ctx); } } @@ -326,8 +326,8 @@ static void samr_Domain_close(struct dcesrv_connection *conn, */ static void samr_Domain_destroy(struct dcesrv_connection *conn, struct dcesrv_handle *h) { - struct samr_domain_state *state = h->data; - samr_Domain_close(conn, state); + struct samr_domain_state *d_state = h->data; + samr_Domain_close(conn, d_state); } /* @@ -339,7 +339,7 @@ static NTSTATUS samr_OpenDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX * struct dcesrv_handle *h_conn, *h_domain; const char *sidstr, *domain_name; struct samr_connect_state *c_state; - struct samr_domain_state *state; + struct samr_domain_state *d_state; TALLOC_CTX *mem_ctx2; const char * const attrs[2] = { "name", NULL}; struct ldb_message **msgs; @@ -378,24 +378,24 @@ static NTSTATUS samr_OpenDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX * return NT_STATUS_NO_MEMORY; } - state = talloc_p(mem_ctx2, struct samr_domain_state); - if (!state) { + d_state = talloc_p(mem_ctx2, struct samr_domain_state); + if (!d_state) { talloc_destroy(mem_ctx2); return NT_STATUS_NO_MEMORY; } - state->reference_count = 1; - state->connect_state = c_state; - state->sam_ctx = c_state->sam_ctx; - state->mem_ctx = mem_ctx2; - state->domain_sid = talloc_strdup(mem_ctx2, sidstr); - state->domain_name = talloc_strdup(mem_ctx2, domain_name); - state->basedn = talloc_strdup(mem_ctx2, msgs[0]->dn); - if (!state->domain_sid || !state->domain_name || !state->basedn) { + d_state->reference_count = 1; + d_state->connect_state = c_state; + d_state->sam_ctx = c_state->sam_ctx; + d_state->mem_ctx = mem_ctx2; + d_state->domain_sid = talloc_strdup(mem_ctx2, sidstr); + d_state->domain_name = talloc_strdup(mem_ctx2, domain_name); + d_state->domain_dn = talloc_strdup(mem_ctx2, msgs[0]->dn); + if (!d_state->domain_sid || !d_state->domain_name || !d_state->domain_dn) { talloc_destroy(mem_ctx2); return NT_STATUS_NO_MEMORY; } - state->access_mask = r->in.access_mask; + d_state->access_mask = r->in.access_mask; h_domain = dcesrv_handle_new(dce_call->conn, SAMR_HANDLE_DOMAIN); if (!h_domain) { @@ -404,7 +404,7 @@ static NTSTATUS samr_OpenDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX * } c_state->reference_count++; - h_domain->data = state; + h_domain->data = d_state; h_domain->destroy = samr_Domain_destroy; *r->out.domain_handle = h_domain->wire_handle; @@ -436,9 +436,9 @@ static NTSTATUS samr_SetDomainInfo(struct dcesrv_call_state *dce_call, TALLOC_CT */ static void samr_Account_destroy(struct dcesrv_connection *conn, struct dcesrv_handle *h) { - struct samr_account_state *state = h->data; - samr_Domain_close(conn, state->domain_state); - talloc_destroy(state->mem_ctx); + struct samr_account_state *a_state = h->data; + samr_Domain_close(conn, a_state->domain_state); + talloc_destroy(a_state->mem_ctx); } /* @@ -448,7 +448,7 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO struct samr_CreateDomainGroup *r) { struct samr_domain_state *d_state; - struct samr_account_state *state; + struct samr_account_state *a_state; struct dcesrv_handle *h; const char *name; struct ldb_message msg; @@ -474,7 +474,7 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO } /* check if the group already exists */ - name = samdb_search_string(d_state->sam_ctx, mem_ctx, d_state->basedn, + name = samdb_search_string(d_state->sam_ctx, mem_ctx, d_state->domain_dn, "sAMAccountName", "(&(sAMAccountName=%s)(objectclass=group))", groupname); @@ -494,7 +494,7 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO /* allocate a rid */ status = samdb_allocate_next_id(d_state->sam_ctx, mem_ctx, - d_state->basedn, "nextRid", &rid); + d_state->domain_dn, "nextRid", &rid); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -507,7 +507,7 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO /* add core elements to the ldb_message for the user */ msg.dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", groupname, - d_state->basedn); + d_state->domain_dn); if (!msg.dn) { return NT_STATUS_NO_MEMORY; } @@ -539,18 +539,18 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO return NT_STATUS_NO_MEMORY; } - state = talloc_p(mem_ctx2, struct samr_account_state); - if (!state) { + a_state = talloc_p(mem_ctx2, struct samr_account_state); + if (!a_state) { return NT_STATUS_NO_MEMORY; } - state->mem_ctx = mem_ctx2; - state->sam_ctx = d_state->sam_ctx; - state->access_mask = r->in.access_mask; - state->domain_state = d_state; - state->basedn = talloc_steal(mem_ctx, mem_ctx2, msg.dn); - state->account_sid = talloc_strdup(mem_ctx2, sidstr); - state->account_name = talloc_strdup(mem_ctx2, groupname); - if (!state->account_name || !state->account_sid) { + a_state->mem_ctx = mem_ctx2; + a_state->sam_ctx = d_state->sam_ctx; + a_state->access_mask = r->in.access_mask; + a_state->domain_state = d_state; + a_state->account_dn = talloc_steal(mem_ctx, mem_ctx2, msg.dn); + a_state->account_sid = talloc_strdup(mem_ctx2, sidstr); + a_state->account_name = talloc_strdup(mem_ctx2, groupname); + if (!a_state->account_name || !a_state->account_sid) { return NT_STATUS_NO_MEMORY; } @@ -560,7 +560,7 @@ static NTSTATUS samr_CreateDomainGroup(struct dcesrv_call_state *dce_call, TALLO return NT_STATUS_NO_MEMORY; } - g_handle->data = state; + g_handle->data = a_state; g_handle->destroy = samr_Account_destroy; /* the domain state is in use one more time */ @@ -592,7 +592,7 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX struct samr_CreateUser2 *r) { struct samr_domain_state *d_state; - struct samr_account_state *state; + struct samr_account_state *a_state; struct dcesrv_handle *h; const char *name; struct ldb_message msg; @@ -619,7 +619,7 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX } /* check if the user already exists */ - name = samdb_search_string(d_state->sam_ctx, mem_ctx, d_state->basedn, + name = samdb_search_string(d_state->sam_ctx, mem_ctx, d_state->domain_dn, "sAMAccountName", "(&(sAMAccountName=%s)(objectclass=user))", username); if (name != NULL) { @@ -638,7 +638,7 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX /* allocate a rid */ status = samdb_allocate_next_id(d_state->sam_ctx, mem_ctx, - d_state->basedn, "nextRid", &rid); + d_state->domain_dn, "nextRid", &rid); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -650,7 +650,7 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX } /* add core elements to the ldb_message for the user */ - msg.dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", username, d_state->basedn); + msg.dn = talloc_asprintf(mem_ctx, "CN=%s,CN=Users,%s", username, d_state->domain_dn); if (!msg.dn) { return NT_STATUS_NO_MEMORY; } @@ -675,18 +675,18 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX return NT_STATUS_NO_MEMORY; } - state = talloc_p(mem_ctx2, struct samr_account_state); - if (!state) { + a_state = talloc_p(mem_ctx2, struct samr_account_state); + if (!a_state) { return NT_STATUS_NO_MEMORY; } - state->mem_ctx = mem_ctx2; - state->sam_ctx = d_state->sam_ctx; - state->access_mask = r->in.access_mask; - state->domain_state = d_state; - state->basedn = talloc_steal(mem_ctx, mem_ctx2, msg.dn); - state->account_sid = talloc_strdup(mem_ctx2, sidstr); - state->account_name = talloc_strdup(mem_ctx2, username); - if (!state->account_name || !state->account_sid) { + a_state->mem_ctx = mem_ctx2; + a_state->sam_ctx = d_state->sam_ctx; + a_state->access_mask = r->in.access_mask; + a_state->domain_state = d_state; + a_state->account_dn = talloc_steal(mem_ctx, mem_ctx2, msg.dn); + a_state->account_sid = talloc_strdup(mem_ctx2, sidstr); + a_state->account_name = talloc_strdup(mem_ctx2, username); + if (!a_state->account_name || !a_state->account_sid) { return NT_STATUS_NO_MEMORY; } @@ -696,7 +696,7 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX return NT_STATUS_NO_MEMORY; } - u_handle->data = state; + u_handle->data = a_state; u_handle->destroy = samr_Account_destroy; /* the domain state is in use one more time */ @@ -747,7 +747,7 @@ static NTSTATUS samr_EnumDomainUsers(struct dcesrv_call_state *dce_call, TALLOC_ struct samr_EnumDomainUsers *r) { struct dcesrv_handle *h; - struct samr_domain_state *state; + struct samr_domain_state *d_state; struct ldb_message **res; int count, i, first; struct samr_SamEntry *entries; @@ -759,11 +759,11 @@ static NTSTATUS samr_EnumDomainUsers(struct dcesrv_call_state *dce_call, TALLOC_ DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_DOMAIN); - state = h->data; + d_state = h->data; /* search for all users in this domain. This could possibly be cached and resumed based on resume_key */ - count = samdb_search(state->sam_ctx, mem_ctx, state->basedn, &res, attrs, + count = samdb_search(d_state->sam_ctx, mem_ctx, d_state->domain_dn, &res, attrs, "objectclass=user"); if (count == -1) { return NT_STATUS_INTERNAL_DB_CORRUPTION; @@ -855,7 +855,7 @@ static NTSTATUS samr_LookupNames(struct dcesrv_call_state *dce_call, TALLOC_CTX struct samr_LookupNames *r) { struct dcesrv_handle *h; - struct samr_domain_state *state; + struct samr_domain_state *d_state; int i; NTSTATUS status = NT_STATUS_OK; const char * const attrs[] = { "sAMAccountType", "objectSid", NULL }; @@ -866,7 +866,7 @@ static NTSTATUS samr_LookupNames(struct dcesrv_call_state *dce_call, TALLOC_CTX DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_DOMAIN); - state = h->data; + d_state = h->data; if (r->in.num_names == 0) { return NT_STATUS_OK; @@ -889,7 +889,7 @@ static NTSTATUS samr_LookupNames(struct dcesrv_call_state *dce_call, TALLOC_CTX r->out.rids.ids[i] = 0; r->out.types.ids[i] = SID_NAME_UNKNOWN; - count = samdb_search(state->sam_ctx, mem_ctx, state->basedn, &res, attrs, + count = samdb_search(d_state->sam_ctx, mem_ctx, d_state->domain_dn, &res, attrs, "sAMAccountName=%s", r->in.names[i].name); if (count != 1) { status = STATUS_SOME_UNMAPPED; @@ -956,7 +956,7 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m struct samr_OpenGroup *r) { struct samr_domain_state *d_state; - struct samr_account_state *state; + struct samr_account_state *a_state; struct dcesrv_handle *h; const char *groupname, *sidstr; TALLOC_CTX *mem_ctx2; @@ -979,7 +979,7 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m /* search for the group record */ ret = samdb_search(d_state->sam_ctx, - mem_ctx, d_state->basedn, &msgs, attrs, + mem_ctx, d_state->domain_dn, &msgs, attrs, "(&(objectSid=%s)(objectclass=group))", sidstr); if (ret == 0) { @@ -1002,18 +1002,18 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m return NT_STATUS_NO_MEMORY; } - state = talloc_p(mem_ctx2, struct samr_account_state); - if (!state) { + a_state = talloc_p(mem_ctx2, struct samr_account_state); + if (!a_state) { return NT_STATUS_NO_MEMORY; } - state->mem_ctx = mem_ctx2; - state->sam_ctx = d_state->sam_ctx; - state->access_mask = r->in.access_mask; - state->domain_state = d_state; - state->basedn = talloc_steal(mem_ctx, mem_ctx2, msgs[0]->dn); - state->account_sid = talloc_strdup(mem_ctx2, sidstr); - state->account_name = talloc_strdup(mem_ctx2, groupname); - if (!state->account_name || !state->account_sid) { + a_state->mem_ctx = mem_ctx2; + a_state->sam_ctx = d_state->sam_ctx; + a_state->access_mask = r->in.access_mask; + a_state->domain_state = d_state; + a_state->account_dn = talloc_steal(mem_ctx, mem_ctx2, msgs[0]->dn); + a_state->account_sid = talloc_strdup(mem_ctx2, sidstr); + a_state->account_name = talloc_strdup(mem_ctx2, groupname); + if (!a_state->account_name || !a_state->account_sid) { return NT_STATUS_NO_MEMORY; } @@ -1023,7 +1023,7 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m return NT_STATUS_NO_MEMORY; } - g_handle->data = state; + g_handle->data = a_state; g_handle->destroy = samr_Account_destroy; /* the domain state is in use one more time */ @@ -1045,11 +1045,11 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m #define QUERY_NTTIME(msg, field, attr) \ r->out.info->field = samdb_result_nttime(msg, attr, 0); #define QUERY_APASSC(msg, field, attr) \ - r->out.info->field = samdb_result_allow_pwd_change(state->sam_ctx, mem_ctx, \ - state->domain_state->basedn, msg, attr); + r->out.info->field = samdb_result_allow_pwd_change(a_state->sam_ctx, mem_ctx, \ + a_state->domain_state->domain_dn, msg, attr); #define QUERY_FPASSC(msg, field, attr) \ - r->out.info->field = samdb_result_force_pwd_change(state->sam_ctx, mem_ctx, \ - state->domain_state->basedn, msg, attr); + r->out.info->field = samdb_result_force_pwd_change(a_state->sam_ctx, mem_ctx, \ + a_state->domain_state->domain_dn, msg, attr); #define QUERY_LHOURS(msg, field, attr) \ r->out.info->field = samdb_result_logon_hours(mem_ctx, msg, attr); #define QUERY_AFLAGS(msg, field, attr) \ @@ -1060,25 +1060,25 @@ static NTSTATUS samr_OpenGroup(struct dcesrv_call_state *dce_call, TALLOC_CTX *m #define SET_STRING(mod, field, attr) do { \ if (r->in.info->field == NULL) return NT_STATUS_INVALID_PARAMETER; \ - if (samdb_msg_add_string(state->sam_ctx, mem_ctx, mod, attr, r->in.info->field) != 0) { \ + if (samdb_msg_add_string(a_state->sam_ctx, mem_ctx, mod, attr, r->in.info->field) != 0) { \ return NT_STATUS_NO_MEMORY; \ } \ } while (0) #define SET_UINT(mod, field, attr) do { \ - if (samdb_msg_add_uint(state->sam_ctx, mem_ctx, mod, attr, r->in.info->field) != 0) { \ + if (samdb_msg_add_uint(a_state->sam_ctx, mem_ctx, mod, attr, r->in.info->field) != 0) { \ return NT_STATUS_NO_MEMORY; \ } \ } while (0) #define SET_AFLAGS(msg, field, attr) do { \ - if (samdb_msg_add_acct_flags(state->sam_ctx, mem_ctx, msg, attr, r->in.info->field) != 0) { \ + if (samdb_msg_add_acct_flags(a_state->sam_ctx, mem_ctx, msg, attr, r->in.info->field) != 0) { \ return NT_STATUS_NO_MEMORY; \ } \ } while (0) #define SET_LHOURS(msg, field, attr) do { \ - if (samdb_msg_add_logon_hours(state->sam_ctx, mem_ctx, msg, attr, r->in.info->field) != 0) { \ + if (samdb_msg_add_logon_hours(a_state->sam_ctx, mem_ctx, msg, attr, r->in.info->field) != 0) { \ return NT_STATUS_NO_MEMORY; \ } \ } while (0) @@ -1090,7 +1090,7 @@ static NTSTATUS samr_QueryGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_C struct samr_QueryGroupInfo *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; struct ldb_message *msg, **res; const char * const attrs[4] = { "sAMAccountName", "description", "numMembers", NULL }; @@ -1100,11 +1100,11 @@ static NTSTATUS samr_QueryGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_C DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_GROUP); - state = h->data; + a_state = h->data; /* pull all the group attributes */ - ret = samdb_search(state->sam_ctx, mem_ctx, NULL, &res, attrs, - "dn=%s", state->basedn); + ret = samdb_search(a_state->sam_ctx, mem_ctx, NULL, &res, attrs, + "dn=%s", a_state->account_dn); if (ret != 1) { return NT_STATUS_INTERNAL_DB_CORRUPTION; } @@ -1150,16 +1150,16 @@ static NTSTATUS samr_SetGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX struct samr_SetGroupInfo *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; struct ldb_message mod, *msg = &mod; int i, ret; DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_GROUP); - state = h->data; + a_state = h->data; ZERO_STRUCT(mod); - mod.dn = talloc_strdup(mem_ctx, state->basedn); + mod.dn = talloc_strdup(mem_ctx, a_state->account_dn); if (!mod.dn) { return NT_STATUS_NO_MEMORY; } @@ -1186,7 +1186,7 @@ static NTSTATUS samr_SetGroupInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX } /* modify the samdb record */ - ret = samdb_modify(state->sam_ctx, mem_ctx, &mod); + ret = samdb_modify(a_state->sam_ctx, mem_ctx, &mod); if (ret != 0) { /* we really need samdb.c to return NTSTATUS */ return NT_STATUS_UNSUCCESSFUL; @@ -1213,16 +1213,16 @@ static NTSTATUS samr_DeleteDomainGroup(struct dcesrv_call_state *dce_call, TALLO struct samr_DeleteDomainGroup *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; int ret; *r->out.handle = *r->in.handle; DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_GROUP); - state = h->data; + a_state = h->data; - ret = samdb_delete(state->sam_ctx, mem_ctx, state->basedn); + ret = samdb_delete(a_state->sam_ctx, mem_ctx, a_state->account_dn); if (ret != 0) { return NT_STATUS_UNSUCCESSFUL; } @@ -1340,7 +1340,7 @@ static NTSTATUS samr_OpenUser(struct dcesrv_call_state *dce_call, TALLOC_CTX *me struct samr_OpenUser *r) { struct samr_domain_state *d_state; - struct samr_account_state *state; + struct samr_account_state *a_state; struct dcesrv_handle *h; const char *username, *sidstr; TALLOC_CTX *mem_ctx2; @@ -1363,7 +1363,7 @@ static NTSTATUS samr_OpenUser(struct dcesrv_call_state *dce_call, TALLOC_CTX *me /* search for the user record */ ret = samdb_search(d_state->sam_ctx, - mem_ctx, d_state->basedn, &msgs, attrs, + mem_ctx, d_state->domain_dn, &msgs, attrs, "(&(objectSid=%s)(objectclass=user))", sidstr); if (ret == 0) { @@ -1386,18 +1386,18 @@ static NTSTATUS samr_OpenUser(struct dcesrv_call_state *dce_call, TALLOC_CTX *me return NT_STATUS_NO_MEMORY; } - state = talloc_p(mem_ctx2, struct samr_account_state); - if (!state) { + a_state = talloc_p(mem_ctx2, struct samr_account_state); + if (!a_state) { return NT_STATUS_NO_MEMORY; } - state->mem_ctx = mem_ctx2; - state->sam_ctx = d_state->sam_ctx; - state->access_mask = r->in.access_mask; - state->domain_state = d_state; - state->basedn = talloc_steal(mem_ctx, mem_ctx2, msgs[0]->dn); - state->account_sid = talloc_strdup(mem_ctx2, sidstr); - state->account_name = talloc_strdup(mem_ctx2, username); - if (!state->account_name || !state->account_sid) { + a_state->mem_ctx = mem_ctx2; + a_state->sam_ctx = d_state->sam_ctx; + a_state->access_mask = r->in.access_mask; + a_state->domain_state = d_state; + a_state->account_dn = talloc_steal(mem_ctx, mem_ctx2, msgs[0]->dn); + a_state->account_sid = talloc_strdup(mem_ctx2, sidstr); + a_state->account_name = talloc_strdup(mem_ctx2, username); + if (!a_state->account_name || !a_state->account_sid) { return NT_STATUS_NO_MEMORY; } @@ -1407,7 +1407,7 @@ static NTSTATUS samr_OpenUser(struct dcesrv_call_state *dce_call, TALLOC_CTX *me return NT_STATUS_NO_MEMORY; } - u_handle->data = state; + u_handle->data = a_state; u_handle->destroy = samr_Account_destroy; /* the domain state is in use one more time */ @@ -1427,16 +1427,16 @@ static NTSTATUS samr_DeleteUser(struct dcesrv_call_state *dce_call, TALLOC_CTX * struct samr_DeleteUser *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; int ret; *r->out.handle = *r->in.handle; DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_USER); - state = h->data; + a_state = h->data; - ret = samdb_delete(state->sam_ctx, mem_ctx, state->basedn); + ret = samdb_delete(a_state->sam_ctx, mem_ctx, a_state->account_dn); if (ret != 0) { return NT_STATUS_UNSUCCESSFUL; } @@ -1454,7 +1454,7 @@ static NTSTATUS samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CT struct samr_QueryUserInfo *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; struct ldb_message *msg, **res; int ret; @@ -1462,11 +1462,11 @@ static NTSTATUS samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CT DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_USER); - state = h->data; + a_state = h->data; /* pull all the user attributes */ - ret = samdb_search(state->sam_ctx, mem_ctx, NULL, &res, NULL, - "dn=%s", state->basedn); + ret = samdb_search(a_state->sam_ctx, mem_ctx, NULL, &res, NULL, + "dn=%s", a_state->account_dn); if (ret != 1) { return NT_STATUS_INTERNAL_DB_CORRUPTION; } @@ -1634,7 +1634,7 @@ static NTSTATUS samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CT password when applied */ static NTSTATUS samr_set_password(struct dcesrv_call_state *dce_call, - struct samr_account_state *state, TALLOC_CTX *mem_ctx, + struct samr_account_state *a_state, TALLOC_CTX *mem_ctx, struct ldb_message *msg, struct samr_CryptPassword *pwbuf) { @@ -1652,8 +1652,8 @@ static NTSTATUS samr_set_password(struct dcesrv_call_state *dce_call, /* set the password - samdb needs to know both the domain and user DNs, so the domain password policy can be used */ - return samdb_set_password(state->sam_ctx, mem_ctx, - state->basedn, state->domain_state->basedn, + return samdb_set_password(a_state->sam_ctx, mem_ctx, + a_state->account_dn, a_state->domain_state->domain_dn, msg, new_pass); } @@ -1664,17 +1664,17 @@ static NTSTATUS samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX struct samr_SetUserInfo *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; struct ldb_message mod, *msg = &mod; int i, ret; NTSTATUS status = NT_STATUS_OK; DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_USER); - state = h->data; + a_state = h->data; ZERO_STRUCT(mod); - mod.dn = talloc_strdup(mem_ctx, state->basedn); + mod.dn = talloc_strdup(mem_ctx, a_state->account_dn); if (!mod.dn) { return NT_STATUS_NO_MEMORY; } @@ -1757,7 +1757,7 @@ static NTSTATUS samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX /* the set password levels are handled separately */ case 24: - status = samr_set_password(dce_call, state, mem_ctx, msg, + status = samr_set_password(dce_call, a_state, mem_ctx, msg, &r->in.info->info24.password); break; @@ -1780,7 +1780,7 @@ static NTSTATUS samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX } /* modify the samdb record */ - ret = samdb_modify(state->sam_ctx, mem_ctx, msg); + ret = samdb_modify(a_state->sam_ctx, mem_ctx, msg); if (ret != 0) { /* we really need samdb.c to return NTSTATUS */ return NT_STATUS_UNSUCCESSFUL; @@ -1857,18 +1857,18 @@ static NTSTATUS samr_GetUserPwInfo(struct dcesrv_call_state *dce_call, TALLOC_CT struct samr_GetUserPwInfo *r) { struct dcesrv_handle *h; - struct samr_account_state *state; + struct samr_account_state *a_state; ZERO_STRUCT(r->out.info); DCESRV_PULL_HANDLE(h, r->in.handle, SAMR_HANDLE_USER); - state = h->data; + a_state = h->data; - r->out.info.min_pwd_len = samdb_search_uint(state->sam_ctx, mem_ctx, 0, NULL, "minPwdLength", - "dn=%s", state->domain_state->basedn); - r->out.info.password_properties = samdb_search_uint(state->sam_ctx, mem_ctx, 0, NULL, "pwdProperties", - "dn=%s", state->basedn); + r->out.info.min_pwd_len = samdb_search_uint(a_state->sam_ctx, mem_ctx, 0, NULL, "minPwdLength", + "dn=%s", a_state->domain_state->domain_dn); + r->out.info.password_properties = samdb_search_uint(a_state->sam_ctx, mem_ctx, 0, NULL, "pwdProperties", + "dn=%s", a_state->account_dn); return NT_STATUS_OK; } |