X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=src%2Finitscripts%2Finit.d%2Fnetworking%2Fred;h=08d6c927af8a21d38107419b57f61ffaa1a6b1de;hp=debb0d20c6d33401198ba0963bc964d2c4c4d35d;hb=bbe6aff7cdfcc56a0b5d6faa02b77e66806f4be2;hpb=c772568a71455f82985fac83165ba0bffd5a8d22 diff --git a/src/initscripts/init.d/networking/red b/src/initscripts/init.d/networking/red index debb0d20c6..08d6c927af 100644 --- a/src/initscripts/init.d/networking/red +++ b/src/initscripts/init.d/networking/red @@ -26,6 +26,9 @@ if [ "$RRDLOG" == "" ]; then fi eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) +eval $(/usr/local/bin/readhash /var/ipfire/mac/settings) + +MAC=$(tr - : <<<$MAC) TYPE="${RED_TYPE}" DEVICE="${RED_DEV}" @@ -87,6 +90,11 @@ case "${1}" in link_status=`ip link show ${DEVICE} 2> /dev/null` if [ -n "${link_status}" ]; then if ! echo "${link_status}" | grep -q UP; then + if [ -n "$MAC" ]; then + boot_mesg "Setting mac address on ${DEVICE} to ${MAC}" + ip link set dev ${DEVICE} address ${MAC} + evaluate_retval + fi ip link set ${DEVICE} up fi fi @@ -122,8 +130,40 @@ case "${1}" in evaluate_retval run_subdir ${rc_base}/init.d/networking/red.up/ - + + # Configure aliases only if red static + /usr/local/bin/setaliases + elif [ "${TYPE}" == "DHCP" ]; then + + if [ -e $LEASEINFO ]; then + boot_mesg -n "Stopping dhcpcd on the ${DEVICE} interface..." + . $LEASEINFO + if [ "$LEASETIME" = "4294967295" ]; then + # do nothing, just echo ok + echo "" + echo_ok + else + if [ -n "$DHCP_STOP" ]; then + /sbin/dhcpcd ${DEVICE} $DHCP_STOP &> /dev/null + RET="$?" + if [ "$RET" -eq 0 ]; then + echo "" + echo_ok + elif [ "$RET" -eq 1 ]; then + boot_mesg "dhcpcd not running!" ${WARNING} + echo_warning + else + echo "" + echo_failure + fi + else + echo "" + killproc dhcpcd + fi + fi + fi + boot_mesg -n "Starting dhcpcd on the ${DEVICE} interface..." echo -n "${DEVICE}" > /var/ipfire/red/iface @@ -180,6 +220,7 @@ case "${1}" in echo "$GATEWAY gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts echo "$GATEWAY" > /var/ipfire/red/remote-ipaddress + touch /var/ipfire/red/active else echo "" $(exit "$RET") @@ -208,6 +249,54 @@ case "${1}" in sleep 0.2 ip link set ${PPP_NIC} up TYPE="pppoe" + + + PIDFILE="/var/run/dhcpcd-${DEVICE}.8.pid" + LEASEINFO="/var/ipfire/dhcpc/dhcpcd-${DEVICE}.8.info" + DHCP_START="-N -R -L /var/ipfire/dhcpc -c /var/ipfire/dhcpc/dhcpcd.exe " + DHCP_STOP="-k -c /var/ipfire/dhcpc/dhcpcd.exe " + + + # Test to see if there is a stale pid file + if [ -f "$PIDFILE" ]; then + ps `cat "$PIDFILE"` | grep dhcpcd > /dev/null + if [ $? != 0 ]; then + rm -f /var/run/dhcpcd-${DEVICE}.8.pid > /dev/null + fi + fi + if [ ! -f "$PIDFILE" ]; then + #DHCP for VDSL IPTV + boot_mesg "Createing VLAN Interface ${DEVICE}.8 ..." + vconfig add ${DEVICE} 8 + + boot_mesg -n "Starting dhcpcd on the ${DEVICE}.8 interface..." + + /sbin/dhcpcd ${DEVICE}.8 ${DHCP_START} >/dev/null 2>&1 + RET="$?" + + if [ "$RET" = "0" ]; then + . /var/ipfire/dhcpc/dhcpcd-${DEVICE}.8.info + echo "" + echo_ok + boot_mesg " DHCP Assigned Settings for ${DEVICE}.8:" + boot_mesg_flush + boot_mesg " IP Address: $IPADDR" + boot_mesg_flush + boot_mesg " Hostname: $RED_DHCP_HOSTNAME" + boot_mesg_flush + boot_mesg " Subnet Mask: $NETMASK" + boot_mesg_flush + boot_mesg " Default Gateway: $GATEWAY" + boot_mesg_flush + boot_mesg " DNS Server: $DNS" + boot_mesg_flush + + else + echo "" + $(exit "$RET") + evaluate_retval + fi + fi fi if [ "$TYPE" == "pppoeatm" ] || [ "$TYPE" == "pptpatm" ]; then @@ -365,7 +454,7 @@ case "${1}" in /etc/rc.d/init.d/connectd start # Add a NaN value to ppp0 rrd to supress spikes at reconnect rrdtool update $RRDLOG/collectd/localhost/interface/if_octets-ppp0.rrd \ - $(date +%s):: + $(date +%s):: > /dev/null 2>&1 exit 0 fi ;; @@ -424,7 +513,7 @@ case "${1}" in evaluate_retval # Add a NaN value to ppp0 rrd to supress spikes at reconnect rrdtool update $RRDLOG/collectd/localhost/interface/if_octets-ppp0.rrd \ - $(date +%s):: + $(date +%s):: > /dev/null 2>&1 fi if [ "$DEVICE" != "${GREEN_DEV}" ] && [ "$DEVICE" != "" ]; then @@ -436,13 +525,14 @@ case "${1}" in vconfig del ${DEVICE} 7 evaluate_retval fi - fi - link_status=`ip link show $DEVICE 2> /dev/null` - if [ -n "${link_status}" ]; then - if echo "${link_status}" | grep -q UP; then - boot_mesg "Bringing down the ${DEVICE} interface..." - ip link set ${DEVICE} down - evaluate_retval + else + link_status=`ip link show $DEVICE 2> /dev/null` + if [ -n "${link_status}" ]; then + if echo "${link_status}" | grep -q UP; then + boot_mesg "Bringing down the ${DEVICE} interface..." + ip link set ${DEVICE} down + evaluate_retval + fi fi fi fi