From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- release/src/router/busybox/include/shadow_.h | 154 +++++++++++++++------------ 1 file changed, 86 insertions(+), 68 deletions(-) (limited to 'release/src/router/busybox/include/shadow_.h') diff --git a/release/src/router/busybox/include/shadow_.h b/release/src/router/busybox/include/shadow_.h index 300a37e5..02d3bf9a 100644 --- a/release/src/router/busybox/include/shadow_.h +++ b/release/src/router/busybox/include/shadow_.h @@ -1,82 +1,100 @@ -/* - * Copyright 1988 - 1994, Julianne Frances Haugh - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Julianne F. Haugh nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY JULIE HAUGH AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL JULIE HAUGH OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ +/* vi: set sw=4 ts=4: */ +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. -#ifndef _H_SHADOW -#define _H_SHADOW + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + The GNU C Library 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 + Lesser General Public License for more details. -#ifdef USE_SYSTEM_SHADOW -#include -#else + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ -/* - * This information is not derived from AT&T licensed sources. Posted - * to the USENET 11/88, and updated 11/90 with information from SVR4. - * - * $Id: shadow_.h,v 1.1.3.1 2004/12/29 07:07:44 honor Exp $ - */ +/* Declaration of types and functions for shadow password suite */ -typedef long sptime; +#ifndef BB_SHADOW_H +#define BB_SHADOW_H 1 -/* - * Shadow password security file structure. - */ +PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN -struct spwd { - char *sp_namp; /* login name */ - char *sp_pwdp; /* encrypted password */ - sptime sp_lstchg; /* date of last change */ - sptime sp_min; /* minimum number of days between changes */ - sptime sp_max; /* maximum number of days between changes */ - sptime sp_warn; /* number of days of warning before password - expires */ - sptime sp_inact; /* number of days after password expires - until the account becomes unusable. */ - sptime sp_expire; /* days since 1/1/70 until account expires */ - unsigned long sp_flag; /* reserved for future use */ -}; - -/* - * Shadow password security file functions. +/* This file is #included after #include + * We will use libc-defined structures, but will #define function names + * so that function calls are directed to bb_internal_XXX replacements */ -#include /* for FILE */ +/* Paths to the user database files */ +#ifndef _PATH_SHADOW +#define _PATH_SHADOW "/etc/shadow" +#endif -extern struct spwd *getspent(void); -extern struct spwd *sgetspent(const char *); -extern struct spwd *fgetspent(FILE *); +#define setspent bb_internal_setspent +#define endspent bb_internal_endspent +#define getspent bb_internal_getspent +#define getspnam bb_internal_getspnam +#define sgetspent bb_internal_sgetspent +#define fgetspent bb_internal_fgetspent +#define putspent bb_internal_putspent +#define getspent_r bb_internal_getspent_r +#define getspnam_r bb_internal_getspnam_r +#define sgetspent_r bb_internal_sgetspent_r +#define fgetspent_r bb_internal_fgetspent_r +#define lckpwdf bb_internal_lckpwdf +#define ulckpwdf bb_internal_ulckpwdf + + +/* All function names below should be remapped by #defines above + * in order to not collide with libc names. */ + + +/* Open database for reading */ extern void setspent(void); + +/* Close database */ extern void endspent(void); -extern int putspent(const struct spwd *, FILE *); -extern struct spwd *getspnam(const char *name); -extern struct spwd *pwd_to_spwd(const struct passwd *pw); -#endif /* USE_LOCAL_SHADOW */ +/* Get next entry from database, perhaps after opening the file */ +extern struct spwd *getspent(void); + +/* Get shadow entry matching NAME */ +extern struct spwd *getspnam(const char *__name); + +/* Read shadow entry from STRING */ +extern struct spwd *sgetspent(const char *__string); + +/* Read next shadow entry from STREAM */ +extern struct spwd *fgetspent(FILE *__stream); + +/* Write line containing shadow password entry to stream */ +extern int putspent(const struct spwd *__p, FILE *__stream); + +/* Reentrant versions of some of the functions above */ +extern int getspent_r(struct spwd *__result_buf, char *__buffer, + size_t __buflen, struct spwd **__result); + +extern int getspnam_r(const char *__name, struct spwd *__result_buf, + char *__buffer, size_t __buflen, + struct spwd **__result); + +extern int sgetspent_r(const char *__string, struct spwd *__result_buf, + char *__buffer, size_t __buflen, + struct spwd **__result); + +extern int fgetspent_r(FILE *__stream, struct spwd *__result_buf, + char *__buffer, size_t __buflen, + struct spwd **__result); +/* Protect password file against multi writers */ +extern int lckpwdf(void); + +/* Unlock password file */ +extern int ulckpwdf(void); + +POP_SAVED_FUNCTION_VISIBILITY -#endif /* _H_SHADOW */ +#endif /* shadow.h */ -- cgit v1.2.3-54-g00ecf