Vladimir Sementsov-Ogievskiy <[email protected]> writes:

> Factor out tap_is_explicit_no_script() helper, to simplify
> further changes.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
> ---
>  net/tap.c | 27 +++++++++++++++++++++------
>  1 file changed, 21 insertions(+), 6 deletions(-)
>
> diff --git a/net/tap.c b/net/tap.c
> index 57ffb09885c..fedd48c48d2 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -92,19 +92,34 @@ static void launch_script(const char *setup_script, const 
> char *ifname,
>  static void tap_send(void *opaque);
>  static void tap_writable(void *opaque);
>  
> -static char *tap_parse_script(const char *script_arg, const char 
> *default_path)
> +static bool tap_is_explicit_no_script(const char *script_arg)
>  {
> -    g_autofree char *res = g_strdup(script_arg);
> +    if (!script_arg) {
> +        return false;
> +    }
>  
> -    if (!res) {
> -        res = get_relocated_path(default_path);
> +    if (script_arg[0] == '\0') {
> +        return true;
> +    }
> +
> +    if (strcmp(script_arg, "no") == 0) {
> +        return true;
>      }
>  
> -    if (res[0] == '\0' || strcmp(res, "no") == 0) {
> +    return false;
> +}
> +
> +static char *tap_parse_script(const char *script_arg, const char 
> *default_path)
> +{
> +    if (tap_is_explicit_no_script(script_arg)) {
>          return NULL;
>      }
>  
> -    return g_steal_pointer(&res);
> +    if (!script_arg) {
> +        return get_relocated_path(default_path);
> +    }
> +
> +    return g_strdup(script_arg);
>  }
>  
>  static void tap_update_fd_handler(TAPState *s)

Before the patch, we default @script_arg to get_relocated_path(default)
first, then check for "" or "no".  After the patch, we do it the other
way round.  Works, because get_relocated_path() never returns "" or
"no".  Worth mentioning in the commit message?

The new order feels slightly clearer to me.

Reviewed-by: Markus Armbruster <[email protected]>


Reply via email to