From 56f1752ce1899c455b9e97ac73da9bd68fbab2b9 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Mon, 8 Apr 2013 12:46:51 -0500 Subject: create loopback service The loopback service handles the basic settings for the loopback interface, regardless of the network manager you are using. --- init.d/Makefile | 4 ++-- init.d/loopback.in | 35 +++++++++++++++++++++++++++++++++++ init.d/network.in | 13 ++++--------- runlevels/Makefile | 2 +- 4 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 init.d/loopback.in diff --git a/init.d/Makefile b/init.d/Makefile index 04e09a7..e7e2d86 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -1,6 +1,6 @@ DIR= ${INITDIR} -SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ - root.in savecache.in swap.in swapfiles.in \ +SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \ + netmount.in root.in savecache.in swap.in swapfiles.in \ tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}} BIN= ${OBJS} diff --git a/init.d/loopback.in b/init.d/loopback.in new file mode 100644 index 0000000..e5cc118 --- /dev/null +++ b/init.d/loopback.in @@ -0,0 +1,35 @@ +#!@SBINDIR@/runscript +# Copyright (c) 2013 William Hubbs +# Released under the 2-clause BSD license. + +description="Configures the loopback interface." + +depend() +{ + return 0 +} + +start() +{ + if [ "$RC_UNAME" = Linux ]; then + ebegin "Bringing up network interface lo" + if type ip > /dev/null 2>&1; then + ip addr add 127.0.0.1/8 dev lo brd + scope host + ip route add 127.0.0.0/8 dev lo scope host + ip link set lo up + else + ifconfig lo 127.0.0.1 netmask 255.0.0.0 + route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1 + fi + else + ebegin "Bringing up network interface lo0" + ifconfig lo0 127.0.0.1 netmask 255.0.0.0 + route -q add -inet 127.0.0.0 -netmask 255.0.0.0 127.0.0.1 + fi + eend $? +} + +stop() +{ + return 0 +} diff --git a/init.d/network.in b/init.d/network.in index 898b0a8..5a87a84 100644 --- a/init.d/network.in +++ b/init.d/network.in @@ -223,15 +223,6 @@ start() einfo "Starting network" routeflush - if [ "$RC_UNAME" = "Linux" ]; then - ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1 - route add -net 127.0.0.0 netmask 255.0.0.0 \ - gw 127.0.0.1 reject 2>/dev/null - else - ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1 - route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \ - 127.0.0.1 -reject || cr=1 - fi eindent for int in $(interfaces); do local func= cf= @@ -330,6 +321,10 @@ stop() routeflush eindent for int in $(reverse $(interfaces u)); do + case "$int" in + lo|lo0) continue ;; + *) ;; + esac intv=$(shell_var "$int") eval downcmd=\$ifdown_$intv eval cmd=\$ip_$intv diff --git a/runlevels/Makefile b/runlevels/Makefile index 7bcf29f..6eb84ca 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -1,4 +1,4 @@ -BOOT= bootmisc fsck hostname localmount \ +BOOT= bootmisc fsck hostname localmount loopback \ root swap swapfiles sysctl urandom ${BOOT-${OS}} DEFAULT= local netmount SHUTDOWN= savecache ${SHUTDOWN-${OS}} -- cgit v1.2.3