diff options
author | Günther Deschner <gd@samba.org> | 2011-03-02 16:11:00 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2011-03-30 01:13:06 +0200 |
commit | 96487959e90b1aeec071d94e7f2c744af17fb5d0 (patch) | |
tree | e819cf118d777e88dd8497d533df75ba673955e0 | |
parent | 64421129b672d0ce55c5aa235e5038dd2ea1b32b (diff) | |
download | samba-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.c | 16 | ||||
-rw-r--r-- | lib/util/util_pw.h | 4 | ||||
-rw-r--r-- | source3/auth/auth_util.c | 1 | ||||
-rw-r--r-- | source3/include/proto.h | 2 | ||||
-rw-r--r-- | source3/lib/username.c | 35 | ||||
-rw-r--r-- | source3/lib/winbind_util.c | 1 | ||||
-rw-r--r-- | source3/passdb/passdb.c | 1 | ||||
-rw-r--r-- | source3/passdb/pdb_ldap.c | 1 | ||||
-rw-r--r-- | source3/utils/smbpasswd.c | 1 |
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 |