Diff for /libaitcfg/src/queue.c between versions 1.6.4.2 and 1.6.4.3

version 1.6.4.2, 2012/04/02 15:12:15 version 1.6.4.3, 2012/04/02 15:39:55
Line 85  _destroyAttribute(struct tagCfg *av) Line 85  _destroyAttribute(struct tagCfg *av)
         if (!av)          if (!av)
                 return;                  return;
   
         AIT_FREE_VAL(&av->cfg_val);  
         AIT_FREE_VAL(&av->cfg_attr);  
         AIT_FREE_VAL(&av->cfg_sec);  
         free(av);  
 }  }
   
 // ----------------------------------------------  // ----------------------------------------------
Line 128  cfg_findAttribute(cfg_root_t * __restrict cfg, const c Line 124  cfg_findAttribute(cfg_root_t * __restrict cfg, const c
   
         return 0;          return 0;
 }  }
#if 0
 /*  /*
 * cfg_UnsetAttribute() Unset item from config list and free resources * cfg_unsetAttribute() - Unset item from config and free resources
 * @cfg = Head list element *
  * @cfg = Config root
  * @csSec = Config section //[{csSec}], if NULL unset in *default* section   * @csSec = Config section //[{csSec}], if NULL unset in *default* section
 * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute * @csAttr = Config attribute //{csAttr} = ...
 * return: 0 item not found, -1 error: null parameters; >0 position in list * return: 0 item not found, -1 error or 1 removed item
*/ */
int cfg_UnsetAttribute(sl_config * __restrict cfg, const u_char *csSec, const u_char *csAttr)int
 cfg_unsetAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
 {  {
        struct tagPair *av, *curr;        struct tagCfg *av;
        register int cx = 0; 
   
         if (!cfg || !csAttr)          if (!cfg || !csAttr)
                 return -1;                  return -1;
   
        av = SelectAttribute(cfg, csSec, csAttr);        av = _selectAttribute(cfg, csSec, csAttr);
         if (!av)          if (!av)
                 return 0;                  return 0;
   
        // remove element        CFG_RC_LOCK(cfg);
        //      remove element when is first!        RB_REMOVE(tagRC, cfg, av);
        if (cfg->slh_first == av) {        SLIST_REMOVE(cfg, av, tagCfg, cfg_next);
                cfg->slh_first = cfg->slh_first->sle_next;        CFG_RC_UNLOCK(cfg);
   
                DestroyAttribute(av);        AIT_FREE_VAL(&av->cfg_val);
                return 1;        AIT_FREE_VAL(&av->cfg_attr);
        }        AIT_FREE_VAL(&av->cfg_sec);
        //      remove element in other cases...        free(av);
        curr = cfg->slh_first;        return 1;
        while (curr->sle_next != av) { 
                ++cx; 
                curr = curr->sle_next; 
        } 
        curr->sle_next = curr->sle_next->sle_next; 
 
        DestroyAttribute(av); 
        return cx; 
 }  }
 #endif  
   
 /*  /*
  * cfg_setAttribute() - Set item in config or adding new item if not exists   * cfg_setAttribute() - Set item in config or adding new item if not exists

Removed from v.1.6.4.2  
changed lines
  Added in v.1.6.4.3


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