summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/groupdb/aliasdb.c55
-rw-r--r--source3/groupdb/aliasfile.c51
-rw-r--r--source3/groupdb/groupfile.c53
3 files changed, 58 insertions, 101 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;
+}
diff --git a/source3/groupdb/aliasfile.c b/source3/groupdb/aliasfile.c
index 01166bcc1f..e73ff39e74 100644
--- a/source3/groupdb/aliasfile.c
+++ b/source3/groupdb/aliasfile.c
@@ -19,7 +19,7 @@
#include "includes.h"
-#ifdef USE_SMBPASS_DB
+#ifdef USE_SMBGROUP_DB
static int al_file_lock_depth = 0;
extern int DEBUGLEVEL;
@@ -65,51 +65,6 @@ static BOOL setalsfilepwpos(void *vp, SMB_BIG_UINT tok)
return setfilepwpos(vp, tok);
}
-static 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;
-}
/*************************************************************************
Routine to return the next entry in the smbdomainalias list.
@@ -136,11 +91,11 @@ static char *get_alias_members(char *p, int *num_mem, LOCAL_GRP_MEMBER **members
{
/* sid entered directly */
string_to_sid(&sid, name);
- found = lookup_name(&sid, name, &type) == 0x0;
+ found = lookup_sid(&sid, name, &type) == 0x0;
}
else
{
- found = lookup_sid(name, &sid, &type) == 0x0;
+ found = lookup_name(name, &sid, &type) == 0x0;
}
if (!found)
diff --git a/source3/groupdb/groupfile.c b/source3/groupdb/groupfile.c
index 09939de71e..e0f791cafb 100644
--- a/source3/groupdb/groupfile.c
+++ b/source3/groupdb/groupfile.c
@@ -19,7 +19,7 @@
#include "includes.h"
-#ifdef USE_SMBPASS_DB
+#ifdef USE_SMBGROUP_DB
static int gp_file_lock_depth = 0;
extern int DEBUGLEVEL;
@@ -68,51 +68,6 @@ static BOOL setgrpfilepwpos(void *vp, SMB_BIG_UINT tok)
return setfilepwpos(vp, tok);
}
-static BOOL make_group_line(char *p, int max_len,
- DOMAIN_GRP *grp,
- DOMAIN_GRP_MEMBER **mem, int *num_mem)
-{
- int i;
- int len;
- len = slprintf(p, max_len-1, "%s:%s:%d:", grp->name, grp->comment, grp->rid);
-
- if (len == -1)
- {
- DEBUG(0,("make_group_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_group_line: out of space for groups!\n"));
- return False;
- }
-
- max_len -= len;
-
- if (i != (*num_mem)-1)
- {
- *p = ',';
- p++;
- max_len--;
- }
- }
-
- return True;
-}
/*************************************************************************
Routine to return the next entry in the smbdomaingroup list.
@@ -135,17 +90,17 @@ static char *get_group_members(char *p, int *num_mem, DOMAIN_GRP_MEMBER **member
uint8 type;
BOOL found = False;
- if (isdigit(name[0]))
+ if (isdigit(name))
{
uint32 rid = get_number(name);
sid_copy(&sid, &global_sam_sid);
sid_append_rid(&sid, rid);
- found = lookup_name(&sid, name, &type) == 0x0;
+ found = lookup_sid(&sid, name, &type) == 0x0;
}
else
{
- found = lookup_sid(name, &sid, &type) == 0x0;
+ found = lookup_name(name, &sid, &type) == 0x0;
}
if (!found)