Diff for /libaitcfg/src/queue.c between versions 1.10 and 1.14

version 1.10, 2012/08/06 14:53:34 version 1.14, 2014/01/30 08:30:47
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012Copyright 2004 - 2014
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 58  _selectAttribute(cfg_root_t * __restrict cfg, const ch Line 58  _selectAttribute(cfg_root_t * __restrict cfg, const ch
   
         if (csSec && *csSec)          if (csSec && *csSec)
                 AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec,                   AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec, 
                                io_align(strlen(csSec), 1) / 2);                                E_ALIGN(strlen(csSec), 2) / 2);
         if (csAttr)          if (csAttr)
                 AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr,                   AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr, 
                                io_align(strlen(csAttr), 1) / 2);                                E_ALIGN(strlen(csAttr), 2) / 2);
   
         if (!csAttr)          if (!csAttr)
                 return RB_NFIND(tagRC, cfg, &fav);                  return RB_NFIND(tagRC, cfg, &fav);
Line 87  _selectAttribute(cfg_root_t * __restrict cfg, const ch Line 87  _selectAttribute(cfg_root_t * __restrict cfg, const ch
  * @csAttr = Config attribute //{csAttr} = ...   * @csAttr = Config attribute //{csAttr} = ...
  * return: 0 not found item, -1 error or >0 position in list   * return: 0 not found item, -1 error or >0 position in list
  */   */
inline intint
 cfg_findAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)  cfg_findAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
 {  {
         struct tagCfg *av, fav;          struct tagCfg *av, fav;
Line 101  cfg_findAttribute(cfg_root_t * __restrict cfg, const c Line 101  cfg_findAttribute(cfg_root_t * __restrict cfg, const c
   
         if (csSec && *csSec)          if (csSec && *csSec)
                 AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec,                   AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec, 
                                io_align(strlen(csSec), 1) / 2);                                E_ALIGN(strlen(csSec), 2) / 2);
         if (csAttr)          if (csAttr)
                 AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr,                   AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr, 
                                io_align(strlen(csAttr), 1) / 2);                                E_ALIGN(strlen(csAttr), 2) / 2);
   
        SLIST_FOREACH(av, cfg, cfg_next) {        TAILQ_FOREACH(av, cfg, cfg_next) {
                 ++cx;                  ++cx;
                 if (!cfg_tree_cmp(&fav, av))                  if (!cfg_tree_cmp(&fav, av))
                         return cx;                          return cx;
Line 137  cfg_unsetAttribute(cfg_root_t * __restrict cfg, const  Line 137  cfg_unsetAttribute(cfg_root_t * __restrict cfg, const 
   
         CFG_RC_LOCK(cfg);          CFG_RC_LOCK(cfg);
         RB_REMOVE(tagRC, cfg, av);          RB_REMOVE(tagRC, cfg, av);
        SLIST_REMOVE(cfg, av, tagCfg, cfg_next);        TAILQ_REMOVE(cfg, av, cfg_next);
         CFG_RC_UNLOCK(cfg);          CFG_RC_UNLOCK(cfg);
   
         AIT_FREE_VAL(&av->cfg_val);          AIT_FREE_VAL(&av->cfg_val);
         AIT_FREE_VAL(&av->cfg_attr);          AIT_FREE_VAL(&av->cfg_attr);
         AIT_FREE_VAL(&av->cfg_sec);          AIT_FREE_VAL(&av->cfg_sec);
        io_free(av);        e_free(av);
         return 1;          return 1;
 }  }
   
Line 169  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 169  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
                 /* adding new element */                  /* adding new element */
                 section = _selectAttribute(cfg, csSec, NULL);                  section = _selectAttribute(cfg, csSec, NULL);
   
                av = io_malloc(sizeof(struct tagCfg));                av = e_malloc(sizeof(struct tagCfg));
                 if (!av) {                  if (!av) {
                         LOGERR;                          LOGERR;
                         return -1;                          return -1;
Line 178  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 178  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
   
                         CFG_RC_LOCK(cfg);                          CFG_RC_LOCK(cfg);
                         if (!section)                          if (!section)
                                SLIST_INSERT_HEAD(cfg, av, cfg_next);                                TAILQ_INSERT_TAIL(cfg, av, cfg_next);
                         else                          else
                                SLIST_INSERT_AFTER(section, av, cfg_next);                                TAILQ_INSERT_BEFORE(section, av, cfg_next);
                         CFG_RC_UNLOCK(cfg);                          CFG_RC_UNLOCK(cfg);
                 }                  }
   
                 if (csSec && *csSec) {                  if (csSec && *csSec) {
                         AIT_SET_STR(&av->cfg_sec, csSec);                          AIT_SET_STR(&av->cfg_sec, csSec);
                         AIT_KEY(&av->cfg_sec) = crcFletcher16(AIT_GET_LIKE(&av->cfg_sec, u_short*),                           AIT_KEY(&av->cfg_sec) = crcFletcher16(AIT_GET_LIKE(&av->cfg_sec, u_short*), 
                                        io_align(AIT_LEN(&av->cfg_sec) - 1, 1) / 2);                                        E_ALIGN(AIT_LEN(&av->cfg_sec) - 1, 2) / 2);
                 }                  }
                 AIT_SET_STR(&av->cfg_val, csVal ? csVal : "");                  AIT_SET_STR(&av->cfg_val, csVal ? csVal : "");
                 AIT_SET_STR(&av->cfg_attr, csAttr);                  AIT_SET_STR(&av->cfg_attr, csAttr);
                 AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*),                   AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*), 
                                io_align(AIT_LEN(&av->cfg_attr) - 1, 1) / 2);                                E_ALIGN(AIT_LEN(&av->cfg_attr) - 1, 2) / 2);
   
                 CFG_RC_LOCK(cfg);                  CFG_RC_LOCK(cfg);
                 RB_INSERT(tagRC, cfg, av);                  RB_INSERT(tagRC, cfg, av);
Line 220  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 220  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
  * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute   * @csAttr = Config attribute //{csAttr} = ..., if NULL unset as *any* attribute
  * return: NULL item not found or null parameters, !=NULL value const string   * return: NULL item not found or null parameters, !=NULL value const string
  */   */
inline const char *const char *
 cfg_getAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)  cfg_getAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
 {  {
         struct tagCfg *av;          struct tagCfg *av;

Removed from v.1.10  
changed lines
  Added in v.1.14


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