diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2013-04-08 12:46:51 -0500 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2013-04-08 12:46:51 -0500 |
commit | 56f1752ce1899c455b9e97ac73da9bd68fbab2b9 (patch) | |
tree | 0b03782d3383ec913f99e9226b01050aee624d7c | |
parent | 9314ac64ead736c3e2b0d990a8b7030c16013993 (diff) |
create loopback service
The loopback service handles the basic settings for the loopback
interface, regardless of the network manager you are using.
-rw-r--r-- | init.d/Makefile | 4 | ||||
-rw-r--r-- | init.d/loopback.in | 35 | ||||
-rw-r--r-- | init.d/network.in | 13 | ||||
-rw-r--r-- | runlevels/Makefile | 2 |
4 files changed, 42 insertions, 12 deletions
diff --git a/init.d/Makefile b/init.d/Makefile index 04e09a70..e7e2d861 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 00000000..e5cc118b --- /dev/null +++ b/init.d/loopback.in @@ -0,0 +1,35 @@ +#!@SBINDIR@/runscript +# Copyright (c) 2013 William Hubbs <w.d.hubbs@gmail.com> +# 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 898b0a8e..5a87a841 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 7bcf29fe..6eb84ca8 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}} |