0bbc2c1f3b8f01eac7826dab1a3e1e073f63da8a |
|
17-Jun-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp: checksum - make endianess-neutral
For efficiency, we group bytes together before adding them up. This
is guaranteed to always work (regardless of the byte order) as long
as the i-th byte in each group lign up with the i-th byte in each
other group.
On big-endian machines this broke when handling the trailing few bytes
which did not make up a full group of 4 bytes. This patch fixes the
problem by explicitly creating a 4 byte zero-padded group out of the
trailing bytes.
Reported and tested by Thomas Ritter <th.ritter@gmx.at>. |
20b958bf157dfb2f521b191ef7158035bcaa3003 |
|
20-May-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp: refactor dhcp_option_append
Store a pointer to the options in the DHCPMessage struct, and pass
this together with an offset around, rather than a uint8_t**.
This avoids us having to (re)compute the pointer; and changes
dhcp_option_append from adjusting both the pointer to the next
option and the remaining size of the options, to just adjusting
the current offset.
This makes the code a bit simpler to follow IMHO, but there should
be no functional change. |
3b7ca119fdc501e21f017695dc9b6f82fdbd1d93 |
|
06-Apr-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp-client: move magic cookie into DHCPMessage struct
Also move the checking of it to the main message handler, rather than the
options parser.
Fix a bug, so we now drop the packet if any of the magic bytes don't match.
Before we used to only drop the packet if they were all wrong. |
2ad7561f9f658f8dee168a76654c7d918e2260c7 |
|
30-Mar-2014 |
Tom Gundersen <teg@jklm.no> |
sd-dhcp: avoid checksum calculation if possible
When receiving lots of packets that are not meant for us, we waste a relatively large amount
of cpu time computing their checksums before discarding them. Move the checksum calculation last
so we never compute it for packets which would otherwise be discarded. |