request->data.name.dom_name,
request->data.name.name));
+ name = request->data.name.name;
+
+ while (strchr(lp_winbind_separator(), name[0]) != NULL) {
+ /*
+ * Skip leading winbind separators, they lead us to
+ * believe we have a qualified name.
+ */
+ name += 1;
+ }
+
/* cope with the name being a fully qualified name */
- p = strstr(request->data.name.name, lp_winbind_separator());
+ p = strstr(name, lp_winbind_separator());
if (p) {
*p = 0;
- domname = request->data.name.name;
+ domname = name;
name = p+1;
- } else if ((p = strchr(request->data.name.name, '@')) != NULL) {
+ } else if ((p = strchr(name, '@')) != NULL) {
/* upn */
domname = p + 1;
*p = 0;
- name = request->data.name.name;
} else {
domname = request->data.name.dom_name;
- name = request->data.name.name;
}
DEBUG(3, ("lookupname %s%s%s\n", domname, lp_winbind_separator(),