[PATCH 2/2] wpa_supplicant: Allow re-open of log files with SIGHUP

Jouni Malinen j at w1.fi
Thu Nov 18 06:10:50 EST 2010


On Wed, Nov 17, 2010 at 04:58:06PM -0800, Ben Greear wrote:
> With this, one can cause wpa_supplicant log files to
> roll:
> 
> mv log.txt log.txt.old
> kill -HUP <wpa_supplicant-pid>

With the potential of getting configuration changes since SIGHUP is also
requesting wpa_supplicant to re-read configuration file.

> diff --git a/wpa_supplicant/main.c b/wpa_supplicant/main.c
> +void handle_sighup(int sig, void *signal_ctx)
> +{
> +	wpa_printf(MSG_INFO, "SIGHUP received - reopening log-file");
> +	wpa_debug_close_file();
> +	wpa_debug_open_file(params.wpa_debug_file_path);
> +	wpa_printf(MSG_INFO, "SIGHUP received - reopened log-file");
> +}

why would this be in main.c and not in wpa_supplicant.c where all builds
can use it? Please also note that there is already a SIGHUP handler in
wpa_supplicant.c (wpa_supplicant_reconfig) that should be used instead
of adding a new one.

> diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
> @@ -2420,6 +2421,10 @@ struct wpa_global * wpa_supplicant_init(struct wpa_params *params)
> +#ifndef CONFIG_NATIVE_WINDOWS
> +	eloop_register_signal(SIGHUP, handle_sighup, NULL);
> +#endif /* CONFIG_NATIVE_WINDOWS */
> +

Proper way of registering eloop handler for SIGHUP is to call
eloop_register_signal_reconfig(). Anyway, this is already done in
wpa_supplicant, so there is no need to add new registration. Please also
note that this would break builds that use other main*.c file than
main.c.

-- 
Jouni Malinen                                            PGP id EFC895FA


More information about the HostAP mailing list