On Fri, May 15, 2015 at 09:26:06AM +0300, Andrei Borzenkov wrote: > В Tue, 12 May 2015 16:49:48 +0800 > Michael Chang <mch...@suse.com> пишет: > > > The net_bootp6 is used to configure the ipv6 network interface through the > > DHCPv6 protocol Solict/Advertise/Request/Reply. > > --- > > grub-core/net/bootp.c | 895 > > ++++++++++++++++++++++++++++++++++++++++++++++++- > > grub-core/net/ip.c | 35 ++ > > include/grub/net.h | 19 + > > 3 files changed, 948 insertions(+), 1 deletions(-) > > > > diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c > > index 6136755..5c5eb6f 100644 > > --- a/grub-core/net/bootp.c > > +++ b/grub-core/net/bootp.c > > @@ -24,6 +24,8 @@ > > #include <grub/net/netbuff.h> > > #include <grub/net/udp.h> > > #include <grub/datetime.h> > > +#include <grub/time.h> > > +#include <grub/list.h> > > > > static void > > parse_dhcp_vendor (const char *name, const void *vend, int limit, int > > *mask) > > @@ -256,6 +258,646 @@ grub_net_configure_by_dhcp_ack (const char *name, > > return inter; > > } > > > > +struct grub_dhcpv6_option { > > + grub_uint16_t code; > > + grub_uint16_t len; > > Won't do; options in packet are unaligned (see below) so you have to > walk byte buffer using get_unaligned and
I don't get it. Wouldn't the structure attribute GRUB_PACKED do the trick for us? > > grub_uint8_t code[2] > grub_uint8_t len[2] > > > + grub_uint8_t data[0]; > > +} GRUB_PACKED; > > + > > + > > +struct grub_dhcpv6_iana_option { > > + grub_uint32_t iaid; > > + grub_uint32_t t1; > > + grub_uint32_t t2; > > + grub_uint8_t data[0]; > > +} GRUB_PACKED; > > + > > +struct grub_dhcpv6_iaaddr_option { > > + grub_uint8_t addr[16]; > > + grub_uint32_t preferred_lifetime; > > + grub_uint32_t valid_lifetime; > > + grub_uint8_t data[0]; > > +} GRUB_PACKED; > > + > > +struct grub_DUID_LL > > +{ > > + grub_uint16_t type; > > + grub_uint16_t hw_type; > > + grub_uint8_t hwaddr[6]; > > +} GRUB_PACKED; > > + > > Probably the same applies to all option definitions. That would require quite a lot of rewritting basically. (So I'd like it to be clear to me in the first). Thanks, Michael _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel