Some minor comments.
1. Please rebase against trunk.
On 1/29/09, David Balazic <[email protected]> wrote:
> diff -u -r openvpn-2.1_rc15/route.c openvpn-2.1_rc15_gwfix/route.c
> --- openvpn-2.1_rc15/route.c 2008-11-17 00:48:04.000000000 +0000
> +++ openvpn-2.1_rc15_gwfix/route.c 2008-12-18 19:59:36.455394121 +0000
> @@ -805,20 +814,26 @@
>
> #if defined(TARGET_LINUX)
> #ifdef CONFIG_FEATURE_IPROUTE
> - argv_printf (&argv, "%s route add %s/%d via %s",
> + argv_printf (&argv, "%s route add %s/%d",
> iproute_path,
> network,
> - count_netmask_bits(netmask),
> - gateway);
> + count_netmask_bits(netmask));
> + if (r->gateway)
> + argv_printf_cat (&argv, "via %s", gateway);
> + else
> + argv_printf_cat (&argv, "dev %s", r->gateway_ifname);
> if (r->metric_defined)
> argv_printf_cat (&argv, "metric %d", r->metric);
>
> #else
> - argv_printf (&argv, "%s add -net %s netmask %s gw %s",
> + argv_printf (&argv, "%s add -net %s netmask %s",
> ROUTE_PATH,
> network,
> - netmask,
> - gateway);
> + netmask);
> + if (r->gateway)
> + argv_printf_cat (&argv, "gw %s", gateway);
> + else
> + argv_printf_cat (&argv, "dev %s", r->gateway_ifname);
> if (r->metric_defined)
> argv_printf_cat (&argv, "metric %d", r->metric);
> #endif /*CONFIG_FEATURE_IPROUTE*/
2. Please declare a variable at the epilogue of the function as gateway.
> @@ -1516,6 +1531,10 @@
> if (!net && !mask && metric < lowest_metric)
> {
> best_gw = gw;
> + if (gw_if_name)
> + {
> + sscanf (line, "%s\t", gw_if_name);
> + }
> lowest_metric = metric;
> best_count = count;
> }
3. Please don't use scanf this way as it may overflow the buffer.
Use %##s and check that overflow is avoided.
Alon.