X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fs_conf.c;h=96f2b99efed09ce18333be6e4218e5e1bcb1b2cd;hb=a36ad5e29241b0c89379947b13887cb6930ef3e0;hp=2cc9385e2c8751c67f1ae2c2bed85ab15d456b13;hpb=78b1cd281a48ffd6e7fb76e407cc6d7c4b121394;p=ircu2.10.12-pk.git diff --git a/ircd/s_conf.c b/ircd/s_conf.c index 2cc9385..96f2b99 100644 --- a/ircd/s_conf.c +++ b/ircd/s_conf.c @@ -221,7 +221,6 @@ void conf_parse_userhost(struct ConfItem *aconf, char *host) aconf->addrbits = addrbits; else aconf->addrbits = -1; - MyFree(host); } /** Copies a completed DNS query into its ConfItem. @@ -817,9 +816,9 @@ void clear_quarantines(void) static int conf_error; /** When non-zero, indicates that the configuration file was loaded at least once. */ static int conf_already_read; -extern FILE *yyin; extern void yyparse(void); -extern void init_lexer(void); +extern int init_lexer(void); +extern void deinit_lexer(void); /** Read configuration file. * @return Zero on failure, non-zero on success. */ @@ -828,11 +827,10 @@ int read_configuration_file(void) conf_error = 0; feature_unmark(); /* unmark all features for resetting later */ clear_nameservers(); /* clear previous list of DNS servers */ - /* Now just open an fd. The buffering isn't really needed... */ - init_lexer(); + if (!init_lexer()) + return 0; yyparse(); - fclose(yyin); - yyin = NULL; + deinit_lexer(); feature_mark(); /* reset unmarked features */ conf_already_read = 1; return 1; @@ -946,9 +944,6 @@ int rehash(struct Client *cptr, int sig) clear_quarantines(); - if (sig != 2) - restart_resolver(); - class_mark_delete(); mark_listeners_closing(); auth_mark_closing(); @@ -956,6 +951,9 @@ int rehash(struct Client *cptr, int sig) read_configuration_file(); + if (sig != 2) + restart_resolver(); + log_reopen(); /* reopen log files */ auth_close_unused();