Commit b3d71710 authored by Eric Andersen's avatar Eric Andersen
Browse files

add netplug package

parent 52e3eee8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ source "package/nbd/Config.in"
source "package/ncurses/Config.in"
source "package/netkitbase/Config.in"
source "package/netkittelnet/Config.in"
source "package/netplug/Config.in"
source "package/netsnmp/Config.in"
source "package/newt/Config.in"
source "package/ntp/Config.in"
+8 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_NETPLUG
	bool "netplug"
	default n
	help
	  A Linux daemon that manages network interfaces in
	  response to network cables being plugged in and out.

	  http://www.red-bean.com/~bos/
+69 −0
Original line number Diff line number Diff line
#!/bin/sh
#
# netplugd     This shell script takes care of starting and stopping
#              the network plug management daemon.
#
# chkconfig: - 11 89
# description: netplugd is a daemon for managing non-static network \
#              interfaces.
# processname: netplugd
# pidfile: /var/run/netplugd.pid

# Copyright 2003 Key Research, Inc.

# Source function library.
if [ -f /etc/init.d/functions ]; then
	. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
	. /etc/rc.d/init.d/functions
fi

# Source networking configuration.
if [ -f /etc/sysconfig/network ]; then
	. /etc/sysconfig/network

	# Check that networking is up.
	[ ${NETWORKING} = "no" ] && exit 0
elif [ ! -f /etc/network/interfaces ]; then
	# No network support
	exit 0
fi

[ -x /sbin/netplugd ] || exit 0

if [ -f /etc/sysconfig/netplugd ]; then
    . /etc/sysconfig/netplugd
fi

# See how we were called.
case "$1" in
  start)
	# Start daemon.
	echo -n $"Starting network plug daemon: "
	start-stop-daemon --start --quiet --pidfile /var/run/netplugd.pid --exec /sbin/netplugd ${NETPLUGDARGS}
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/netplugd
	;;
  stop)
	# Stop daemon.
	echo -n $"Shutting down network plug daemon: "
	start-stop-daemon --stop --name netplugd
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/netplugd
	;;
  restart|reload)
	$0 stop
	$0 start
	;;
  condrestart)
	[ -f /var/lock/subsys/netplugd ] && $0 restart || :
	;;
  *)
	echo $"Usage: $0 {start|stop|restart}"
	RETVAL=1
	;;
esac

exit $RETVAL
+57 −0
Original line number Diff line number Diff line
#!/bin/sh
#
# netplug - policy agent for netplugd
#
# Copyright 2003 Key Research, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.  You are forbidden from
# redistributing or modifying it under the terms of any other license,
# including other versions of the GNU General Public License.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.


PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

dev="$1"
action="$2"

case "$action" in
in)
    if [ -x /sbin/ifup ]; then
	exec /sbin/ifup $dev
    else
	echo "Please teach me how to plug in an interface!" 1>&2
	exit 1
    fi
    ;;
out)
    if [ -x /sbin/ifdown ]; then
	# At least on Fedora Core 1, the call to ip addr flush infloops
	# /sbin/ifdown $dev && exec /sbin/ip addr flush $dev
	exec /sbin/ifdown $dev
    else
	echo "Please teach me how to unplug an interface!" 1>&2
	exit 1
    fi
    ;;
probe)
    # exec /sbin/ip link set $dev up >/dev/null 2>&1
    if [ -x /sbin/ifconfig ]; then
	exec /sbin/ifconfig $dev up >/dev/null 2>&1
    else
	echo "Failed to probe an interface!" 1>&2
	exit 1
    fi
    ;;
*)
    echo "I have been called with a funny action of '%s'!" 1>&2
    exit 1
    ;;
esac
+53 −0
Original line number Diff line number Diff line
#############################################################
#
# netplug
#
#############################################################
NETPLUG_VER=1.2.9
NETPLUG_SOURCE=netplug-$(NETPLUG_VER).tar.bz2
NETPLUG_SITE=http://www.red-bean.com/~bos/netplug
NETPLUG_DIR=$(BUILD_DIR)/netplug-$(NETPLUG_VER)
NETPLUG_CAT:=bzcat
NETPLUG_BINARY:=netplugd
NETPLUG_TARGET_BINARY:=sbin/netplugd

$(DL_DIR)/$(NETPLUG_SOURCE):
	$(WGET) -P $(DL_DIR) $(NETPLUG_SITE)/$(NETPLUG_SOURCE)

netplug-source: $(DL_DIR)/$(NETPLUG_SOURCE)

$(NETPLUG_DIR)/.unpacked: $(DL_DIR)/$(NETPLUG_SOURCE)
	$(NETPLUG_CAT) $(DL_DIR)/$(NETPLUG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(NETPLUG_DIR) package/netplug/ netplug\*.patch
	touch $(NETPLUG_DIR)/.unpacked

$(NETPLUG_DIR)/$(NETPLUG_BINARY): $(NETPLUG_DIR)/.unpacked
	$(MAKE) CC=$(TARGET_CC) -C $(NETPLUG_DIR)
	$(STRIP) $(NETPLUG_DIR)/$(NETPLUG_BINARY)

$(TARGET_DIR)/$(NETPLUG_TARGET_BINARY): $(NETPLUG_DIR)/$(NETPLUG_BINARY)
	$(INSTALL) -m 644 -D $(NETPLUG_DIR)/etc/netplugd.conf $(TARGET_DIR)/etc/netplug/netplugd.conf
	$(INSTALL) -m 755 -D package/netplug/netplug-script $(TARGET_DIR)/etc/netplug.d/netplug
	$(INSTALL) -m 755 -D package/netplug/init-netplug $(TARGET_DIR)/etc/init.d/S29netplug
	$(INSTALL) -m 755 -D $(NETPLUG_DIR)/$(NETPLUG_BINARY) $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
	touch -c $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)

netplug: uclibc $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)

netplug-clean:
	rm -f $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
	rm -rf $(TARGET_DIR)/etc/netplug*
	rm -f $(TARGET_DIR)/etc/init.d/S*netplug
	-$(MAKE) -C $(NETPLUG_DIR) clean

netplug-dirclean:
	rm -rf $(NETPLUG_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_NETPLUG)),y)
TARGETS+=netplug
endif