summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-10-01 20:50:04 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2013-10-01 20:50:04 +0200
commit7875e0f5d6f1939ab87c5b98a20b55bd06f2dada (patch)
treea73b5cdd03ef013b75069afe07d1b325960ab305
parent418822cd51c76cdb088960604db53c7be73fbf78 (diff)
downloadutil-vserver-netns-7875e0f5d6f1939ab87c5b98a20b55bd06f2dada.tar.gz
util-vserver-netns-7875e0f5d6f1939ab87c5b98a20b55bd06f2dada.tar.bz2
util-vserver-netns-7875e0f5d6f1939ab87c5b98a20b55bd06f2dada.zip
vserver.functions: add magically localhost for netns
-rw-r--r--vserver.functions13
1 files changed, 13 insertions, 0 deletions
diff --git a/vserver.functions b/vserver.functions
index a75d717..8c25f74 100644
--- a/vserver.functions
+++ b/vserver.functions
@@ -47,6 +47,14 @@ function _netnsProcessSingleGateway() {
_addInterfaceCmd IP_ROUTE default via "$gw" dev "$iface"
}
+function _netnsAddLocalhost() {
+ if [ -r "${1}/nflags" ]; then
+ if grep -q '^~LBACK_REMAP$' "${1}/nflags"; then
+ INTERFACES=( "${INTERFACES[@]}" "127.0.0.1/8" "::1/128" )
+ fi
+ fi
+}
+
function _netnsFilterNetnsUmount() {
local args=( "$@" )
@@ -93,13 +101,18 @@ function _generateInterfaceOptions() {
ret=$?
# add commands for default route
+ local netns=0
for net in "$VSERVER_DIR/netns/"*; do
test -d "$net" || continue
test ! -e "${net}/disabled" || continue
_netnsProcessSingleGateway "$net"
+ netns=1
done
+ # if using netns, automatically add localhost
+ [ "$netns" != "0" ] && _netnsAddLocalhost "$VSERVER_DIR"
+
return $ret
}