--- uml_net.c.wrongroutes Tue Jun 12 00:20:10 2001 +++ uml_net.c Fri Jun 15 14:37:08 2001 @@ -1,3 +1,10 @@ +/* + * Called from UML with the following parameters: + * uml_net ethertap tap_device file_descriptor gw_ip uml_ip + * for example: + * uml_net ethertap tap0 13 192.168.0.4 192.168.0.250 + */ + #include #include #include @@ -127,11 +134,12 @@ char ether_addr[sizeof("ff:ff:ff:ff:ff:ff\0")]; int ip[4]; - char *ifconfig_argv[] = { "ifconfig", dev, "arp", "mtu", "1500", gate_addr, - "up", NULL }; + char *ifconfig_argv[] = { "ifconfig", dev, "hw", "ether", ether_addr, + "arp", "mtu", "1500", gate_addr, + "netmask", "255.255.255.255", "up", NULL }; char *down_argv[] = { "ifconfig", dev, "0.0.0.0", "down", NULL }; - char *route_argv[] = { "route", "add", "-host", remote_addr, "gw", - gate_addr, NULL }; + char *route_argv[] = { "route", "add", "-host", remote_addr, "dev", + dev, NULL }; char *arp_argv[] = { "arp", "-Ds", remote_addr, "eth0", "pub", NULL }; char *no_arp_argv[] = { "arp", "-i", "eth0", "-d", remote_addr, "pub", NULL };