- if(errno == EINTR) /* because of alarm */
- continue;
- syslog(LOG_ERR, _("Error while waiting for input: %m"));
- return;
+ if(errno != EINTR) /* because of alarm */
+ {
+ syslog(LOG_ERR, _("Error while waiting for input: %m"));
+ return;
+ }
+ }
+
+ if(sighup)
+ {
+ close_network_connections();
+ clear_config();
+ if(read_config_file(configfilename))
+ {
+ syslog(LOG_ERR, _("Unable to reread configuration file, exitting"));
+ exit(0);
+ }
+ if(setup_network_connections())
+ {
+ syslog(LOG_ERR, _("Unable to restart, exitting"));
+ exit(0);
+ }
+ sighup = 0;
+ continue;