Ticket #10267: radvd.init.patch

File radvd.init.patch, 1.4 KB (added by adam2104 <openwrt@…>, 6 years ago)
  • radvd.init

     
    407407        return 0 
    408408} 
    409409 
     410radvd_start_secure() { 
     411        local cfg=$1 
     412        local secure 
     413 
     414        validate_varname "$cfg" || return 0 
     415 
     416        config_get_bool secure "$cfg" secure_mode 0 
     417        [ "$secure" -ne 1 ] && return 0 
     418 
     419        config_get RADVD_USERNAME "$cfg" username 
     420        if [ -z "$RADVD_USERNAME" ]; then 
     421                logger -t "radvd startup" "username required for secure mode, radvd will run as root" 
     422                return 1 
     423        fi 
     424 
     425        config_get RADVD_GROUP "$cfg" group 
     426        if [ -z "$RADVD_GROUP" ] ; then 
     427                logger -t "radvd startup" "group required for secure mode, radvd will run as root" 
     428                return 1 
     429        fi 
     430 
     431        return 0 
     432} 
     433 
    410434start() { 
    411435        config_load radvd 
    412436 
     
    425449 
    426450        sysctl -w net.ipv6.conf.all.forwarding=1 > /dev/null 2> /dev/null 
    427451 
    428         radvd -C "$RADVD_CONFIG_FILE" -m stderr_syslog -p /var/run/radvd.pid 
     452        RADVD_USERNAME= 
     453        RADVD_GROUP= 
     454        config_foreach radvd_start_secure radvd 
     455 
     456        if [ ! -z "$RADVD_USERNAME" ] && [ ! -z "$RADVD_GROUP" ]; then 
     457                mkdir -p /var/run/radvd 
     458                chown $RADVD_USERNAME:$RADVD_GROUP /var/run/radvd 
     459                radvd -u $RADVD_USERNAME -C "$RADVD_CONFIG_FILE" -m stderr_syslog -p /var/run/radvd/radvd.pid 
     460        else 
     461                mkdir -p /var/run/radvd 
     462                radvd -C "$RADVD_CONFIG_FILE" -m stderr_syslog -p /var/run/radvd/radvd.pid 
     463        fi 
    429464} 
    430465 
    431466stop() {