git: if_clone: Refactor if_clone_create()

Aaron LI aly at crater.dragonflybsd.org
Sat Aug 4 20:59:15 PDT 2018


commit 84cb91c376f39e5cbfcc52664bc818ac8154e0c6
Author: Aaron LI <aly at aaronly.me>
Date:   Fri Jun 22 21:47:22 2018 +0800

    if_clone: Refactor if_clone_create()
    
    In the wildcard case (the caller passes the interface name without
    a unit number), if_clone_create() should update the passed name
    parameter with the allocated unit number in order to make the caller
    know the name of the cloned interface, e.g., ifconfig(8) compares
    the passed and returned interface name.  Therefore the caller should
    preserve enough space (given by the "len" parameter) to hold the full
    interface name.  This shouldn't be a problem since the caller generally
    use the "struct if_clonereq" which has enough space for the name.
    
    For the name update code, use simple and clear strlcpy() to replace the
    hack with a for loop and obscure snprintf(), and return ENOSPC instead
    of panic.
    
    Simplify the ifnet lock a bit.

Summary of changes:
 sys/net/if_clone.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/84cb91c376f39e5cbfcc52664bc818ac8154e0c6


-- 
DragonFly BSD source repository


More information about the Commits mailing list