diff --git a/netcfg-static.c b/netcfg-static.c index d3b90cd9..594a1289 100644 --- a/netcfg-static.c +++ b/netcfg-static.c @@ -119,7 +119,7 @@ netcfg_write_static () fprintf (fp, "\tnetwork %s\n", num2dot (network)); fprintf (fp, "\tbroadcast %s\n", num2dot (broadcast)); if (gateway) - fprintf (fp, "\tgateway %s\n", num2dot (gateway)); + fprintf (fp, "\tgateway %s\n", num2dot (gateway)); fclose (fp); } else @@ -136,37 +136,47 @@ netcfg_activate_static () int rv = 0; char *ptr; char buf[128]; - execlog ("/sbin/ifconfig lo 127.0.0.1"); - +#ifdef __GNU__ +/* I had to do something like this ? */ +/* execlog ("settrans /servers/socket/2 -fg"); */ + execlog ("settrans /servers/socket/2 --goaway"); ptr = buf; ptr += - snprintf (buf, sizeof (buf), "/sbin/ifconfig %s %s", interface, - num2dot (ipaddress)); - ptr += - snprintf (ptr, sizeof (buf) - (ptr - buf), " netmask %s", - num2dot (netmask)); - ptr += - snprintf (ptr, sizeof (buf) - (ptr - buf), " broadcast %s", - num2dot (broadcast)); + snprintf (buf, sizeof (buf), + "settrans -fg /servers/socket/2 /hurd/pfinet --interface=%s --address=%s --netmask=%s", + interface, num2dot (ipaddress), num2dot (netmask)); + + if (gateway) + ptr += + snprintf (ptr, sizeof (buf) - (ptr - buf), " --gateway=%s", + num2dot (gateway)); + + rv |= execlog (buf); + +#else + execlog ("/sbin/ifconfig lo 127.0.0.1"); + + snprintf (buf, sizeof (buf), "/sbin/ifconfig %s %s netmask %s broadcast %s", + interface, num2dot (ipaddress), num2dot (netmask), + num2dot (broadcast)); rv |= execlog (buf); if (gateway) - { + { ptr = buf; ptr += - snprintf (buf, sizeof (buf), "/sbin/route add default gateway %s", - num2dot (gateway)); + snprintf (buf, sizeof (buf), "/sbin/route add default gateway %s", + num2dot (gateway)); rv |= execlog (buf); - } + } +#endif if (rv != 0) - { - client->command (client, "input", - "critical", "netcfg/error_cfg", NULL); + { + client->command (client, "input", "critical", "netcfg/error_cfg", NULL); client->command (client, "go", NULL); - } - + } return 0; }