From 0340759269f84f071b5b7ec11ae4691a8722c21a Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Wed, 11 Apr 2012 13:40:19 +0200 Subject: Add netcfg-daemon For reuse in a systemd service --- rc.d/net-profiles | 54 +++++++++++++----------------------------------------- 1 file changed, 13 insertions(+), 41 deletions(-) (limited to 'rc.d/net-profiles') diff --git a/rc.d/net-profiles b/rc.d/net-profiles index f8c0992..66f0851 100755 --- a/rc.d/net-profiles +++ b/rc.d/net-profiles @@ -1,9 +1,10 @@ #!/bin/bash +# +# This script utilizes netcfg-daemon. . /etc/rc.conf . /etc/rc.d/functions . /usr/lib/network/globals -. /etc/conf.d/netcfg case "$1" in start) @@ -21,64 +22,35 @@ case "$1" in done # $NET env var is passed from the kernel boot line - [[ -z "$NETWORKS_MENU_TIMEOUT" ]] && NETWORKS_MENU_TIMEOUT=5 - if [[ "$NET" = "menu" ]]; then - if /usr/bin/netcfg-menu "$NETWORKS_MENU_TIMEOUT"; then - mv "$STATE_DIR"/{menu,net-profiles} # JP: user may want to disconnect profile by calling net-profiles stop + if /usr/bin/netcfg-menu; then + mv "$STATE_DIR"/{menu,netcfg-daemon} # JP: user may want to disconnect profile by calling net-profiles stop add_daemon net-profiles exit 0 fi elif [[ -n "$NET" ]]; then if /usr/bin/netcfg check-iface "$NET"; then - echo "$NET" > "$STATE_DIR/net-profiles" # JP: user may want to disconnect profile by calling net-profiles stop - add_daemon net-profiles - exit 0 - fi - elif [[ $NETWORKS = "menu" ]]; then - if /usr/bin/netcfg-menu "$NETWORKS_MENU_TIMEOUT"; then - mv "$STATE_DIR"/menu "$STATE_DIR"/net-profiles + echo "$NET" > "$STATE_DIR/netcfg-daemon" # JP: user may want to disconnect profile by calling net-profiles stop add_daemon net-profiles exit 0 fi + elif /usr/bin/netcfg-daemon start; then + add_daemon net-profiles else - # No NET= passed at boot, go to NETWORKS=() - for network in "${NETWORKS[@]}"; do - if [[ "$network" = "${network#@}" ]]; then - if /usr/bin/netcfg check-iface "$network"; then - echo "$network" >> "$STATE_DIR/net-profiles" - add_daemon net-profiles - fi - else - # It is up to the user to make sure no backgrounded profile - # uses an interface that is used by another active profile. - if /usr/bin/netcfg "${network#@}"; then - echo "${network#@}" >> "$STATE_DIR/net-profiles" - add_daemon net-profiles - fi >/dev/null & - PROFILE_BKGD=1 - fi - done - fi - if [[ ! -f "$STATE_DIR"/net-profiles && -z "$PROFILE_BKGD" ]]; then - exit_err "No profile started." # JP: don't add_daemon unless we were successful (above) + exit_err "No profile started." fi ;; stop) if ck_daemon net-profiles; then - exit_stderr "net-profiles not running" + exit_stderr "net-profiles is not running" fi - - # shutdown any profiles started by netcfg (or from NET_PROFILES in rc.conf) - # JP: only attempt to disconnect the profiles _this daemon_ was told to control - while read profile; do - /usr/bin/netcfg down "$profile" - done < "$STATE_DIR/net-profiles" - rm -f "$STATE_DIR/net-profiles" + /usr/bin/netcfg-daemon stop rm_daemon net-profiles ;; restart) - "$0" stop; sleep 1; "$0" start + "$0" stop + sleep 1 + "$0" start ;; *) exit_stderr "Usage: $0 {start|stop|restart}" -- cgit v1.2.3-24-g4f1b