Changeset - 038a38cef284
[Not reviewed]
default
0 2 0
Nathan Brink (binki) - 16 years ago 2009-11-29 23:22:14
ohnobinki@ohnopublishing.net
listen block eating, config parse error handling
2 files changed with 22 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/common/options.c
Show inline comments
 
@@ -173,7 +173,7 @@ int options_init(int argc, char *argv[],
 
	      CFGF_MULTI | CFGF_TITLE),
 
      CFG_SEC(myname,
 
	      myopts,
 
	      0),
 
	      CFGF_NONE),
 
      CFG_FUNC("include",
 
	       &cfg_include),
 
      CFG_END()
 
@@ -192,6 +192,8 @@ int options_init(int argc, char *argv[],
 

	
 
    case CFG_PARSE_ERROR:
 

	
 
      fprintf(stderr, "error parsing configuration file, exiting\n");
 

	
 
      free((*allopts)->data);
 
      free(*allopts);
 
      free(configfile);
src/server/distrend.c
Show inline comments
 
@@ -608,6 +608,8 @@ void distrenjob_remove(struct general_in
 
/* Grabs config info from confs */
 
int distrend_do_config(int argc, char *argv[], struct distrend_config **config)
 
{
 
  unsigned int counter;
 

	
 
  cfg_opt_t myopts_listen[] =
 
    {
 
      CFG_SIMPLE_STR("type", NULL),
 
@@ -625,6 +627,7 @@ int distrend_do_config(int argc, char *a
 
    };
 

	
 
  struct distrenjob *distrenjob;
 
  cfg_t *cfg_listen;
 

	
 
  int tmp;
 

	
 
@@ -642,7 +645,20 @@ int distrend_do_config(int argc, char *a
 
  *config = malloc(sizeof(struct distrend_config));
 
  myopts[1].simple_value = &(*config)->datadir;
 

	
 
  options_init(argc, argv, &(*config)->mycfg, myopts, "daemon", &(*config)->options);
 
  if(options_init(argc, argv, &(*config)->mycfg, myopts, "daemon", &(*config)->options))
 
    return 1;
 

	
 
  /**
 
     grab listen blocks:
 
   */
 
  (*config)->listens = malloc(sizeof(struct distrend_listen) * (cfg_size((*config)->mycfg, "listen") + 1));
 
  for(counter = 0; counter < cfg_size((*config)->mycfg, "listen"); counter ++)
 
    {
 
      cfg_listen = cfg_getnsec((*config)->mycfg, "listen", counter);
 
      (*config)->listens[counter].port = cfg_getint(cfg_listen, "port");
 
      (*config)->listens[counter].sock = -1;
 
    }
 
  memset(&(*config)->listens[counter], '\0', sizeof(struct distrend_listen));
 

	
 
  fprintf(stderr, "using %s as datadir\n", (*config)->datadir);
 

	
 
@@ -1117,7 +1133,8 @@ int main(int argc, char *argv[])
 
    }
 
  cont = 1;
 

	
 
  distrend_do_config(argc, argv, &config);
 
  if(distrend_do_config(argc, argv, &config))
 
    return 1;
 

	
 
  if(start_data(&general_info, config->datadir))
 
    {
0 comments (0 inline, 0 general)