Add split_domain_user() (not to mix with winbind variants).
authorGünther Deschner <gd@samba.org>
Tue, 11 Dec 2007 23:42:22 +0000 (00:42 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 11 Dec 2007 23:58:58 +0000 (00:58 +0100)
Guenther
(This used to be commit bd5308e5f63e4f692761557d0ecdee7226b66a15)

source3/lib/util.c

index 19c3e0c65b0bc3c5a7500ba479378e997f96f1fe..73b035b22bc94f532db49133b7c2d113a1e5fb80 100644 (file)
@@ -3197,6 +3197,30 @@ int get_safe_IVAL(const char *buf_base, size_t buf_len, char *ptr, size_t off, i
        return IVAL(ptr,off);
 }
 
+/****************************************************************
+ Split DOM\user into DOM and user. Do not mix with winbind variants of that
+ call (they take care of winbind separator and other winbind specific settings).
+****************************************************************/
+
+void split_domain_user(TALLOC_CTX *mem_ctx,
+                      const char *full_name,
+                      char **domain,
+                      char **user)
+{
+       const char *p = NULL;
+
+       p = strchr_m(full_name, '\\');
+
+       if (p != NULL) {
+               *domain = talloc_strndup(mem_ctx, full_name,
+                                        PTR_DIFF(p, full_name));
+               *user = talloc_strdup(mem_ctx, p+1);
+       } else {
+               *domain = talloc_strdup(mem_ctx, "");
+               *user = talloc_strdup(mem_ctx, full_name);
+       }
+}
+
 #if 0
 
 Disable these now we have checked all code paths and ensured