summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2011-03-02 16:11:00 +0100
committerGünther Deschner <gd@samba.org>2011-03-30 01:13:06 +0200
commit96487959e90b1aeec071d94e7f2c744af17fb5d0 (patch)
treee819cf118d777e88dd8497d533df75ba673955e0
parent64421129b672d0ce55c5aa235e5038dd2ea1b32b (diff)
downloadsamba-96487959e90b1aeec071d94e7f2c744af17fb5d0.tar.gz
samba-96487959e90b1aeec071d94e7f2c744af17fb5d0.tar.bz2
samba-96487959e90b1aeec071d94e7f2c744af17fb5d0.zip
lib/util/util_pw: share more code between lib/util/util_pw.c and source3/lib/username.c
Guenther
-rw-r--r--lib/util/util_pw.c16
-rw-r--r--lib/util/util_pw.h4
-rw-r--r--source3/auth/auth_util.c1
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/lib/username.c35
-rw-r--r--source3/lib/winbind_util.c1
-rw-r--r--source3/passdb/passdb.c1
-rw-r--r--source3/passdb/pdb_ldap.c1
-rw-r--r--source3/utils/smbpasswd.c1
9 files changed, 17 insertions, 45 deletions
diff --git a/lib/util/util_pw.c b/lib/util/util_pw.c
index cb7b45c135..c6e4680ec3 100644
--- a/lib/util/util_pw.c
+++ b/lib/util/util_pw.c
@@ -71,8 +71,8 @@ struct group *sys_getgrgid(gid_t gid)
return getgrgid(gid);
}
-static struct passwd *alloc_copy_passwd(TALLOC_CTX *mem_ctx,
- const struct passwd *from)
+struct passwd *tcopy_passwd(TALLOC_CTX *mem_ctx,
+ const struct passwd *from)
{
struct passwd *ret = talloc_zero(mem_ctx, struct passwd);
@@ -90,7 +90,7 @@ static struct passwd *alloc_copy_passwd(TALLOC_CTX *mem_ctx,
return ret;
}
-struct passwd *_getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name)
+struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name)
{
struct passwd *temp;
@@ -105,10 +105,14 @@ struct passwd *_getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name)
return NULL;
}
- return alloc_copy_passwd(mem_ctx, temp);
+ return tcopy_passwd(mem_ctx, temp);
}
-struct passwd *_getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid)
+/****************************************************************************
+ talloc'ed version of getpwuid.
+****************************************************************************/
+
+struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid)
{
struct passwd *temp;
@@ -123,5 +127,5 @@ struct passwd *_getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid)
return NULL;
}
- return alloc_copy_passwd(mem_ctx, temp);
+ return tcopy_passwd(mem_ctx, temp);
}
diff --git a/lib/util/util_pw.h b/lib/util/util_pw.h
index fa212b9c61..2967963459 100644
--- a/lib/util/util_pw.h
+++ b/lib/util/util_pw.h
@@ -33,7 +33,7 @@ struct group *sys_getgrnam(const char *name);
struct group *sys_getgrgid(gid_t gid);
struct passwd *tcopy_passwd(TALLOC_CTX *mem_ctx,
const struct passwd *from);
-struct passwd *_getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name);
-struct passwd *_getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid);
+struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name);
+struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid);
#endif /* __LIB_UTIL_UTIL_PW_H__ */
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
index c75b12e0b9..688aac487b 100644
--- a/source3/auth/auth_util.c
+++ b/source3/auth/auth_util.c
@@ -27,6 +27,7 @@
#include "../lib/crypto/arcfour.h"
#include "rpc_client/init_lsa.h"
#include "../libcli/security/security.h"
+#include "../lib/util/util_pw.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_AUTH
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 94cc9f9baa..600ed7aa8f 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -967,9 +967,7 @@ bool nt_time_is_set(const NTTIME *nt);
/* The following definitions come from lib/username.c */
-struct passwd *tcopy_passwd(TALLOC_CTX *mem_ctx, const struct passwd *from) ;
void flush_pwnam_cache(void);
-struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid) ;
char *get_user_home_dir(TALLOC_CTX *mem_ctx, const char *user);
struct passwd *Get_Pwnam_alloc(TALLOC_CTX *mem_ctx, const char *user);
diff --git a/source3/lib/username.c b/source3/lib/username.c
index eea906128e..40e284a01a 100644
--- a/source3/lib/username.c
+++ b/source3/lib/username.c
@@ -58,26 +58,6 @@ static struct passwd *getpwnam_alloc_cached(TALLOC_CTX *mem_ctx, const char *nam
}
/****************************************************************************
- talloc copy a struct passwd.
-****************************************************************************/
-
-struct passwd *tcopy_passwd(TALLOC_CTX *mem_ctx, const struct passwd *from)
-{
- struct passwd *ret = TALLOC_P(mem_ctx, struct passwd);
- if (!ret) {
- return NULL;
- }
- ret->pw_name = talloc_strdup(ret, from->pw_name);
- ret->pw_passwd = talloc_strdup(ret, from->pw_passwd);
- ret->pw_uid = from->pw_uid;
- ret->pw_gid = from->pw_gid;
- ret->pw_gecos = talloc_strdup(ret, from->pw_gecos);
- ret->pw_dir = talloc_strdup(ret, from->pw_dir);
- ret->pw_shell = talloc_strdup(ret, from->pw_shell);
- return ret;
-}
-
-/****************************************************************************
Flush all cached passwd structs.
****************************************************************************/
@@ -87,21 +67,6 @@ void flush_pwnam_cache(void)
}
/****************************************************************************
- talloc'ed version of getpwuid.
-****************************************************************************/
-
-struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid)
-{
- struct passwd *temp = sys_getpwuid(uid);
-
- if (!temp) {
- return NULL;
- }
-
- return tcopy_passwd(mem_ctx, temp);
-}
-
-/****************************************************************************
Get a users home directory.
****************************************************************************/
diff --git a/source3/lib/winbind_util.c b/source3/lib/winbind_util.c
index 57cb3a9f6a..ad1ccf5538 100644
--- a/source3/lib/winbind_util.c
+++ b/source3/lib/winbind_util.c
@@ -20,6 +20,7 @@
#include "includes.h"
#include "../libcli/security/security.h"
+#include "../lib/util/util_pw.h"
#if defined(WITH_WINBIND)
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index fdc4bdc486..ecf72786f0 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -26,6 +26,7 @@
#include "../libcli/auth/libcli_auth.h"
#include "secrets.h"
#include "../libcli/security/security.h"
+#include "../lib/util/util_pw.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_PASSDB
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index 07c56ebd43..0ac9a97411 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -48,6 +48,7 @@
#include "secrets.h"
#include "idmap_cache.h"
#include "../libcli/security/security.h"
+#include "../lib/util/util_pw.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_PASSDB
diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c
index b4e8b19f1f..18d222373a 100644
--- a/source3/utils/smbpasswd.c
+++ b/source3/utils/smbpasswd.c
@@ -19,6 +19,7 @@
#include "includes.h"
#include "secrets.h"
#include "../librpc/gen_ndr/samr.h"
+#include "../lib/util/util_pw.h"
/*
* Next two lines needed for SunOS and don't