installer networking

George Georgalis george at galis.org
Tue Feb 1 07:00:10 PST 2005


On Tue, Feb 01, 2005 at 01:09:39AM -0800, Chris Pressey wrote:
>On Tue, 1 Feb 2005 00:43:06 -0500
>"George Georgalis" <george at xxxxxxxxx> wrote:
>
>> On Mon, Jan 31, 2005 at 08:57:08PM -0800, Chris Pressey wrote:
>> >On Mon, 31 Jan 2005 19:08:55 -0500
>> >"George Georgalis" <george at xxxxxxxxx> wrote:
>> >
>> >> Is it intentional that the installer (20040913) refuses to
>> >configure a > network interface for a network that is not immediately
>> >available? I > found it a bit awkward to setup an interface with
>> >dhcp, only to change > it back when the box left my bench and went to
>> >the internet.
>> >
>> >Not "intentional" so much as it's the typical use case we've been
>> >assuming - the network configuration you set up during install is
>> >likely the same network configuration you want to use when you boot
>> >the box, at least for the first time.  As with several situations
>> >with the current installer, exceptions must be handled manually
>> >(mount the target system yourself, edit /mnt/etc/rc.conf, etc) 
>> >Version 2 will handle network configuration in a more sophisticated
>> >manner, we hope.  That's still a fair ways off, though.
>> 
>> If you can tell me the file to patch, I'll try to come up with a
>> temporary fix, ie "that network unavailable, are you sure (y/N)" It
>> would be convenient for people who haven't memorized rc.conf syntax
>> (me). But if that option is tricky, I can live without it.
>
>You can look at function fn_assign_ip() in fn_configure.c:
>
>http://www.bsdinstaller.org/cgi-bin/cvsweb.cgi/installer/src/backend/installer/fn_configure.c
>
>But, by the looks of the code, it actually does write your selected
>network settings to rc.conf, even if they failed to connect.  Possibly
>all that is needed is a more informative error message.


I can try it again later today, but what I think what is happening
is the inform function causes a break from
	if (dfui_id_is(dfui_response_get_action_id(r), "ok"))
(about 22 lines above) and subsequent config_var_set doesn't happen.
I couldn't find where inform is defined though.


from fn_configure_20040910.c (looks the same as 20050129 here)

   cmds = commands_new();
   command_add(cmds, "%s%s %s %s netmask %s",
       a->os_root, cmd_name(a, "IFCONFIG"),
       interface, interface_ip, interface_netmask);
   command_add(cmds, "%s%s add default %s",
       a->os_root, cmd_name(a, "ROUTE"),
       defaultrouter);

   if (commands_execute(a, cmds)) {
    /* XXX sleep(3); */
    show_ifconfig(a->c, interface);
   } else {
    inform(a->c, "Warning: could not assign IP or default gateway.");
   }
   commands_free(cmds);

   asprintf(&string, "ifconfig_%s", interface);
   asprintf(&string1, "inet %s netmask %s",
       interface_ip, interface_netmask);

   config_var_set(rc_conf, string, string1);
   config_var_set(rc_conf, "defaultrouter", defaultrouter);


I'm accustomed to seeing "skip cancel ignore retry" options (don't
actually recalll what the 4 choices are) but if one of the options
allowed the static IP to go in rc.conf, I missed it. Could it be that
inform needs non-fatal exit codes (and probably more work than worth)?

// George

. ...
"Note: root's new password will appear in the install log. "
is this really necessary?

-- 
George Georgalis, systems architect, administrator Linux BSD IXOYE
http://galis.org/george/ cell:646-331-2027 mailto:george at xxxxxxxxx





More information about the Bugs mailing list