Mercurial > hg > freeDiameter
diff extensions/rt_default/rtd_conf.y @ 1336:cec0812038bb
rt_default: add reload support.
When SIGUSR1 is sent to the freeDiameter process, rt_default reloads
its config file.
Written for Effortel Technologies SA, published with their consent.
author | Thomas Klausner <tk@giga.or.at> |
---|---|
date | Tue, 09 Apr 2019 15:46:50 +0200 |
parents | 1af09cc156d6 |
children | 566bb46cc73f |
line wrap: on
line diff
--- a/extensions/rt_default/rtd_conf.y Tue Apr 09 15:43:23 2019 +0200 +++ b/extensions/rt_default/rtd_conf.y Tue Apr 09 15:46:50 2019 +0200 @@ -54,6 +54,7 @@ /* Forward declaration */ int yyparse(char * conffile); +void rtd_confrestart(FILE *input_file); static int rules_added = 0; @@ -65,25 +66,27 @@ TRACE_ENTRY("%p", conffile); - TRACE_DEBUG (FULL, "Parsing configuration file: %s...", conffile); - + TRACE_DEBUG (FULL, "rt_default: Parsing configuration file: %s...", conffile); + + rules_added = 0; rtd_confin = fopen(conffile, "r"); if (rtd_confin == NULL) { ret = errno; fd_log_debug("Unable to open extension configuration file %s for reading: %s", conffile, strerror(ret)); - TRACE_DEBUG (INFO, "Error occurred, message logged -- configuration file."); + TRACE_DEBUG (INFO, "rt_default: Error occurred, message logged -- configuration file."); return ret; } + rtd_confrestart(rtd_confin); ret = yyparse(conffile); fclose(rtd_confin); if (ret != 0) { - TRACE_DEBUG (INFO, "Unable to parse the configuration file."); + TRACE_DEBUG (INFO, "rt_default: Unable to parse the configuration file."); return EINVAL; } else { - TRACE_DEBUG(FULL, "Added %d RULES routing entries successfully.", rules_added); + TRACE_DEBUG(INFO, "rt_default: Added %d RULES routing entries successfully.", rules_added); } return 0; @@ -95,7 +98,7 @@ /* Function to report the errors */ void yyerror (YYLTYPE *ploc, char * conffile, char const *s) { - TRACE_DEBUG(INFO, "Error in configuration parsing"); + TRACE_DEBUG(INFO, "rt_default: Error in configuration parsing"); if (ploc->first_line != ploc->last_line) fd_log_debug("%s:%d.%d-%d.%d : %s", conffile, ploc->first_line, ploc->first_column, ploc->last_line, ploc->last_column, s);