IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
- dhcp.c: Remove temporary default route properly (altbug:#34347).
- dhcp.c: Provide DHCP vendor class identifier in requests (altbug:#34320).
This behaviour can be reverted with a kernel command line parameter.
DHCP is implemented in propagator in a rather lazy way:
to dynamically configure a network interface, say `eno1',
instead of slinging raw Ethernet frames around like everyone else,
it sets up a (temporary) default null route through that interface
and throws UDP messages with actual bootp payload.
`ip' utility describes such a route as `default dev eno1 scope link'
The idea behind this presumably was to avoid generating IP and UDP
headers manually while the null route is sufficient to send a couple of
link-wide (maybe broadcast) messages and generic enough to work anywhere.
To this date propagator didn't bother to remove that route,
so *in some networks* it had persisted even after the initramfs
(and propagator itself) was long gone, and in other networks did not,
having been luckily replaced by the default route to DHCP gateway.
In the cases where it did the real problem showed itself
after the real userspace (for example, in a live distro)
eventually tried to reconfigure the network (because why not?).
The pesky null route was most often left untouched by the DHCP client
(ALT live distros mostly use dhcpcd), managing to squeeze its way
up the routing table and effectively preventing the host
from network access beyond a router.
If the NFS root is behind a couple routers, any attempt to access
the file system gets stuck — the system keeps tirelessly looking for
the NFS host via ARP.
Some obsolete DHCP implementations in specialized network hardware
(Cisco, we're looking at you) discard DHCP messages from a client
attempting to reconfigure itself and providing a different vendor class
identifier the second time — much like a network-booting system.
To cope with that, propagator will not send a vendor class identifier
if `dhcp-send-vendor-id:off' is specified as part of its "automatic"
parameters on the kernel command line.
Feel free to use any boolean value: yes/no, true/false, on/off.
The default behaviour is "yes".
- New udev control logic imported from make-initrd scripts.
- Udev-trigger replaced to udev-settle() in hardware wait loops.
- All udev control code moved from init.c to new udev.c module.
- Lazy initialization mode support added for work in cooperate
with make-initrd: this is experimental future, turned off by
default, and also required patched make-initrd-propagator.
- disk.c, cdrom.c: 15 attempts with udev-settle() calls.
- network.c: bridge up algorithm reviewed, fixed memory leaks.
- network.c: 15 attempts to select and wait network interface;
- probing.c, probing.h, dhcp.c: small fixes, now black list used.
- modules_descr.h, stage1.c: deprecated header, unused code removed.
- dhcp.c: fix potentially destructive typo (closes: #34322),
thanks to Arseny Maslennikov <arseny@altlinux.org>.
- Workaround race conditions during disks detection (closes: #30315).
- Workaround race conditions during bridging up network interfaces,
see: https://bugzilla.altlinux.org/show_bug.cgi?id=34347 and
https://lists.altlinux.org/pipermail/sysadmins/2018-April/date.html
(about "No network Devices found" error message).
- Multiple small code improvements, fixes for avoid memory leaks
and suppress compiler warnings.
This change also suppress a compiler warning:
network.c:307:18: warning: '%d' directive writing between
1 and 11 bytes into a region of size 3 [-Wformat-overflow=]
- New udev control logic imported from make-initrd scripts;
- Udev-trigger replaced to udev-settle() in hardware wait loops;
- All udev control code moved from init.c to new udev.c module;
- Lazy initialization mode support added for work in cooperate
with make-initrd: this is experimental future, turned off by
default, and also required patched make-initrd-propagator;
- Small fixes for suppress compiler warnings;
+ network.c/interface_select():
- "No network device found." message moved to intf_select_and_up();
- This function now is only one attempt with udev-settle() call;
- Fixed memory leaks;
+ network.c/intf_select_and_up():
- "No network device found." error messege now here;
- 15 attempts to select and wait network interface;
- Recursion replaced to loop;
+ probing.h/free_net_devices():
- New function declared;
+ probing.c/free_net_devices():
- Reverse for get_net_devices() to avoid memory leaks;
+ probing.c/net_dev_black_list:
- Wireless interfaces "wlan*" added to black list;
+ dhcp.c/perform_dhcp():
- No more restrict by interface name;
- probing.c: added support for MMC devices when boot in LiveCD-mode
(by Leonid Krivoshein).
- cdrom.c: fixed implicit declaration of function opendir warning
(by Leonid Krivoshein).
- disk.c: Workaround race conditions during disks detection
(closes: #30315).
- cdrom.c, network.c, tools.c: Fix memory leaks.
- tools.c: Don't do useless comparisons during cmdline processing.
- Use ramdisk_size from kernel cmdline.
- Check that RAM size is enough for ramdisk.
[disk.c:206]: (error) Resource leak: f
[modules.c:62]: (error) Memory leak: buffer
[modules.c:68]: (error) Common realloc mistake: 'buffer' nulled but not freed upon failure
[stage1.c:101]: (error) va_list 'args' was opened but not closed by va_end().
[url.c:297]: (error) Resource leak: dataSocket
This hardcoded pause is ugly indeed but forcing users
into wondering what goes on behind bootsplash *sometimes*
(depending on usbflash controller type *and* state) is worse.
Any ideas on reliably fixing this are welcome, of course.
See also http://bugzilla.altlinux.org/30315