Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
Fix packet length checking where payload length could have been zero.
Also check that we don't set the option pointer beyond the end of the
packet payload.
|
|
|
|
The previous way was giving the following warning with gcc 4.7:
CC gdhcp/common.o
gdhcp/common.c: In function 'dhcp_add_simple_option':
gdhcp/common.c:275:38: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing
Change it slightly so not to give this warning.
|
|
Pass NULL rather than 0 when calling time(2) to follow prefered
stylistic convention.
|
|
This patch sets the BOOTP secs field in a RFC 951- and 2131-compliant
manner for DHCPv4 DISCOVER and REQUEST/SELECT packets.
Certain DHCP servers, such as that implemented in Mac OS X (< 10.7)
for its "Internet Sharing" feature, refuse to issue a DHCP lease to
clients that have not set a non-zero value in their DISCOVER or
REQUEST packets. In fact, based on http://hints.macworld.com/article.php?
story=20071223001432304, it's not non-zero but a value greater than four (4)
seconds to allow another "authoritative" DHCP server on the subnet to reply
first.
Side-by-side packet analysis of Mac OS X, iOS, Android, ISC and
Windows clients show that these clients set the BOOTP 'secs' field and
are successfully issued a DHCP lease by Mac OS X. By contrast, a
connman-based client will issue 10 back-to-back DISCOVER packets and
will not be returned a DHCP OFFER from the server.
|
|
This patch adds a function to add a RFC 1533- and 2132-compliant DHCP
client-id option (61) to sent DHCPv4 packets.
|
|
Support specifying NULL-terminated string or raw data for allocated
DHCP options.
|
|
<inet.h> doesn't exist.
|
|
|
|
|
|
|
|
|
|
|
|
This patch contains solicitation message support.
|
|
See relevant parts from these RFCs:
RFC 3315 - DHCP for IPv6
RFC 3646 - DNS configuration options for DHCP for IPv6
RFC 3736 - Stateless DHCP service for IPv6
RFC 4075 - SNTP configuration option for DHCPv6
The patch does not support authenticated information messages.
|
|
The patch adds support for information-request DHCPv6 message.
|
|
Fixed following error:
connmand[4547]: src/dhcp.c:dhcp_release() dhcp 0x8c6d3e8
connmand[4547]: DHCP: switch listening mode (3 ==> 0)
(connmand:4547): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed
|
|
g_atomic_int_exchange_and_add() has been removed from glib 2.30
and g_atomic_int_add() should be used. Though there are still
quite a few distros out which do not ship a glib version with
g_atomic_int_add().
Instead of maintaing a compatiblilty glib layer we just use
the built-in functions for atomic memory access.
|
|
|
|
Make sure all file descriptor are closed.
|
|
This fix will cause the DHCP_REQUESTED_IP option to be sent to
the server.
Fixes BMC #21068
|
|
Given the following reproduction steps:
1) Set up an access point with a Class B IP address, say
10.2.40.254.
2) Set up the access point to provide DHCP leases over a range
10.2.40.2 through 10.2.40.253.
3) Set up a short lease renewal period of 5-10 minutes.
4) Allow the device to associate, connect and receive an IP
address.
5) Midway through the lease interval, change the access point to a
different IP address, say, 10.2.41.254.
6) Change the access point to issue DHCP leases over a new range,
10.2.41.2 through 10.2.41.253.
7) Watch as the access point resets, the connection is lost, the
connection is regained and as connman tries to get a new DHCP
lease.
Prior to commit 39825846, connman could receive a new but different
DHCP lease but connman would not program the confirmed lease to the
interface.
However, following that commit, it now programs the new, changed DHCP
lease to the interface but still believes the old lease is valid and
attempts to keep servicing the old renewal timeout for the prior but
now stale lease.
This patch cancels any existing, pending DHCP lease renewal timeout
following a DHCP lease configuration change.
|
|
|
|
I got build failing as below:
cc1: warnings being treated as errors
gdhcp/client.c: In function ‘alloc_dhcp_option’:
gdhcp/client.c:1455: error: implicit declaration of function ‘strnlen’
define _GNU_SOURCE fixes this problem.
|
|
|
|
IPv4 Link-Local negociation starts on gdhcp client failure.
|
|
Add G_IO_NVAL, G_IO_ERR and G_IO_HUP to the events list.
|
|
Add G_IO_NVAL, G_IO_ERR and G_IO_HUP to the events list.
|
|
|
|
We're requesting the unofficial proxy option (252) but then throwing
away the response because we don't recognise the type for it.
This fixes proxy detection via DHCP.
|
|
|
|
|
|
Currently the DHCP discover is retried five times with a timeout of
three seconds. This is not always enough if a bridge forward delay
is longer than 15 seconds is configured. So increase DHCP discover
attempts to ten times.
|
|
|
|
|
|
|
|
This is needed for the dhcp server implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|