From 39c229261f3ba67b8eafe5626e5d5f5e576276ae Mon Sep 17 00:00:00 2001 From: Devin Teske Date: Fri, 5 Jul 2013 23:16:56 +0000 Subject: [PATCH] Don't prevent the user from hanging their system by changing network settings while NFS mounts are active; but DO warn them and make the default action to do nothing. (thanks julian) --- usr.sbin/bsdconfig/networking/include/messages.subr | 2 +- usr.sbin/bsdconfig/networking/share/device.subr | 11 +++++------ usr.sbin/bsdconfig/networking/share/ipaddr.subr | 4 ++-- usr.sbin/bsdconfig/networking/share/media.subr | 8 ++++---- usr.sbin/bsdconfig/networking/share/netmask.subr | 4 ++-- usr.sbin/bsdconfig/networking/share/routing.subr | 4 ++-- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/usr.sbin/bsdconfig/networking/include/messages.subr b/usr.sbin/bsdconfig/networking/include/messages.subr index 2c4c668d66a3..ad5461ca6272 100644 --- a/usr.sbin/bsdconfig/networking/include/messages.subr +++ b/usr.sbin/bsdconfig/networking/include/messages.subr @@ -73,7 +73,7 @@ msg_network_configuration="%s Network Configuration:\nChoose Save/Exit when fini msg_network_interfaces="Network Interfaces" msg_network_management="Network Management" msg_networking_devices="Networking Devices" -msg_nfs_mounts_may_cause_hang="WARNING! Changing this setting while NFS directories are\nmounted may cause the system to hang. Please exit this\nutility and dismount any/all remaining NFS-mounts before\nattempting to change this setting.\n\n%s" +msg_nfs_mounts_may_cause_hang="WARNING! Changing this setting while NFS directories are\nmounted may cause the system to hang. Are you sure you\nwant to proceed?\n\n%s" msg_no_network_interfaces="No network interfaces detected." msg_no_options="No options (Default)" msg_ok="OK" diff --git a/usr.sbin/bsdconfig/networking/share/device.subr b/usr.sbin/bsdconfig/networking/share/device.subr index 2bb7ba2ff9b9..f4f0b25091e5 100644 --- a/usr.sbin/bsdconfig/networking/share/device.subr +++ b/usr.sbin/bsdconfig/networking/share/device.subr @@ -263,16 +263,15 @@ f_dialog_menu_netdev_edit() case "$tag" in X\ *) break ;; 2\ *) # - # Do not proceed if/when there are NFS-mounts currently - # active. If the network is changed while NFS-exported - # directories are mounted, the system may hang (if any - # NFS mounts are using that interface). + # Proceed cautiously (confirm with the user) if/when NFS- + # mounts are active. If the network on which these mounts + # are made is changed parts of the system may hang. # if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_dhcp_status" \ "$interface" "$dhcp_status" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - continue + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + continue fi # diff --git a/usr.sbin/bsdconfig/networking/share/ipaddr.subr b/usr.sbin/bsdconfig/networking/share/ipaddr.subr index 68d0ec12f358..a9e1c6e1faa1 100644 --- a/usr.sbin/bsdconfig/networking/share/ipaddr.subr +++ b/usr.sbin/bsdconfig/networking/share/ipaddr.subr @@ -146,8 +146,8 @@ f_dialog_input_ipaddr() if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_ipaddr" \ "$interface" "$_ipaddr" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - return $FAILURE + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + return $FAILURE fi local msg="$( printf "$msg_please_enter_new_ip_addr" "$interface" )" diff --git a/usr.sbin/bsdconfig/networking/share/media.subr b/usr.sbin/bsdconfig/networking/share/media.subr index 22073d72de26..36d811fb1039 100644 --- a/usr.sbin/bsdconfig/networking/share/media.subr +++ b/usr.sbin/bsdconfig/networking/share/media.subr @@ -117,8 +117,8 @@ f_dialog_input_options() if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_options" \ "$interface" "$options" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - return $FAILURE + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + return $FAILURE fi local msg="$( printf "$msg_please_enter_mediaopts" "$interface" )" @@ -164,8 +164,8 @@ f_dialog_menu_media_options() if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_options" \ "$interface" "$_options" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - return $FAILURE + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + return $FAILURE fi # diff --git a/usr.sbin/bsdconfig/networking/share/netmask.subr b/usr.sbin/bsdconfig/networking/share/netmask.subr index 5a4c7a3ba5a6..683884b9d456 100644 --- a/usr.sbin/bsdconfig/networking/share/netmask.subr +++ b/usr.sbin/bsdconfig/networking/share/netmask.subr @@ -96,8 +96,8 @@ f_dialog_input_netmask() if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_subnet" \ "$interface" "$_netmask" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - return $FAILURE + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + return $FAILURE fi # diff --git a/usr.sbin/bsdconfig/networking/share/routing.subr b/usr.sbin/bsdconfig/networking/share/routing.subr index cf29d285da5b..62de26e4d4b0 100644 --- a/usr.sbin/bsdconfig/networking/share/routing.subr +++ b/usr.sbin/bsdconfig/networking/share/routing.subr @@ -74,8 +74,8 @@ f_dialog_input_defaultrouter() if f_nfs_mounted && ! f_jailed; then local setting="$( printf "$msg_current_default_router" \ "$defaultrouter" )" - f_show_msg "$msg_nfs_mounts_may_cause_hang" "$setting" - return $FAILURE + f_noyes "$msg_nfs_mounts_may_cause_hang" "$setting" || + return $FAILURE fi #