From 64421129b672d0ce55c5aa235e5038dd2ea1b32b Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 2 Mar 2011 16:06:32 +0100 Subject: lib/util/util_pw: share sys_get{pw,gr} group of calls. Guenther --- lib/util/util_pw.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ lib/util/util_pw.h | 39 +++++++++++++++++++++++++++++++++++++++ lib/util/wscript_build | 5 +++++ 3 files changed, 94 insertions(+) create mode 100644 lib/util/util_pw.h (limited to 'lib/util') diff --git a/lib/util/util_pw.c b/lib/util/util_pw.c index bda7e24ede..cb7b45c135 100644 --- a/lib/util/util_pw.c +++ b/lib/util/util_pw.c @@ -3,7 +3,12 @@ Safe versions of getpw* calls + Copyright (C) Andrew Tridgell 1992-1998 + Copyright (C) Jeremy Allison 1998-2005 Copyright (C) Andrew Bartlett 2002 + Copyright (C) Timur Bakeyev 2005 + Copyright (C) Bjoern Jacke 2006-2007 + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +25,51 @@ */ #include "includes.h" +#include "system/passwd.h" +#include "lib/util/util_pw.h" + +/************************************************************************** + Wrappers for setpwent(), getpwent() and endpwent() +****************************************************************************/ + +void sys_setpwent(void) +{ + setpwent(); +} + +struct passwd *sys_getpwent(void) +{ + return getpwent(); +} + +void sys_endpwent(void) +{ + endpwent(); +} + +/************************************************************************** + Wrappers for getpwnam(), getpwuid(), getgrnam(), getgrgid() +****************************************************************************/ + +struct passwd *sys_getpwnam(const char *name) +{ + return getpwnam(name); +} + +struct passwd *sys_getpwuid(uid_t uid) +{ + return getpwuid(uid); +} + +struct group *sys_getgrnam(const char *name) +{ + return getgrnam(name); +} + +struct group *sys_getgrgid(gid_t gid) +{ + return getgrgid(gid); +} static struct passwd *alloc_copy_passwd(TALLOC_CTX *mem_ctx, const struct passwd *from) diff --git a/lib/util/util_pw.h b/lib/util/util_pw.h new file mode 100644 index 0000000000..fa212b9c61 --- /dev/null +++ b/lib/util/util_pw.h @@ -0,0 +1,39 @@ +/* + Unix SMB/CIFS implementation. + + Safe versions of getpw* calls + + Copyright (C) Andrew Tridgell 1992-1998 + Copyright (C) Jeremy Allison 1997-2001. + Copyright (C) Andrew Bartlett 2002 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef __LIB_UTIL_UTIL_PW_H__ +#define __LIB_UTIL_UTIL_PW_H__ + +void sys_setpwent(void); +struct passwd *sys_getpwent(void); +void sys_endpwent(void); +struct passwd *sys_getpwnam(const char *name); +struct passwd *sys_getpwuid(uid_t uid); +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); + +#endif /* __LIB_UTIL_UTIL_PW_H__ */ diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 7f5b1d2c67..6aaf04c96e 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -86,3 +86,8 @@ bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD', public_deps='tevent' ) +bld.SAMBA_SUBSYSTEM('UTIL_PW', + source='util_pw.c', + local_include=False, + public_deps='talloc' + ) -- cgit