summaryrefslogtreecommitdiff
path: root/source3/lib/username.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2002-01-27 12:12:22 +0000
committerAndrew Bartlett <abartlet@samba.org>2002-01-27 12:12:22 +0000
commit7b671e34f599b9d27c615c1be35db4ae10ce6481 (patch)
tree6695be8dfea1451944f0b5af2a8b0170aecbdf30 /source3/lib/username.c
parent184cc84adab4ead8fde1b79c449ef47f23567165 (diff)
downloadsamba-7b671e34f599b9d27c615c1be35db4ae10ce6481.tar.gz
samba-7b671e34f599b9d27c615c1be35db4ae10ce6481.tar.bz2
samba-7b671e34f599b9d27c615c1be35db4ae10ce6481.zip
Some more 'winbind default domain' support patches from Alexander Bokovoy
<a.bokovoy@sam-solutions.net>. This patch is designed to remove the 'special cases' required for this support. In particular this now kills off winbind_initgroups, as it appears no longer to be required. Andrew Bartlett (This used to be commit f1d8d509766e9169d39332559162cfec249bfc70)
Diffstat (limited to 'source3/lib/username.c')
-rw-r--r--source3/lib/username.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/lib/username.c b/source3/lib/username.c
index f256b1d6f8..ca191ce94e 100644
--- a/source3/lib/username.c
+++ b/source3/lib/username.c
@@ -36,6 +36,33 @@ BOOL name_is_local(const char *name)
return !(strchr_m(name, *lp_winbind_separator()));
}
+/*****************************************************************
+ Splits passed user or group name to domain and user/group name parts
+ Returns True if name was splitted and False otherwise.
+*****************************************************************/
+
+BOOL split_domain_and_name(const char *name, char *domain, char* username)
+{
+ char *p = strchr(name,*lp_winbind_separator());
+
+
+ /* Parse a string of the form DOMAIN/user into a domain and a user */
+ DEBUG(10,("split_domain_and_name: checking whether name |%s| local or not\n", name));
+
+ if (p) {
+ fstrcpy(username, p+1);
+ fstrcpy(domain, name);
+ domain[PTR_DIFF(p, name)] = 0;
+ } else if (lp_winbind_use_default_domain()) {
+ fstrcpy(username, name);
+ fstrcpy(domain, lp_workgroup());
+ } else
+ return False;
+
+ DEBUG(10,("split_domain_and_name: all is fine, domain is |%s| and name is |%s|\n", domain, username));
+ return True;
+}
+
/****************************************************************************
Get a users home directory.
****************************************************************************/