Diff for /libaitcfg/src/aitcfg.c between versions 1.12 and 1.16.6.3

version 1.12, 2014/03/03 09:41:09 version 1.16.6.3, 2025/08/19 11:22:09
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 - 2014Copyright 2004 - 2025
         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 71  cfg_tree_cmp(struct tagCfg *a, struct tagCfg *b) Line 71  cfg_tree_cmp(struct tagCfg *a, struct tagCfg *b)
   
         assert(a && b);          assert(a && b);
   
        ret = ((AIT_KEY(&a->cfg_sec) << 16) | AIT_KEY(&a->cfg_attr)) -         ret = ((AIT_KEY(&a->cfg_sec) << 15) | AIT_KEY(&a->cfg_attr)) - 
                ((AIT_KEY(&b->cfg_sec) << 16) | AIT_KEY(&b->cfg_attr));                ((AIT_KEY(&b->cfg_sec) << 15) | AIT_KEY(&b->cfg_attr));
   
         if (ret < 0)          if (ret < 0)
                 return -1;                  return -1;
Line 157  cfgEndConfig(cfg_root_t **pcfg) Line 157  cfgEndConfig(cfg_root_t **pcfg)
 }  }
   
 /*  /*
    * cfgInitConfigExt() - Init existed config root
    *
    * @cfg = Config root
    * return: NULL error or !=NULL inited config root
    */
   cfg_root_t *
   cfgInitConfigExt(cfg_root_t * __restrict cfg)
   {
           pthread_mutex_t mtx = { 0 };
   
           if (!TAILQ_EMPTY(cfg) || !RB_EMPTY(cfg) ||
                           memcmp(&cfg->rc_mtx, &mtx, sizeof mtx))
                   cfgUnloadConfig(cfg);
   
           memset(cfg, 0, sizeof(cfg_root_t));
   
           pthread_mutex_init(&cfg->rc_mtx, NULL);
   
           TAILQ_INIT(cfg);
           RB_INIT(cfg);
           return cfg;
   }
   
   /*
  * cfgLoadConfig() - Load config from file   * cfgLoadConfig() - Load config from file
  *   *
  * @cfgName = Config filename   * @cfgName = Config filename
Line 168  cfgLoadConfig(const char *cfgName, cfg_root_t * __rest Line 192  cfgLoadConfig(const char *cfgName, cfg_root_t * __rest
 {  {
         FILE *f;          FILE *f;
         int ret;          int ret;
           pthread_mutex_t mtx = { 0 };
   
         if (!cfgName || !cfg) {          if (!cfgName || !cfg) {
                 cfg_SetErr(EINVAL, "Invalid parameter(s)");                  cfg_SetErr(EINVAL, "Invalid parameter(s)");
                 return -1;                  return -1;
         } else {          } else {
                   if (!TAILQ_EMPTY(cfg) || !RB_EMPTY(cfg) || memcmp(&cfg->rc_mtx, &mtx, sizeof mtx))
                           cfgUnloadConfig(cfg);
                   /*
                   if (memcmp(&cfg->rc_mtx, &mtx, sizeof mtx))
                           pthread_mutex_destroy(&cfg->rc_mtx);
                           */
   
                   memset(cfg, 0, sizeof(cfg_root_t));
   
                 pthread_mutex_init(&cfg->rc_mtx, NULL);                  pthread_mutex_init(&cfg->rc_mtx, NULL);
   
                 TAILQ_INIT(cfg);                  TAILQ_INIT(cfg);
Line 232  cfgUnloadConfig(cfg_root_t * __restrict cfg) Line 266  cfgUnloadConfig(cfg_root_t * __restrict cfg)
   
         cfgClearConfig(cfg);          cfgClearConfig(cfg);
         pthread_mutex_destroy(&cfg->rc_mtx);          pthread_mutex_destroy(&cfg->rc_mtx);
           memset(&cfg->rc_mtx, 0, sizeof cfg->rc_mtx);
 }  }
   
 /*  /*
Line 257  cfgCreateConfig(const char *csConfigName, cfg_root_t * Line 292  cfgCreateConfig(const char *csConfigName, cfg_root_t *
                 return -1;                  return -1;
         }          }
                   
        ret = cfgWriteConfig(f, cfg, whitespace);        ret = cfgWriteConfigRaw(f, cfg, whitespace);
   
         fclose(f);          fclose(f);
         return ret;          return ret;
Line 321  cfgLoadPasswd(const char *pwdName, pwd_root_t * __rest Line 356  cfgLoadPasswd(const char *pwdName, pwd_root_t * __rest
                 cfg_SetErr(EINVAL, "Invalid parameter(s)");                  cfg_SetErr(EINVAL, "Invalid parameter(s)");
                 return -1;                  return -1;
         } else {          } else {
                   memset(pwd, 0, sizeof(pwd_root_t));
   
                 pthread_mutex_init(&pwd->pwd_mtx, NULL);                  pthread_mutex_init(&pwd->pwd_mtx, NULL);
   
                 SLIST_INIT(pwd);                  SLIST_INIT(pwd);

Removed from v.1.12  
changed lines
  Added in v.1.16.6.3


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