[3/3] Only call radvd_update if a zone contains an IPv6.
mbox

Message ID 20170125134821.15442-3-stefan.schantl@ipfire.org
State Accepted
Commit 6325e3ccbfb73c8ee428b349eacbfc6de19dec47
Headers show

Message

Stefan Schantl Jan. 26, 2017, 12:48 a.m. UTC
On systems which lacks any IPv6 configured zone, radvd would be
started with an empty configuration file and crashes which will
brick the system startup and results in a frozen system.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 src/functions/functions.routing | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Stefan Schantl Jan. 26, 2017, 1:37 a.m. UTC | #1
Please ignore this patch,

it fixes the descibed issue on IPv4 only systems but there is another
issue with IPv6 as well which requires more and deeper work to get this
solved in a right way.

Thanks in advance,

-Stefan
> On systems which lacks any IPv6 configured zone, radvd would be
> started with an empty configuration file and crashes which will
> brick the system startup and results in a frozen system.
> 
> Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
> ---
>  src/functions/functions.routing | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/functions/functions.routing
> b/src/functions/functions.routing
> index c7aac09..4824f34 100644
> --- a/src/functions/functions.routing
> +++ b/src/functions/functions.routing
> @@ -81,7 +81,9 @@ routing_default_update() {
>  		routes=$(echo ${routes})
>  
>  		# Reload radvd configuration
> -		[[ "${proto}" = "ipv6" ]] && radvd_update
> +		if [[ "${proto}" = "ipv6" ]] && db_exists
> "${zone}/ipv6"; then
> +			radvd_update
> +		fi
>  
>  		# Remove all default routes.
>  		if [ -z "${routes}" ]; then