On Mon, Dec 07, 2015 at 06:36:06PM +0100, Martin Pieuchot wrote: > On 07/12/15(Mon) 18:43, Reyk Floeter wrote: > > On Mon, Dec 07, 2015 at 06:15:43PM +0100, Martin Pieuchot wrote: > > > On 07/12/15(Mon) 18:17, Reyk Floeter wrote: > > > > On Mon, Dec 07, 2015 at 04:56:56PM +0100, Martin Pieuchot wrote: > > > > > If for some reason SIOCAIFADDR fails, exit instead of hanging. > > > > > > > > > > Without this diff I need to kill dhclient(8) with ctrl+C during boot > > > > > if I happen to have the address offered by the server configured on > > > > > a different interface. > > > > > > > > > > WARNING: do not try to do that on -current without my rt_delete diffs > > > > > or your kernel with panic! > > > > > > > > > > Ok? > > > > > > > > > > > > > Why don't you reject the address, go into background and try again > > > > later? > > > > > > Because if SIOCAIFADDR fails it means that you're doing something > > > stupid so there's no point in retrying later. > > > > So what does it mean? You have two dhcp interfaces connected to the > > same VLAN? Are you doing something stupid on the local machine, the > > dhcp server, or the outside network? > > The local machine. SIOCAIFADDR failing means you're trying to configure > the same address twice. > > It's like doing: > > # ifconfig em0 192.168.0.1 > # ifconfig em1 192.168.0.1 > > The second ifconfig bails with EEXIST, just like dhclient in the case I > describe. >
Yes, but if I understand the code correctly, this is called via privsep by add_address() for binding a lease that was received from the network. But, fine, a DHCP server that gives me the same IP for different MAC addresses is severely broken. I still it is wrong to abort here. Reyk > > You wouldn't believe me how much stupidity is found in data centers > > where you run your otherwise perfectly configured OpenBSD machines. > > For example, primary switch fails, backup takes over, but with a > > broken configuration ... Ah, and please don't forget about SDN where > > everything is dynamic and talks to some Linux-driven, Java- or Python > > based controllers. > > > > I don't think that dhclient should every hard fail for network- > > related errors. > > I agree, but here we're not talking about network related error. --
