summaryrefslogtreecommitdiff
path: root/source3/groupdb/aliasdb.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1998-11-23 22:45:36 +0000
committerLuke Leighton <lkcl@samba.org>1998-11-23 22:45:36 +0000
commitd73f8e58affd842cb11b1bba6cca0128182bfc96 (patch)
tree848d614cd1245569ec217d02eeeba910e58d3fea /source3/groupdb/aliasdb.c
parent244c9f70bf5113ec0fe86a4d3a7f3b3f3c041cc4 (diff)
downloadsamba-d73f8e58affd842cb11b1bba6cca0128182bfc96.tar.gz
samba-d73f8e58affd842cb11b1bba6cca0128182bfc96.tar.bz2
samba-d73f8e58affd842cb11b1bba6cca0128182bfc96.zip
cvs being STUPID
(This used to be commit 22802195ed544b6042d791b34e704d608bbdfd84)
Diffstat (limited to 'source3/groupdb/aliasdb.c')
-rw-r--r--source3/groupdb/aliasdb.c55
1 files changed, 51 insertions, 4 deletions
diff --git a/source3/groupdb/aliasdb.c b/source3/groupdb/aliasdb.c
index 03e0a6e11a..e37f491287 100644
--- a/source3/groupdb/aliasdb.c
+++ b/source3/groupdb/aliasdb.c
@@ -32,7 +32,7 @@ extern fstring global_sam_name;
* that points to the correct function for the selected database. JRA.
*/
-static struct aliasdb_ops *aldb_ops;
+static struct aliasdb_ops *aldb_ops = NULL;
/***************************************************************
Initialise the alias db operations.
@@ -49,8 +49,8 @@ BOOL initialise_alias_db(void)
aldb_ops = nisplus_initialise_alias_db();
#elif defined(WITH_LDAP)
aldb_ops = ldap_initialise_alias_db();
-#else
- aldb_ops = file_initialise_alias_db();
+#elif defined(USE_SMBUNIX_DB)
+ aldb_ops = unix_initialise_alias_db();
#endif
return (aldb_ops != NULL);
@@ -380,10 +380,57 @@ BOOL getuseraliasnam(char *user_name, LOCAL_GRP **als, int *num_alss)
/*************************************************************
initialises a LOCAL_GRP.
**************************************************************/
-
void aldb_init_als(LOCAL_GRP *als)
{
if (als == NULL) return;
ZERO_STRUCTP(als);
}
+/*************************************************************
+ turns an alias entry into a string.
+ **************************************************************/
+BOOL make_alias_line(char *p, int max_len,
+ LOCAL_GRP *als,
+ LOCAL_GRP_MEMBER **mem, int *num_mem)
+{
+ int i;
+ int len;
+ len = slprintf(p, max_len-1, "%s:%s:%d:", als->name, als->comment, als->rid);
+
+ if (len == -1)
+ {
+ DEBUG(0,("make_alias_line: cannot create entry\n"));
+ return False;
+ }
+
+ p += len;
+ max_len -= len;
+
+ if (mem == NULL || num_mem == NULL)
+ {
+ return True;
+ }
+
+ for (i = 0; i < (*num_mem); i++)
+ {
+ len = strlen((*mem)[i].name);
+ p = safe_strcpy(p, (*mem)[i].name, max_len);
+
+ if (p == NULL)
+ {
+ DEBUG(0, ("make_alias_line: out of space for aliases!\n"));
+ return False;
+ }
+
+ max_len -= len;
+
+ if (i != (*num_mem)-1)
+ {
+ *p = ',';
+ p++;
+ max_len--;
+ }
+ }
+
+ return True;
+}