cvs commit: src/etc pccard_ether
Brooks Davis
brooks at one-eyed-alien.net
Thu Sep 29 13:51:30 PDT 2005
On Thu, Sep 29, 2005 at 02:45:25PM +0900, Hajimu UMEMOTO wrote:
> Hi,
>
> >>>>> On Wed, 28 Sep 2005 15:05:49 -0700
> >>>>> Brooks Davis <brooks at one-eyed-alien.net> said:
>
> brooks> How would you feel about a forcestart option as a compromise for now?
> brooks> That would override both the AUTO check and the up check.
>
> Yes, I'll be happy with your offer.
Here's a lightly tested implementation based on rc.subr. It adds
support for the force prefix to start and stop as well as a new restart
option. It seems to work in limited testing.
-- Brooks
Index: pccard_ether
===================================================================
RCS file: /home/ncvs/src/etc/pccard_ether,v
retrieving revision 1.47
diff -u -p -r1.47 pccard_ether
--- pccard_ether 28 Sep 2005 19:59:18 -0000 1.47
+++ pccard_ether 29 Sep 2005 20:36:48 -0000
@@ -2,7 +2,7 @@
#
# $FreeBSD: src/etc/pccard_ether,v 1.47 2005/09/28 19:59:18 brooks Exp $
#
-# pccard_ether interfacename [start|stop]
+# pccard_ether interfacename [start|stop|restart]
#
# example: pccard_ether fxp0 start
#
@@ -10,10 +10,13 @@
. /etc/rc.subr
. /etc/network.subr
-usage()
-{
- err 3 'USAGE: $0 interface (start|stop)'
-}
+name="pccard_ether"
+start_precmd="checkauto"
+start_cmd="pccard_ether_start"
+stop_precmd="checkauto"
+stop_cmd="pccard_ether_stop"
+restart_precmd="checkauto"
+restart_cmd="pccard_ether_restart"
setup_routes()
{
@@ -54,23 +57,17 @@ remove_routes()
fi
}
-ifn=$1
-shift
-startstop=$1
-shift
-
-load_rc_config pccard_ether
-
-# Ignore interfaces with the NOAUTO keyword
-autoif $ifn || exit 0
-
-if [ -n "$1" ]; then
- usage
-fi
+checkauto()
+{
+ if [ -z "$rc_force" ]; then
+ # Ignore interfaces with the NOAUTO keyword
+ autoif $ifn || exit 0
+ fi
+}
-case ${startstop} in
-[Ss][Tt][Aa][Rr][Tt] | '')
- if [ -x /usr/bin/grep ]; then
+pccard_ether_start()
+{
+ if [ -z "$rc_force" -a -x /usr/bin/grep ]; then
if ifconfig $ifn | grep -s '[<,]UP[,>]' > /dev/null 2>&1; then
# Interface is already up, so ignore it.
exit 0
@@ -91,10 +88,10 @@ case ${startstop} in
if checkyesno ipv6_enable; then
network6_interface_setup $ifn
fi
- ;;
+}
-# Stop the interface
-[Ss][Tt][Oo][Pp])
+pccard_ether_stop()
+{
if [ -n "`ifconfig_getargs $ifn`" ]; then
if ! dhcpif $ifn; then
remove_routes
@@ -110,7 +107,24 @@ case ${startstop} in
if checkyesno removable_route_flush; then
route -n flush -inet > /dev/null
fi
- ;;
-*)
- usage
-esac
+}
+
+pccard_ether_restart()
+{
+ # Hand implemented because the default implementation runs
+ # the equivalent of "$0 start; $0 stop" and this script
+ # doesn't support that syntax
+ pccard_ether_stop
+ pccard_ether_start
+}
+
+ifn=$1
+shift
+if [ -z "$*" ]; then
+ args="start"
+else
+ args=$*
+fi
+
+load_rc_config pccard_ether
+run_rc_command $args
--
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20050929/18f8bb82/attachment.bin
More information about the cvs-src
mailing list