Diff for /libaitcfg/inc/aitpwd.h between versions 1.1.2.3 and 1.1.2.11

version 1.1.2.3, 2012/09/18 13:24:50 version 1.1.2.11, 2012/09/19 13:44:25
Line 48  SUCH DAMAGE. Line 48  SUCH DAMAGE.
   
   
 #include <time.h>  #include <time.h>
   #include <sys/types.h>
   #include <aitio.h>
   
   
   #define PWD_CRIT_NAME   0
   #define PWD_CRIT_UID    1
   #define PWD_CRIT_GID    2
   
   
 struct tagAcctDB {  struct tagAcctDB {
         unsigned short  db_ver;          unsigned short  db_ver;
         unsigned char   db_lock;          unsigned char   db_lock;
Line 166  int cfgReadPasswd(FILE *f, pwd_root_t * __restrict pwd Line 173  int cfgReadPasswd(FILE *f, pwd_root_t * __restrict pwd
  * return: -1 error or 0 ok   * return: -1 error or 0 ok
  */   */
 int cfgWritePasswd(FILE *f, pwd_root_t * __restrict pwd);  int cfgWritePasswd(FILE *f, pwd_root_t * __restrict pwd);
   
 #if 0  
 /*  /*
 * ReadPasswd() Read from file and add new item to user array * cfgConcatPasswd() - Concat two password roots into one
 * @f = file resource *
 * @ppwd = User array * @pwd = Password root
 * return: 0 ok; -1 error:: can`t allocate memory * @add_pwd = Concated password root will be destroy after merge
*/ * return: -1 error or 0 ok
int ReadPasswd(FILE *f, passwd_t * __restrict ppwd); */
/*int cfgConcatPasswd(pwd_root_t * __restrict pwd, pwd_root_t * __restrict add_pwd);
 * WritePasswd() Write to file from items in array 
 * @f = file resource 
 * @ppwd = User array 
 * return: 0 ok; -1 error:: can`t write to file 
*/ 
int WritePasswd(FILE *f, passwd_t * __restrict ppwd); 
   
   
 /*  /*
 * pwdCleanStr() Free strings in passwd_t value * cfgAuthPasswd() - Authenticate user against passwords db
 * @pwd = User object *
 * return: none * @pwd = Password root
*/ * @csName = Username
inline void pwdCleanStr(passwd_t __restrict pwd); * @csPass = Password
/* * return: =NULL deny or !=NULL allow
 * pwdFreeValue() Free passwd_t value */
 * @ppwd = User objectconst struct tagUser *cfgAuthPasswd(pwd_root_t * __restrict pwd, 
 * @idx = Index of attribute, if ALL == idx is free all structure                const char *csName, const char *csPass);
 * return: 0 ok, -1 error 
*/ 
inline int pwdFreeValue(passwd_t * __restrict ppwd, passwd_attr_t idx); 
/* 
 * pwdSetValue() Set passwd_t value 
 * @ppwd = User object 
 * @idx = Index of attribute, if ALL == idx clean User object and set username! 
 * @Value = Value to set 
 * return: number of fields in passwd_t; -1 error:: can`t set passwd_t 
*/ 
inline int pwdSetValue(passwd_t * __restrict ppwd, passwd_attr_t idx, unsigned char *Value); 
/* 
 * pwdGetValue() Get passwd_t value 
 * @pwd = User object 
 * @idx = Index of attribute, if ALL == idx is error! 
 * @Value = Value to get 
 * @valLen = Size of Value string 
 * return: number of fields in passwd_t; -1 error:: can`t get passwd_t 
*/ 
inline int pwdGetValue(passwd_t __restrict pwd, passwd_attr_t idx, unsigned char *Value, int valLen); 
   
   
 /*  /*
 * pwd_FindAttribute() Find by attribute position in user array * cfg_findPasswdBy() - Find user by criteria position in list
 * @pwd = User array *
 * @idx = Index of attribute, if ALL == idx return number of user array elements * @pwd = Password root
 * @csAttr = User attribute * @criteria = Search criteria [PWD_CRIT_NAME|PWD_CRIT_UID|PWD_CRIT_GID]
 * return: 0 not found item; -1 error: null parameters; >0 position in array + 1 * @arg1 = Username | UID | GID
*/ * return: NULL not found item or error and !=NULL found item
inline int pwd_FindAttribute(passwd_t __restrict pwd, passwd_attr_t idx, const unsigned char *csAttr); 
/* 
 * pwd_SetAttribute() Set user in array or add new user if not exists 
 * @ppwd = User array 
 * @idx = Index of attribute to set 
 * @val = User structure for setup 
 * return: 0 nothing changed, -1 error: not enough memory; 1 find and update item; 2 added new item 
*/ 
int pwd_SetAttribute(passwd_t * __restrict ppwd, passwd_attr_t idx, passwd_t val); 
/* 
 * pwd_GetAttribute() Get user from array, set username in val 
 * @pwd = User array 
 * @idx = Index of attribute to get, if idx == ALL return full element items 
 * @val = User structure 
 * return: 0 not found, -1 error; >0 found at position in array + 1 
*/ 
int pwd_GetAttribute(passwd_t __restrict pwd, passwd_attr_t idx, passwd_t val); 
/* 
 * pwd_UnsetAttribute() Unset user from array and free resources! 
 * @ppwd = User array 
 * @idx = Index of attribute to unset, if idx == ALL unset(delete) all items in element 
 * @val = User structure 
 * return: 0 item not found, -1 error: null parameters; >0 number of elements leave in array 
*/ 
int pwd_UnsetAttribute(passwd_t * __restrict ppwd, passwd_attr_t idx, passwd_t val); 
/* 
 * pwd_Authenticate() Authenticate user, set username and password in val 
 * @pwd = User array 
 * @val = User structure for authenticate, set username & password  
        after authentication fill other fields if exists 
 * return: 0 not found, -1 error; >0 found at position in array + 1 
*/ 
int pwd_Authenticate(passwd_t __restrict pwd, passwd_t val); 
 
 
/* 
 * pwd_openAcct() Open accounting aDat binary database 
 * @csName - DB name 
 * @minR - Minimum records in database 
 * @maxR - Maximum records in database(round-robin db), if 0 unlimited grow 
 * @recSize - Size of record element 
 * @wrapR - If maxR >0 give ability to wrap round-robin db 
 * return: NULL error or !=NULL opened db handle 
  */   */
struct tagAcctDB *pwd_openAcct(const char *csName, unsigned int minR, unsigned int maxR, const struct tagUser *cfg_findPasswdBy(pwd_root_t * __restrict pwd, int criteria, ...);
                size_t recSize, unsigned char wrapR); 
 /*  /*
 * pwd_closeAcct() Close accounting aDat binary database * cfg_unsetPasswd() - Unset item from passwords and free resources
 * @db - DB handle *
 * return: none * @pwd = Password root
  * @criteria = Search criteria [PWD_CRIT_NAME|PWD_CRIT_UID]
  * @arg1 = Username | UID
  * return: 0 item not found, -1 error or 1 removed item
  */   */
void pwd_closeAcct(struct tagAcctDB ** __restrict db);int cfg_unsetPasswd(pwd_root_t * __restrict pwd, int criteria, ...);
 /*  /*
 * pwd_writeAcct() Write accounting record to aDat binary database * cfg_setPasswd() - Set item in password or adding new item if not exists
 * @db - DB handle *
 * @posR - At position number, if db is unlimited grow (-1) write at last free record * @cfg = Password root
 * @rec - Record data * @fields = Meaning continuous field
 * return: -1 error or 0 ok * @csName = Username
  * @arg1 = Password
  * @arg2 = UID
  * @arg3 = GID
  * @arg4 = Login class
  * @arg5 = Chage date
  * @arg6 = Expire date
  * @arg7 = Realm
  * @arg8 = Home dir
  * @arg9 = Shell
  * return: 0 nothing changed, -1 error, 1 found and updated item or 2 added new item
  */   */
int pwd_writeAcct(struct tagAcctDB * __restrict db, unsigned int posR, void *rec);int cfg_setPasswd(pwd_root_t * __restrict pwd, u_char fields, const char *csName, ...);
 /*  /*
 * pwd_readAcct() Read accounting record from aDat binary database * cfg_getPasswd() - Get item from passwords and return structure from it
 * @db - DB handle *
 * @posR - From position number * @pwd = Password root
 * @rec - Record data buffer * @criteria = Search criteria [PWD_CRIT_NAME|PWD_CRIT_UID]
 * @recsize - Record data buffer size * @arg1 = Username | UID
 * return: -1 error or 0 ok * return: NULL item not found, !=NULL structure found
  */   */
int pwd_readAcct(struct tagAcctDB * __restrict db, unsigned int posR, void *rec, int recsize);inline const struct tagUser *cfg_getPasswd(pwd_root_t * __restrict pwd, int criteria, ...);
 
/* 
 * pwd_findAcct() Find accounting record from aDat binary database 
 * @db - DB handle 
 * @from - From position 
 * @to - To position, if 0 search to end-of-file 
 * @func - Check for match callback function 
 * @arg - Argument passthrough to callback as argument for search 
 * return: -1 error, 0 not found or >1 founded at position! (p.s:start from 1) 
 */ 
int64_t pwd_findAcct(struct tagAcctDB * __restrict db, unsigned int from, unsigned int to,  
                cb_acct_f func, void *arg); 
#endif 
   
   
 #endif  #endif

Removed from v.1.1.2.3  
changed lines
  Added in v.1.1.2.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>