Simon Kelley
2a8710ac2f
Update copyrights to 2020.
2020-01-05 16:40:06 +00:00
Simon Kelley
18a6bdd541
Avoid RA code trampling on DHCPv6 messages.
...
Calling lease_update_file() _can_ result in a call to periodic_ra()
Since both the DHCPv6 and RA subsystems use the same packet buffer
this can overwrite the DHCPv6 packet. To avoid this we ensure the
DHCPv6 packet has been sent before calling lease_update_file().
2019-12-20 18:19:20 +00:00
Simon Kelley
f73f7397d7
Fix bug which gave zero-length DHCPv6 packets if sendto() is interrupted.
2019-12-03 18:18:46 +00:00
Dominik DL6ER
456a319775
DHCPv6 IAID should be of unsigned type. It is derived from strtoul() in lease.c:read_leases() and already now interpreted as unsigned in helper.c:276 and outpacket.c:put_opt6_long(). RFC3315 (section 22.4) shows that the IAID is 4 bytes long so we do not need to go up to unsigned long.
...
Signed-off-by: Dominik DL6ER <dl6er@dl6er.de >
2019-10-25 22:00:35 +01:00
Simon Kelley
ae5b7e04a1
Add --shared-network DHCP configuration.
2019-03-27 22:33:28 +00:00
Simon Kelley
9c0d445ef4
Fix e7bfd556c0 to actually work.
2019-01-09 18:04:39 +00:00
Simon Kelley
cc921df9ce
Remove nested struct/union in cache records and all_addr.
2019-01-02 22:48:59 +00:00
Simon Kelley
e7bfd556c0
Alter DHCP address selection after DECLINE in consec-addr mode.
...
Avoid offering the same address after a recieving a DECLINE message
to stop an infinite protocol loop. This has long been done in
default address allocation mode: this adds similar behaviour
when allocaing addresses consecutively.
2018-12-31 20:51:15 +00:00
Simon Kelley
05ff659a3c
Fix stupid infinite loop introduced by preceding commit.
2018-06-12 16:03:09 +01:00
Simon Kelley
db0f488ea8
Handle some corner cases in RA contructed interfaces with addresses changing interface.
...
Thanks to Vladislav Grishenko for work on this.
2018-06-07 21:37:02 +01:00
Simon Kelley
c488b68e75
Handle standard and contructed dhcp-ranges on the same interface.
2018-06-02 13:06:00 +01:00
Maarten de Vries
0a496f059c
Do unsolicited RAs for interfaces which appear after dnsmasq startup.
...
I noticed that dnsmasq often wasn't sending any unsolicited RAs for me.
This turned out to happen when the interface (a bridge interface) wasn't
created yet at the time dnsmasq started. When dnsmasq is started after
the interface is created, it sends RAs as expected. I assume this also
extends to other types of virtual interfaces that are created after
dnsmasq starts.
Digging into the source, it seems to be caused by a missing call to
ra_start_unsolicited for non-template contexts in construct_worker from
src/dhcp6.c. The attached patch adds that call, but only if the
interface index or address changed to prevent doing fast RAs for no reason.
I tested it on my own server and it appears to work as expected. When
the interface is created and configured, dnsmasq does fast RAs for a
while and then settles into slow RAs.
2018-05-11 23:20:58 +01:00
Simon Kelley
d1ced3ae38
Update copyrights to 2018.
2018-01-01 22:18:03 +00:00
Simon Kelley
50ca85504c
Bump year in copyrights.
2017-06-24 22:43:18 +01:00
Josh Soref
730c6745f0
Comprehensive spelling/typo fixes.
...
Thanks to Josh Soref for generating these fixes.
2017-02-06 16:14:04 +00:00
Simon Kelley
d6b749af91
Fix typo in SDBM hash function.
...
Thanks to Luis Carvalho for spotting the error.
2016-04-25 17:05:15 +01:00
Simon Kelley
fdc97e1383
Avoid divide-by-zero when dhcp-range is a whole /64
2016-02-13 17:47:17 +00:00
Simon Kelley
c49778df4a
Update copyright notices. Happy new year!
2016-01-06 18:52:33 +00:00
Simon Kelley
33702ab1f8
First complete version of DNS-client-id EDNS0 and ARP tracking code.
2015-12-28 23:17:15 +00:00
Simon Kelley
11867dc28c
Cache access to the kernel's ARP table.
2015-12-23 16:15:58 +00:00
Neil Jerram
4918bd5505
Documenation updates for --bridge-interface and "off-link".
2015-06-10 22:23:20 +01:00
Neil Jerram
0ddb8769bb
Extend --bridge-interface aliasing to DHCPv6.
2015-06-10 22:11:06 +01:00
Simon Kelley
ff841ebf5a
Fix boilerplate code for re-running system calls on EINTR and EAGAIN etc.
...
The nasty code with static variable in retry_send() which
avoids looping forever needs to be called on success of the syscall,
to reset the static variable.
2015-03-11 21:36:30 +00:00
Tomas Hozza
0705a7e2d5
Fix uninitialized value used in get_client_mac()
2015-02-23 21:26:26 +00:00
Simon Kelley
aff3396280
Update copyrights for dawn of 2015.
2015-01-31 20:13:40 +00:00
Simon Kelley
a0358e5ddb
Handle async notification of address changes using the event system.
2014-06-07 13:38:48 +01:00
Simon Kelley
a03f8d4c37
Suppress re-entrant calls to dhcp_construct_contexts()
2014-06-05 22:38:53 +01:00
Simon Kelley
7ea3d3fdca
ra-advrouter mode for RFC-3775 mobile IPv6 support.
2014-04-25 22:04:05 +01:00
Simon Kelley
c3a04081ff
[fd00::} and [fe80::] special addresses in DHCPv6 options.
2014-01-11 22:18:19 +00:00
Simon Kelley
c47e3ba446
Update copyright for 2014.
2014-01-08 17:07:54 +00:00
Simon Kelley
1ee9be4c3f
Implement dynamic interface discovery on *BSD
2013-12-09 16:50:19 +00:00
Vladislav Grishenko
4c82efc5ac
Relax rules in prefix length in (IPv6) dhcp-range.
2013-12-03 16:05:30 +00:00
Simon Kelley
0d6eb134f5
Do immediate RA when a prefix goes from old->current.
2013-11-26 13:30:12 +00:00
Simon Kelley
6586e8352a
Use random address allocation for DHCPv6 temporary addresses.
2013-11-07 14:20:13 +00:00
Simon Kelley
3511a92869
Fix start-up order for making DHCPv6 DUID
...
Previously, if the DUID wasn't read from the lease-file or
script, a new one was created _after_ the helper process fork,
so for that first run, the script calls got an empty DUID.
Also, use a DUID_LL format DUID when there's no stable lease
storage, as well as when the RTC is broken. That has a chance of
evaluating to the same value on each startup.
2013-11-07 10:28:11 +00:00
Simon Kelley
486479e943
Check prefix length when contructing DHCP ranges.
2013-10-14 17:18:03 +01:00
Simon Kelley
a810559b24
daemon->icmp6fd is always valid when doing DHCPv6 now.
2013-09-25 15:36:00 +01:00
Simon Kelley
861c89141a
Change rules for constructing DHCPv6 ranges.
2013-09-25 15:30:30 +01:00
Simon Kelley
8939c95fd6
Don't extract MAC address from ND table when DHCPv6 request is from a relay.
2013-09-25 11:49:34 +01:00
Vladislav Grishenko
408c368fa5
Remove unused variable warnings when omitting stuff at compile-time.
2013-09-24 16:18:49 +01:00
Simon Kelley
1b55190d3f
Fix FTBFS on OpenBSD.
2013-09-23 15:28:38 +01:00
Simon Kelley
d81b42d067
Prod neighbour discovery with ARP instead of PING.
2013-09-23 12:26:34 +01:00
Simon Kelley
8f51a29137
Fix compiler warnings.
2013-09-21 14:07:12 +01:00
Simon Kelley
89500e31f1
Support MAC addresses in dhcp-host and dhcp-mac for DHCPv6.
2013-09-20 16:29:20 +01:00
Simon Kelley
ff7eea27e7
Add --dhcp-relay config option.
2013-09-04 18:01:38 +01:00
Vladislav Grishenko
e4cdbbf521
Allow prefix :: in constructed dhcp-range.
2013-08-19 16:20:31 +01:00
Simon Kelley
ffbad34b31
Set SOREUSEADDR as well as SOREUSEPORT on DHCP sockets when both available.
2013-08-14 15:53:57 +01:00
Simon Kelley
9f48ffa1e8
Apply ceiling of configured dhcp-range leasetime to deprecated prefix adverts.
2013-07-28 15:47:04 +01:00
Simon Kelley
f7a40ec650
Tweak when old prefix returns.
2013-07-27 13:36:08 +01:00
Simon Kelley
ef1a94abaa
Advertise lost prefixes with pref_time == 0 for 2 hours.
2013-07-26 13:59:03 +01:00