File: ip-fix-netmask.diff

package info (click to toggle)
vserver-debiantools 0.6.3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 212 kB
  • ctags: 24
  • sloc: sh: 1,599; makefile: 90
file content (47 lines) | stat: -rw-r--r-- 1,410 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--- newvserver.20050418	2005-04-19 16:47:51.000000000 +0200
+++ newvserver	2005-04-19 16:59:20.000000000 +0200
@@ -92,7 +92,7 @@
 full_usage ()
 {
 	cat << EOF
-Usage:	${0##*/} [OPTIONS] --hostname x --domain y.z --ip 1.2.3.4
+Usage:	${0##*/} [OPTIONS] --hostname x --domain y.z --ip 1.2.3.4/24
 Creates a new Debian vserver by calling "vserver ... build"
 
 Options:
@@ -112,6 +112,7 @@
 	--hostname		hostname for new vserver (eg. "alpha")
 	--domain		dns domain for new vserver (eg. "example.com")
 	--ip			IPv4 address for new vserver
+				(syntax: --ip <ip>[/<netmask|prefixlength>])
 
 You can also set variables in /etc/vservers/newvserver-vars.
 
@@ -244,6 +245,18 @@
 			case "$2" in
 			    [0-9]*.[0-9]*.[0-9]*.[0-9]*)
 				IP="$2"
+				# get netmask
+				IP_NETMASK=${IP##*/}
+				test "$IP_NETMASK" != "$1" || IP_NETMASK=
+				IP_ADDR=${IP%%/${IP_NETMASK}}
+				# if IP_NETMASK contains no ".", it is
+				# interpreted as IP_PREFIX 
+				IP_PREFIX=
+				test "${IP_NETMASK%%.*}" != "${IP_NETMASK}" \
+				  || {
+				    IP_PREFIX=$IP_NETMASK
+				    IP_NETMASK=
+				}
 				;;
 			    *)
 				echo "${0##*/} error: $1 requires a single IPv4  e.g. \"192.168.100.1\"" 1>&2
@@ -385,7 +398,7 @@
 # /etc/hosts
 
 127.0.0.1	localhost
-$IP	$VHOST.$VDOMAIN $VHOST
+$IP_ADDR	$VHOST.$VDOMAIN $VHOST
 
 # The following lines are desirable for IPv6 capable hosts
 # (added automatically by netbase upgrade)