⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network

📁 pcmcia source code
💻
字号:
#! /bin/sh## network 1.86 2002/07/03 06:44:01 (David Hinds)## Initialize or shutdown a PCMCIA ethernet adapter## This script should be invoked with two arguments.  The first is the# action to be taken, either "start", "stop", or "restart".  The# second is the network interface name.## The script passes an extended device address to 'network.opts' in# the ADDRESS variable, to retrieve device-specific configuration# options.  The address format is "scheme,socket,instance,hwaddr"# where "scheme" is the current PCMCIA device configuration scheme,# "socket" is the socket number, "instance" is used to number multiple# interfaces in a single socket, and "hwaddr" is the card's hardware# ethernet address.#if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi# Get device attributesget_info $DEVICEHWADDR=`/sbin/ifconfig $DEVICE | sed -ne 's/.*\(..:..:..:..:..:..\).*/\1/p'`# Load site-specific settingsADDRESS="$SCHEME,$SOCKET,$INSTANCE,$HWADDR"start_fn () { return; }stop_fn () { return; }. $0.optsRESOLV=/etc/resolv.conf# Now, run the specific script for Wireless LAN interfaces# Note : we need the wireless parameters to be set up before IP parameters,# so that we can perform DHCP over the Wireless link if needed. Jean IIO_INFO=$INFO ; INFO=if [ -x ./wireless ] ; then    . ./wirelesselse    . /etc/pcmcia/wirelessfiINFO=$O_INFObootp_setup (){    if match `uname -r` "2.[2-9].*" ; then	log /sbin/ifconfig $DEVICE up    else	log /sbin/ifconfig $DEVICE up 0.0.0.0	log /sbin/route add default dev $DEVICE netmask 0.0.0.0    fi}case "$ACTION" in'start')    [ -n "$VERBOSE" -a -n "$INFO" ] && echo "$INFO"    [ -n "$IF_PORT" ] && /sbin/ifport $DEVICE $IF_PORT    if is_true $PUMP ; then	log "/sbin/pump -i $DEVICE > /dev/null" || exit 1    elif is_true $BOOTP ; then	bootp_setup	if [ -x /sbin/bootpc ] ; then	    eval `/sbin/bootpc --bootfile '' --returniffail \		--timeoutwait 10 --dev $DEVICE`	    log /sbin/ifconfig $DEVICE down	    if [ -n "$GATEWAYS" ] ; then		set - $GATEWAYS ; GATEWAY=$1	    fi	elif [ -x /sbin/pump ] ; then	    log "/sbin/pump -i $DEVICE > /dev/null" || exit 1	else	    exit 1	fi    elif is_true $DHCP ; then	bootp_setup	HN=${DHCP_HOSTNAME:+-h $DHCP_HOSTNAME}	if [ -x /sbin/dhcpcd ] ; then	    # This is a version check: I know it looks weird	    if /sbin/dhcpcd -XYZZY 2>&1 | grep -q DHCP ; then		log "/sbin/dhcpcd -d $HN $DEVICE >/dev/null 2>&1" || exit 1	    else		# Jump through hoops for lame 0.70-era dhcpcd		L=/var/run/dhcp-lock-$DEVICE		/bin/echo "#!/bin/sh\nrm $L" > $L ; chmod +x $L		log "/sbin/dhcpcd $HN -c $L $DEVICE >/dev/null 2>&1"		for t in 0 1 2 3 4 5 6 7 8 9 ; do		    sleep 2 ; if [ ! -e $L ] ; then break ; fi		done		rm -f $L		if [ -e /etc/dhcpc/resolv.conf ] ; then		    echo "# $DEVICE begin" > $RESOLV.N		    chmod og+r $RESOLV.N		    cat /etc/dhcpc/resolv.conf >> $RESOLV.N		    echo "# $DEVICE end" >> $RESOLV.N		    cat $RESOLV >> $RESOLV.N ; mv $RESOLV.N $RESOLV		fi	    fi	elif [ -x /sbin/dhclient ] ; then	    log "/sbin/dhclient $DEVICE >/dev/null 2>&1" || exit 1	elif [ -x /sbin/pump ] ; then	    log "/sbin/pump $HN -i $DEVICE > /dev/null" || exit 1	else	    exit 1	fi    fi    if [ -n "$IPADDR" ] ; then	# Basic network setup	NM=${NETMASK:+netmask $NETMASK}	BC=${BROADCAST:+broadcast $BROADCAST}	MTU=${MTU:+mtu $MTU}	log /sbin/ifconfig $DEVICE up $IPADDR $NM $BC $MTU	if [ -n "$NETWORK" ] ; then	    /sbin/ifuser $DEVICE $NETWORK || \		log /sbin/route add -net $NETWORK $NM dev $DEVICE	elif [ -n "$GATEWAY" ] ; then	    /sbin/ifuser $DEVICE $GATEWAY || \		log /sbin/route add $GATEWAY $DEVICE	fi	[ -n "$GATEWAY" ] && /sbin/route add default gw $GATEWAY metric 1    fi        # Update DNS stuff    if [ -n "$DOMAIN$SEARCH$DNSSRVS$DNS_1$DNS_2$DNS_3" ] ; then	echo "# $DEVICE begin" > $RESOLV.N	chmod og+r $RESOLV.N	[ -n "$DOMAIN" ] && echo "domain $DOMAIN" >> $RESOLV.N	[ -n "$SEARCH" ] && echo "search $SEARCH" >> $RESOLV.N	for DNS in $DNSSRVS $DNS_1 $DNS_2 $DNS_3 ; do	    echo "nameserver $DNS" >> $RESOLV.N	done	echo "# $DEVICE end" >> $RESOLV.N	sed -e "/# $DEVICE begin/,/# $DEVICE end/d" $RESOLV >> $RESOLV.N	mv $RESOLV.N $RESOLV    fi    # Handle NFS mounts    if [ -n "$MOUNTS" ] ; then	for MT in $MOUNTS ; do log mount -v $MT ; done    fi    if [ -n "$IPX_NETNUM" ] ; then	log ipx_interface add $DEVICE $IPX_FRAME $IPX_NETNUM    fi    start_fn $DEVICE    ;;'stop')    stop_fn $DEVICE    if is_true $PUMP || is_true $BOOTP || is_true $DHCP || \    	[ -n "$IPADDR" ] ; then	# Shut down all NFS mounts on this interface	nfsstop ()	{	    local HOST MT	    if read HOST MT ; then		nfsstop		if /sbin/ifuser $DEVICE $HOST ; then		    do_fuser -k -m $MT > /dev/null		    log umount -f -v $MT		fi	    fi	}	mount -t nfs | sed -e 's/:.* on \(.*\) type .*/ \1/' | nfsstop	[ -n "$IPX_NETNUM" ] && ipx_interface del $DEVICE $IPX_FRAME	if is_true $PUMP ; then	    log pump -r -i $DEVICE	elif is_true $DHCP ; then	    if [ -x /sbin/dhcpcd ] ; then		PID=`cat /var/run/dhcpcd-$DEVICE.pid 2>/dev/null`		if [ -n "$PID" ] ; then		    kill -TERM $PID		    sleep 2		fi		/sbin/dhcpcd -XYZZY 2>&1 | grep -q DHCP || \		    rm -f /var/run/dhcpcd-$DEVICE.pid	    elif [ -x /sbin/dhclient ] ; then		PID=`cat /var/run/dhclient.pid 2>/dev/null`		if [ -n "$PID" ] ; then kill -TERM $PID ; fi	    elif [ -x /sbin/pump ] ; then		log /sbin/pump -r -i $DEVICE	    fi	fi    fi    # Remove nameservers    if grep -q "# $DEVICE begin" $RESOLV ; then	sed -e "/# $DEVICE begin/,/# $DEVICE end/d"	$RESOLV > $RESOLV.N	mv $RESOLV.N $RESOLV    fi    log /sbin/ifconfig $DEVICE down    ;;'check')    is_true $NO_CHECK && exit 0    /sbin/ifconfig $DEVICE | grep -q RUNNING || exit 0    # Check for any in-use NFS mounts    nfscheck ()    {	while read HOST MT ; do	    /sbin/ifuser $DEVICE $HOST && do_fuser -sm $MT && exit 1	done    }    mount -t nfs | sed -e 's/:.* on \(.*\) type .*/ \1/' | nfscheck    # Check for active TCP or UDP connections    getdests ()    {    	IFS=" :" ; read A ; read A	while read A B C D E HOST PORT STATE ; do	    if [ "$STATE" != "FIN_WAIT1" -a "$STATE" != "FIN_WAIT2" \		-a "$STATE" != "CLOSE_WAIT" -a "$STATE" != "TIME_WAIT" \		-a "$HOST" != "127.0.0.1" -a "$HOST" != "0.0.0.0" \		-a "$STATE" != "CLOSE" -a "$PORT" != "*" ] ; then\		echo $HOST	    fi	done    }    DESTS=`netstat -ntuw | getdests`    /sbin/ifuser $DEVICE $DESTS && exit 1    ;;'cksum')    if [ $WIRELESS = 1 ] ; then exit 1 ; fi    chk_simple "$NEW_SCHEME,$SOCKET,$INSTANCE,$HWADDR" || exit 1    ;;'restart')    [ -n "$IPADDR" ] && /sbin/ifconfig $DEVICE down up    ;;'suspend'|'resume')    ;;*)    usage    ;;esacexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -