#!/bin/sh reload_bird() { echo "configure" | /bin/nc -w 5 -U /tmp/bird.ctl } if [ "${script_type}" = "client-disconnect" ]; then echo > "/tmp/${common_name}-${dev}.conf" reload_bird elif [ "${script_type}" = "client-connect" ]; then for f in "/tmp/${common_name}-"*.conf; do [ -f "${f}" ] && echo > "${f}" done echo "route ${ifconfig_pool_remote_ip}/32 via \"${dev}\";" > "/tmp/${common_name}-${dev}.conf" if [ -f "/ccd/${common_name}" ]; then while read line; do cmd="${line%% *}" ip_and_mask="${line#* }" if [ "${cmd}" = "iroute" ]; then net="${ip_and_mask%% *}" mask="${ip_and_mask#* }" case "${mask}" in "255.255.0.0") cidr="16" ;; "255.255.128.0") cidr="17" ;; "255.255.192.0") cidr="18" ;; "255.255.224.0") cidr="19" ;; "255.255.240.0") cidr="20" ;; "255.255.248.0") cidr="21" ;; "255.255.252.0") cidr="22" ;; "255.255.254.0") cidr="23" ;; "255.255.255.0") cidr="24" ;; "255.255.255.128") cidr="25" ;; "255.255.255.192") cidr="26" ;; "255.255.255.224") cidr="27" ;; "255.255.255.240") cidr="28" ;; "255.255.255.248") cidr="29" ;; "255.255.255.252") cidr="30" ;; "255.255.255.254") cidr="31" ;; *) cidr="32" esac echo "route ${net}/${cidr} via \"${dev}\";" >> "/tmp/${common_name}-${dev}.conf" fi done < "/ccd/${common_name}" fi reload_bird fi