-^samba3\.wbinfo_user_info\.name_to_sid\.upn\.jane\.doe.ad_member
^samba3\.wbinfo_user_info\.user_info\.upn\.jane\.doe.ad_member
^samba3\.wbinfo_user_info\.name_to_sid\.upn\.testdenied_upn.ad_member
^samba3\.wbinfo_user_info\.user_info\.upn\.testdenied_upn.ad_member
^samba3\.wbinfo_user_info\.user_info\.domain\.alice.fl2008r2dc
^samba3\.wbinfo_user_info\.user_info\.upn\.alice.fl2008r2dc
-^samba3\.wbinfo_user_info\.name_to_sid\.upn\.jane\.doe.fl2008r2dc
^samba3\.wbinfo_user_info\.user_info\.domain\.jane.fl2008r2dc
^samba3\.wbinfo_user_info\.user_info\.upn\.jane\.doe.fl2008r2dc
^samba3\.wbinfo_user_info\.name_to_sid\.upn\.testdenied_upn.fl2008r2dc
struct tevent_req *wb_lookupname_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
- const char *dom_name, const char *name,
+ const char *namespace,
+ const char *dom_name,
+ const char *name,
uint32_t flags)
{
struct tevent_req *req, *subreq;
return tevent_req_post(req, ev);
}
- domain = find_lookup_domain_from_name(state->dom_name);
+ domain = find_lookup_domain_from_name(namespace);
if (domain == NULL) {
- DEBUG(5, ("Could not find domain for %s\n", state->dom_name));
+ DEBUG(5, ("Could not find domain for %s\n", namespace));
tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
return tevent_req_post(req, ev);
}
subreq = wb_lookupname_send(state,
state->ev,
dom_maps[state->dom_idx].name,
+ dom_maps[state->dom_idx].name,
"",
LOOKUP_NAME_NO_NSS);
if (tevent_req_nomem(subreq, state->req)) {
fstrcpy(state->name_domain, get_global_sam_name());
}
- subreq = wb_lookupname_send(state, ev, state->name_domain, state->name_group,
+ subreq = wb_lookupname_send(state, ev,
+ state->name_domain,
+ state->name_domain,
+ state->name_group,
0);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
return tevent_req_post(req, ev);
}
- subreq = wb_lookupname_send(state, ev, state->domname, state->username,
+ subreq = wb_lookupname_send(state, ev,
+ state->domname,
+ state->domname,
+ state->username,
LOOKUP_NAME_NO_NSS);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
return tevent_req_post(req, ev);
}
- subreq = wb_lookupname_send(state, ev, state->domname, state->username,
+ subreq = wb_lookupname_send(state, ev,
+ state->domname,
+ state->domname,
+ state->username,
LOOKUP_NAME_NO_NSS);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
struct wb_irpc_lsa_LookupNames4_name {
void *state;
uint32_t idx;
+ const char *namespace;
const char *domain;
char *name;
struct dom_sid sid;
if (p != NULL) {
*p = 0;
nstate->domain = nstate->name;
+ nstate->namespace = nstate->domain;
nstate->name = p+1;
} else if ((p = strchr(nstate->name, '@')) != NULL) {
/* upn */
- nstate->domain = p + 1;
- *p = 0;
+ nstate->domain = "";
+ nstate->namespace = p + 1;
} else {
/*
* TODO: select the domain based on
subreq = wb_lookupname_send(msg,
server_event_context(),
+ nstate->namespace,
nstate->domain,
nstate->name,
LOOKUP_NAME_NO_NSS);
{
struct tevent_req *req, *subreq;
struct winbindd_lookupname_state *state;
- const char *domname = NULL, *name = NULL;
char *p = NULL;
+ const char *domname = NULL;
+ const char *name = NULL;
+ const char *namespace = NULL;
req = tevent_req_create(mem_ctx, &state,
struct winbindd_lookupname_state);
if (p != NULL) {
*p = '\0';
domname = request->data.name.name;
+ namespace = domname;
name = p + 1;
} else {
p = strchr(request->data.name.name, '@');
if (p != NULL) {
/* upn */
- domname = p + 1;
- *p = '\0';
- name = request->data.name.name;
+ namespace = p + 1;
} else {
- domname = "";
- name = request->data.name.name;
+ namespace = "";
}
+ domname = "";
+ name = request->data.name.name;
}
} else {
domname = request->data.name.dom_name;
+ namespace = domname;
name = request->data.name.name;
}
DEBUG(3, ("lookupname %s%s%s\n", domname, lp_winbind_separator(),
name));
- subreq = wb_lookupname_send(state, ev, domname, name, 0);
+ subreq = wb_lookupname_send(state, ev, namespace, domname, name, 0);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}
struct tevent_req *wb_lookupname_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
- const char *dom_name, const char *name,
+ const char *namespace,
+ const char *dom_name,
+ const char *name,
uint32_t flags);
NTSTATUS wb_lookupname_recv(struct tevent_req *req, struct dom_sid *sid,
enum lsa_SidType *type);