Userland support for VM interconnection

Change-Id: I699608f3072b39c8da1a7cc313bd0b736e90f225
This commit is contained in:
Dries Harnie 2010-01-18 17:44:33 +01:00
parent 07b3d09e84
commit 2a743730c7
3 changed files with 29 additions and 9 deletions

View File

@ -45,3 +45,13 @@ esac
# this line doesn't really do anything useful. however without it the
# previous setprop doesn't seem to apply for some really odd reason
setprop ro.qemu.init.completed 1
# set up the second interface (for inter-emulator connections)
# if required
my_ip=`getprop net.shared_net_ip`
case "$my_ip" in
"")
;;
*) ifconfig eth1 "$my_ip" netmask 255.255.255.0 up
;;
esac

View File

@ -41,7 +41,7 @@ TOOLS := \
printenv \
smd \
chmod \
chown \
chown \
newfs_msdos \
netstat \
ioctl \
@ -53,7 +53,7 @@ TOOLS := \
uptime \
vmstat \
nandread \
ionice
ionice
LOCAL_SRC_FILES:= \
toolbox.c \

View File

@ -80,14 +80,24 @@ int route_main(int argc, char *argv[])
/* route add -net 192.168.1.2 netmask 255.255.255.0 gw 192.168.1.1 */
if (argc > 7 && !strcmp(argv[2], "-net") &&
!strcmp(argv[4], "netmask") && !strcmp(argv[6], "gw")) {
rt.rt_flags = RTF_UP | RTF_GATEWAY;
if (set_address(argv[3], &rt.rt_dst) &&
set_address(argv[5], &rt.rt_genmask) &&
set_address(argv[7], &rt.rt_gateway)) {
errno = 0;
!strcmp(argv[4], "netmask")) {
if (!strcmp(argv[6], "gw")) {
rt.rt_flags = RTF_UP | RTF_GATEWAY;
if (set_address(argv[3], &rt.rt_dst) &&
set_address(argv[5], &rt.rt_genmask) &&
set_address(argv[7], &rt.rt_gateway)) {
errno = 0;
}
goto apply;
} else if (!strcmp(argv[6], "dev")) {
rt.rt_flags = RTF_UP;
rt.rt_dev = argv[7];
if (set_address(argv[3], &rt.rt_dst) &&
set_address(argv[5], &rt.rt_genmask)) {
errno = 0;
}
goto apply;
}
goto apply;
}
}