Diff for /libaitcfg/src/pq.c between versions 1.1.2.2 and 1.1.2.7

version 1.1.2.2, 2012/09/19 11:47:39 version 1.1.2.7, 2012/09/19 12:35:10
Line 61  _selectPasswd(pwd_root_t * __restrict pwd, u_int uid,  Line 61  _selectPasswd(pwd_root_t * __restrict pwd, u_int uid, 
                 return RB_FIND(tagPWD, pwd, &fu);                  return RB_FIND(tagPWD, pwd, &fu);
         }          }
   
        return cfg_findPasswdBy(pwd, PWD_CRIT_UID, uid);        return (struct tagUser*) cfg_findPasswdBy(pwd, PWD_CRIT_UID, uid);
 }  }
   
 /* --------------------------------------------------------------- */  /* --------------------------------------------------------------- */
Line 74  _selectPasswd(pwd_root_t * __restrict pwd, u_int uid,  Line 74  _selectPasswd(pwd_root_t * __restrict pwd, u_int uid, 
  * @arg1 = Username | UID | GID   * @arg1 = Username | UID | GID
  * return: NULL not found item or error and !=NULL found item   * return: NULL not found item or error and !=NULL found item
  */   */
struct tagUser *const struct tagUser *
 cfg_findPasswdBy(pwd_root_t * __restrict pwd, int criteria, ...)  cfg_findPasswdBy(pwd_root_t * __restrict pwd, int criteria, ...)
 {  {
         struct tagUser *u;          struct tagUser *u;
Line 83  cfg_findPasswdBy(pwd_root_t * __restrict pwd, int crit Line 83  cfg_findPasswdBy(pwd_root_t * __restrict pwd, int crit
   
         if (!pwd)          if (!pwd)
                 return NULL;                  return NULL;
           else
                   AIT_INIT_VAL(&v);
   
         va_start(lst, criteria);          va_start(lst, criteria);
         switch (criteria) {          switch (criteria) {
Line 107  cfg_findPasswdBy(pwd_root_t * __restrict pwd, int crit Line 109  cfg_findPasswdBy(pwd_root_t * __restrict pwd, int crit
                                 }                                  }
                                 break;                                  break;
                         case PWD_CRIT_UID:                          case PWD_CRIT_UID:
                                if (AIT_GET_U32(&u->usr_uid) == AIT_GET_U32(&v)) {                                if (AIT_GET_LIKE(&u->usr_uid, u_int) == AIT_GET_U32(&v)) {
                                         AIT_FREE_VAL(&v);                                          AIT_FREE_VAL(&v);
                                         return u;                                          return u;
                                 }                                  }
                                 break;                                  break;
                         case PWD_CRIT_GID:                          case PWD_CRIT_GID:
                                if (AIT_GET_U32(&u->usr_gid) == AIT_GET_U32(&v)) {                                if (AIT_GET_LIKE(&u->usr_gid, u_int) == AIT_GET_U32(&v)) {
                                         AIT_FREE_VAL(&v);                                          AIT_FREE_VAL(&v);
                                         return u;                                          return u;
                                 }                                  }
Line 180  cfg_unsetPasswd(pwd_root_t * __restrict pwd, int crite Line 182  cfg_unsetPasswd(pwd_root_t * __restrict pwd, int crite
  * cfg_setPasswd() - Set item in password or adding new item if not exists   * cfg_setPasswd() - Set item in password or adding new item if not exists
  *   *
  * @cfg = Password root   * @cfg = Password root
    * @fields = Meaning continuous field
  * @csName = Username   * @csName = Username
  * @csPass = Password   * @csPass = Password
  * @uid = UID   * @uid = UID
Line 193  cfg_unsetPasswd(pwd_root_t * __restrict pwd, int crite Line 196  cfg_unsetPasswd(pwd_root_t * __restrict pwd, int crite
  * return: 0 nothing changed, -1 error, 1 found and updated item or 2 added new item   * return: 0 nothing changed, -1 error, 1 found and updated item or 2 added new item
  */   */
 int  int
cfg_setPasswd(pwd_root_t * __restrict pwd, const char *csName, const char *csPass, cfg_setPasswd(pwd_root_t * __restrict pwd, u_char fields, const char *csName, const char *csPass, 
                 u_int uid, u_int gid, const char *csClass, u_int change, u_int expire,                   u_int uid, u_int gid, const char *csClass, u_int change, u_int expire, 
                 const char *csRealm, const char *csHome, const char *csShell)                  const char *csRealm, const char *csHome, const char *csShell)
 {  {
Line 211  cfg_setPasswd(pwd_root_t * __restrict pwd, const char  Line 214  cfg_setPasswd(pwd_root_t * __restrict pwd, const char 
                         return -1;                          return -1;
                 } else {                  } else {
                         memset(u, 0, sizeof(struct tagUser));                          memset(u, 0, sizeof(struct tagUser));
                           if (fields && fields < PWD_MAX_FIELDS)
                                   u->usr_fields = fields;
                           else
                                   u->usr_fields = PWD_MAX_FIELDS - 1;
   
                         PWD_LOCK(pwd);                          PWD_LOCK(pwd);
                         SLIST_INSERT_HEAD(pwd, u, usr_next);                          SLIST_INSERT_HEAD(pwd, u, usr_next);
Line 276  cfg_getPasswd(pwd_root_t * __restrict pwd, int criteri Line 283  cfg_getPasswd(pwd_root_t * __restrict pwd, int criteri
 {  {
         struct tagUser *u;          struct tagUser *u;
         va_list lst;          va_list lst;
           char *str;
   
         if (!pwd)          if (!pwd)
                 return NULL;                  return NULL;
Line 283  cfg_getPasswd(pwd_root_t * __restrict pwd, int criteri Line 291  cfg_getPasswd(pwd_root_t * __restrict pwd, int criteri
         va_start(lst, criteria);          va_start(lst, criteria);
         switch (criteria) {          switch (criteria) {
                 case PWD_CRIT_NAME:                  case PWD_CRIT_NAME:
                        u = _selectPasswd(pwd, 0, va_arg(lst, char*));                        str = va_arg(lst, char*);
                         if (!str)
                                 u = NULL;
                         else
                                 u = _selectPasswd(pwd, 0, str);
                         break;                          break;
                 case PWD_CRIT_UID:                  case PWD_CRIT_UID:
                         u = _selectPasswd(pwd, va_arg(lst, u_int), NULL);                          u = _selectPasswd(pwd, va_arg(lst, u_int), NULL);

Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.7


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