close

./net/dhcpsd, DHCP server

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ] [ Image Add to tracker ]


Branch: CURRENT, Version: 0.0.7, Package name: dhcpsd-0.0.7, Maintainer: roy

This is a DHCP server, driven by plugins rather than a specific
configuration.

There is an auto plugin which makes an opinionated automatic
DHCP setup based on your IP address.
There is a leasefile plugin which stores the leases to a
persistent flat file periodically.
There is an ethers plugin to lookup a nodes hostname from their
ethernet address.
There is an addrinfo plugin to lookup a nodes ip address from their
hostname.
There is an ICMP plugin to detect if an ip address is in use
before offering it.
And if that is not enough there is a LUA plugin which allows you
to script pretty much everything, but there is likely room for
improvement here.

Out of the box, dhcpsd is fast by using 2 hashmaps for clientid
and ip address lookups and then by using a Red Black tree for
lease expiry ordering.
dhcpsd is written in C and uses Verstable for a hashmap and
NetBSD's Red Black tree.
It's also event driven with timeouts and callbacks which
allows for example the ICMP plugin to hold the DHCP request
until finished and then continue it once done and dhcpsd
will process other tasks in the middle of this.

dhcpsd is also secure by supporting Capsicum from FreeBSD,
pledge from OpenBSD send SECCOMP from Linux.
Other OS's enjoy a POSIX resource limited chrooted sandbox.


Master sites:

Filesize: 100.578 KB

Version history: (Expand)


CVS history: (Expand)


   2026-04-21 19:07:42 by Roy Marples | Files touched by this commit (2)
Log message:
Update to dhcpsd-0.0.7 with the following changes:

* Add support for Darwin / macOS
* dhcpsd: -w waits for dynmically created interfaces
* sanitize_rfc1035: return early on error at start
   2025-12-16 23:28:31 by Roy Marples | Files touched by this commit (2)
Log message:
Update to dhcpsd-0.0.6 with the following changes:

* DHCP: Fix copying out FQDN hostname
* lua: add add_domain function to encode a string using RFC 1035
* DHCP: work with the broadcast flag correctly
* DHCP: Sanitize incoming hostnames for RFC1053 conformance
* DHCP: Fix plugin leasetime
   2025-12-14 12:00:00 by Roy Marples | Files touched by this commit (2)
Log message:
Update to dhcpsd-0.0.5 with the following changes:

* lua: add add_uint8, add_uint16 and add_uint32 functions
* lua: allow a hostname and pool to define a lease time
* kqueue/epoll support
* dhcpsd: don't have a controlling TTY on fork
   2025-10-23 18:36:18 by Roy Marples | Files touched by this commit (5)
Log message:
Import dhcpsd-0.0.4

This is a DHCP server, driven by plugins rather than a specific
configuration.

There is an auto plugin which makes an opinionated automatic
DHCP setup based on your IP address.
There is a leasefile plugin which stores the leases to a
persistent flat file periodically.
There is an ethers plugin to lookup a nodes hostname from their
ethernet address.
There is an addrinfo plugin to lookup a nodes ip address from their
hostname.
There is an ICMP plugin to detect if an ip address is in use
before offering it.
And if that is not enough there is a LUA plugin which allows you
to script pretty much everything, but there is likely room for
improvement here.

Out of the box, dhcpsd is fast by using 2 hashmaps for clientid
and ip address lookups and then by using a Red Black tree for
lease expiry ordering.
dhcpsd is written in C and uses Verstable for a hashmap and
NetBSD's Red Black tree.
It's also event driven with timeouts and callbacks which
allows for example the ICMP plugin to hold the DHCP request
until finished and then continue it once done and dhcpsd
will process other tasks in the middle of this.

dhcpsd is also secure by supporting Capsicum from FreeBSD,
pledge from OpenBSD send SECCOMP from Linux.
Other OS's enjoy a POSIX resource limited chrooted sandbox.

I hope you all enjoy using this as much as I have creating it :)