1 /* 2 * Copyright 2008, Haiku Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _SHADOW_H_ 6 #define _SHADOW_H_ 7 8 #include <stddef.h> 9 #include <stdio.h> 10 11 struct spwd { 12 char* sp_namp; /* login name */ 13 char* sp_pwdp; /* encrypted password */ 14 int sp_min; /* min days between password changes */ 15 int sp_max; /* max days between password changes */ 16 int sp_warn; /* days to warn before password expired */ 17 int sp_inact; /* days of inactivity until account expiration */ 18 int sp_expire; /* date when the account expires (days since 1970) */ 19 int sp_flag; /* unused */ 20 }; 21 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 28 extern struct spwd* getspent(void); 29 extern int getspent_r(struct spwd* spwd, char* buffer, size_t bufferSize, 30 struct spwd** _result); 31 extern void setspent(void); 32 extern void endspent(void); 33 34 extern struct spwd* getspnam(const char* name); 35 extern int getspnam_r(const char* name, struct spwd* spwd, char* buffer, 36 size_t bufferSize, struct spwd** _result); 37 38 extern struct spwd* sgetspent(const char* line); 39 extern int sgetspent_r(const char* line, struct spwd *spwd, char *buffer, 40 size_t bufferSize, struct spwd** _result); 41 42 extern struct spwd* fgetspent(FILE* file); 43 extern int fgetspent_r(FILE* file, struct spwd* spwd, char* buffer, 44 size_t bufferSize, struct spwd** _result); 45 46 47 #ifdef __cplusplus 48 } 49 #endif 50 51 52 #endif // _SHADOW_H_ 53