--- libaitcfg/src/aitcfg.c 2012/09/18 08:44:19 1.7.6.1 +++ libaitcfg/src/aitcfg.c 2014/01/30 08:13:09 1.10.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcfg.c,v 1.7.6.1 2012/09/18 08:44:19 misho Exp $ +* $Id: aitcfg.c,v 1.10.2.1 2014/01/30 08:13:09 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Copyright 2004 - 2014 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -44,8 +44,6 @@ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF TH SUCH DAMAGE. */ #include "global.h" -#include "aitcfg.h" -#include "aitpwd.h" #pragma GCC visibility push(hidden) @@ -53,7 +51,20 @@ SUCH DAMAGE. int cfg_Errno; char cfg_Error[STRSIZ]; -inline int +int +cfg_Write(FILE *f, char *fmt, ...) +{ + int ret = 0; + va_list lst; + + va_start(lst, fmt); + ret = vfprintf(f, fmt, lst); + va_end(lst); + + return ret; +} + +int cfg_tree_cmp(struct tagCfg *a, struct tagCfg *b) { int ret; @@ -77,21 +88,21 @@ RB_GENERATE(tagRC, tagCfg, cfg_node, cfg_tree_cmp); // cfg_GetErrno() Get error code of last operation -inline int +int cfg_GetErrno() { return cfg_Errno; } // cfg_GetError() Get error text of last operation -inline const char * +const char * cfg_GetError() { return cfg_Error; } // cfg_SetErr() Set error to variables for internal use!!! -inline void +void cfg_SetErr(int eno, char *estr, ...) { va_list lst; @@ -118,7 +129,7 @@ cfgInitConfig(cfg_root_t * __restrict cfg) pthread_mutex_init(&cfg->rc_mtx, NULL); - SLIST_INIT(cfg); + TAILQ_INIT(cfg); RB_INIT(cfg); return 0; } @@ -169,13 +180,13 @@ cfgClearConfig(cfg_root_t * __restrict cfg) return; CFG_RC_LOCK(cfg); - while ((av = SLIST_FIRST(cfg))) { - SLIST_REMOVE_HEAD(cfg, cfg_next); + while ((av = TAILQ_FIRST(cfg))) { + TAILQ_REMOVE(cfg, av, cfg_next); AIT_FREE_VAL(&av->cfg_val); AIT_FREE_VAL(&av->cfg_attr); AIT_FREE_VAL(&av->cfg_sec); - io_free(av); + e_free(av); } cfg->rbh_root = NULL; CFG_RC_UNLOCK(cfg); @@ -304,7 +315,7 @@ cfgClearPasswd(pwd_root_t * __restrict pwd) AIT_FREE_VAL(&p->usr_realm); AIT_FREE_VAL(&p->usr_home); AIT_FREE_VAL(&p->usr_shell); - io_free(p); + e_free(p); } pwd->rbh_root = NULL; PWD_UNLOCK(pwd);