-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.25 2001/10/25 03:40:48 david__schmidt Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.28 2001/12/30 14:07:32 steudten Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
*
* Revisions :
* $Log: loadcfg.c,v $
+ * Revision 1.28 2001/12/30 14:07:32 steudten
+ * - Add signal handling (unix)
+ * - Add SIGHUP handler (unix)
+ * - Add creation of pidfile (unix)
+ * - Add action 'top' in rc file (RH)
+ * - Add entry 'SIGNALS' to manpage
+ * - Add exit message to logfile (unix)
+ *
+ * Revision 1.27 2001/11/07 00:02:13 steudten
+ * Add line number in error output for lineparsing for
+ * actionsfile and configfile.
+ * Special handling for CLF added.
+ *
+ * Revision 1.26 2001/11/05 21:41:43 steudten
+ * Add changes to be a real daemon just for unix os.
+ * (change cwd to /, detach from controlling tty, set
+ * process group and session leader to the own process.
+ * Add DBG() Macro.
+ * Add some fatal-error log message for failed malloc().
+ * Add '-d' if compiled with 'configure --with-debug' to
+ * enable debug output.
+ *
* Revision 1.25 2001/10/25 03:40:48 david__schmidt
* Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
* threads to call select() simultaneously. So, it's time to do a real, live,
#include "errlog.h"
#include "ssplit.h"
#include "encode.h"
+#include "urlmatch.h"
const char loadcfg_h_rcs[] = LOADCFG_H_VERSION;
static void savearg(char *c, char *o, struct configuration_spec * config);
-
/*********************************************************************
*
* Function : unload_configfile
while (cur_fwd != NULL)
{
struct forward_spec * next_fwd = cur_fwd->next;
- free_url(cur_fwd->url);
+ free_url_spec(cur_fwd->url);
freez(cur_fwd->gateway_host);
freez(cur_fwd->forward_host);
struct configuration_spec * config = NULL;
struct client_state * fake_csp;
struct file_list *fs;
+ unsigned long linenum = 0;
DBG(1, ("load_config() entered..\n") );
- if (!check_file_changed(current_configfile, configfile, &fs))
+ if ( !check_file_changed(current_configfile, configfile, &fs))
{
/* No need to load */
return ((struct configuration_spec *)current_configfile->f);
/* Never get here - LOG_LEVEL_FATAL causes program exit */
}
- while (read_config_line(buf, sizeof(buf), configfp) != NULL)
+ while (read_config_line(buf, sizeof(buf), configfp, &linenum) != NULL)
{
char cmd[BUFFER_SIZE];
char arg[BUFFER_SIZE];
****************************************************************************/
case hash_confdir :
freez(config->confdir);
- config->confdir = strdup(arg);
+ config->confdir = make_path( NULL, arg);
continue;
/****************************************************************************
* error. To change back to an error, just change log level
* to LOG_LEVEL_FATAL.
*/
- log_error(LOG_LEVEL_ERROR, "Unrecognized directive (%luul) in "
+ log_error(LOG_LEVEL_ERROR, "Unrecognized directive '%s' in line %lu in "
+ "configuration file (%s).", buf, linenum, configfile);
+ /* log_error(LOG_LEVEL_ERROR, "Unrecognized directive (%luul) in "
"configuration file: \"%s\"", hash_string( cmd ), buf);
+ */
config->proxy_args = strsav( config->proxy_args, "<br>\nWARNING: unrecognized directive : ");
config->proxy_args = strsav( config->proxy_args, buf);
config->proxy_args = strsav( config->proxy_args, "<br><br>\n");
files->next = fs;
current_configfile = fs;
+ MustReload = 0;
return (config);
}