"Fossies" - the Fresh Open Source Software Archive

Member "dhcpcd-9.4.1/hooks/50-ypbind.in" (22 Oct 2021, 1829 Bytes) of package /linux/misc/dhcpcd-9.4.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "50-ypbind.in": 9.3.2_vs_9.3.4.

    1 # Sample dhcpcd hook for ypbind
    2 # This script is only suitable for the BSD versions.
    3 
    4 : ${ypbind_restart_cmd:=service_command ypbind restart}
    5 : ${ypbind_stop_cmd:=service_condcommand ypbind stop}
    6 ypbind_dir="$state_dir/ypbind"
    7 : ${ypdomain_dir:=@YPDOMAIN_DIR@}
    8 : ${ypdomain_suffix:=@YPDOMAIN_SUFFIX@}
    9 
   10 best_domain()
   11 {
   12     for i in "$ypbind_dir/$interface_order".*; do
   13         if [ -f "$i" ]; then
   14             cat "$i"
   15             return 0
   16         fi
   17     done
   18     return 1
   19 }
   20 
   21 make_yp_binding()
   22 {
   23     [ -d "$ypbind_dir" ] || mkdir -p "$ypbind_dir"
   24     echo "$new_nis_domain" >"$ypbind_dir/$ifname"
   25 
   26     if [ -z "$ypdomain_dir" ]; then
   27         false
   28     else
   29         cf="$ypdomain_dir/$new_nis_domain$ypdomain_suffix"
   30         if [ -n "$new_nis_servers" ]; then
   31             ncf="$cf.$ifname"
   32             rm -f "$ncf"
   33             for x in $new_nis_servers; do
   34                 echo "$x" >>"$ncf"
   35             done
   36             change_file "$cf" "$ncf"
   37         else
   38             [ -e "$cf" ] && rm "$cf"
   39         fi
   40     fi
   41 
   42     nd="$(best_domain)"
   43     if [ $? = 0 ] && [ "$nd" != "$(domainname)" ]; then
   44         domainname "$nd"
   45         if [ -n "$ypbind_restart_cmd" ]; then
   46             eval $ypbind_restart_cmd
   47         fi
   48     fi
   49 }
   50 
   51 restore_yp_binding()
   52 {
   53     rm -f "$ypbind_dir/$ifname"
   54     nd="$(best_domain)"
   55     # We need to stop ypbind if there is no best domain
   56     # otherwise it will just stall as we cannot set domainname
   57     # to blank :/
   58     if [ -z "$nd" ]; then
   59         if [ -n "$ypbind_stop_cmd" ]; then
   60             eval $ypbind_stop_cmd
   61         fi
   62     elif [ "$nd" != "$(domainname)" ]; then
   63         domainname "$nd"
   64         if [ -n "$ypbind_restart_cmd" ]; then
   65             eval $ypbind_restart_cmd
   66         fi
   67     fi
   68 }
   69 
   70 if ! $if_configured; then
   71     ;
   72 elif [ "$reason" = PREINIT ]; then
   73     rm -f "$ypbind_dir/$interface".*
   74 elif $if_up || $if_down; then
   75     if [ -n "$new_nis_domain" ]; then
   76         if valid_domainname "$new_nis_domain"; then
   77             make_yp_binding
   78         else
   79             syslog err "Invalid NIS domain name: $new_nis_domain"
   80         fi
   81     elif [ -n "$old_nis_domain" ]; then
   82         restore_yp_binding
   83     fi
   84 fi