Public bug reported:

bootparamd in all releases of Ubuntu & Debian is the original v0.17 from
http://ftp.linux.org.uk/pub/linux/Networking/netkit/ dated 2000-07-31

As many people have discovered, this version treats all return
parameters as ipv4 addresses.

Anything else is silently discarded.

This doesn't work for jumpstarting Solaris clients, which use other
types of parameters for setting boot time options. The client loops
around asking for the root= options, doesn't get what it wants, so keeps
asking, complaining rpc error.

FreeBSD patched in 2005 https://lists.freebsd.org/pipermail/freebsd-
questions/2005-August/096289.html

and added multiple network support in 2010
https://lists.freebsd.org/pipermail/freebsd-
bugs/2010-February/038347.html

There is also another patch to allow wildcard hostnames
http://web.mit.edu/ops/services/boot/bootparamd-wildcard.patch

Gentoo have their own version of the jumpstart patch, perhaps with
cleaner code,
https://github.com/ClusterHQ/gentoo/blob/master/usr/portage/net-misc
/netkit-bootparamd/files/0.17-jumpstart.patch

The following patch works, but it would be nice to have one that
combines jumpstart, wildcard and multi-homed, and uses clean, updated
coding style, more debug output since bootparam is tricky work, and
fixes warn_unused_result compile time warnings.

Any capable and competent coders up for the small task?

diff rpc.bootparamd.orig/rpc.bootparamd.c rpc.bootparamd.new/rpc.bootparamd.c
137,143c137,150
<           path[sizeof(path)-1] = 0;
<           he = gethostbyname(hostname);
<           if (!he) goto failed;
<           bcopy( he->h_addr, &res.server_address.bp_address_u.ip_addr, 4);
<           res.server_name = hostname;
<           res.server_path = path;
<           res.server_address.address_type = IP_ADDR_TYPE;
---
>           path[sizeof(path)-1] = '\0';
>           if (hostname[0] != '\0') {
>               he = gethostbyname(hostname);
>               if (!he) goto failed;
>               bcopy( he->h_addr, &res.server_address.bp_address_u.ip_addr, 4);
>               res.server_name = hostname;
>               res.server_path = path;
>               res.server_address.address_type = IP_ADDR_TYPE;
>           }
>           else {
>               res.server_name[0] = '\0';
>               res.server_path = path;
>               bzero(&res.server_address.bp_address_u.ip_addr,4);
>           }

** Affects: netkit-bootparamd (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1610184

Title:
  bootparamd does not support parameters other than ipv4 addresses

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/netkit-bootparamd/+bug/1610184/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to