summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAge
* import-src: adjust build target so all .in files are pre-builtRoy Marples2021-01-30
| | | | | While here, if we cannot find ypbind to work out how the hook script should be configured, guess according to OS.
* eloop: Default to using ppoll(2) again.Roy Marples2021-01-30
| | | | | | | | | | Even though we now have fully working kqueue(2) and epoll(7) with our privsep code, ppoll(2) is faster and smaller for our workload. This time though, we will keep the code here as it's fully working and while fixing kqueue we also fixed other bugs in dhcpcd as a result so it's not time wasted at all.
* Linux: Implement epoll(7) for eloop (again)Roy Marples2021-01-28
| | | | | eloop allows for O(1) processing of active fd's. The problems with the prior implementation have now been fixed.
* OpenBSD: Fix kqueue detection and one error.Roy Marples2021-01-28
|
* BSD: Implement kqueue(2) for eloop (again)Roy Marples2021-01-28
| | | | | | | | kqueue allows for O(1) processing of active fd's an a more robust signal handling method without the need to use global variables to avoid calling functions during signal delivery. The problems with the prior implemenation have now been fixed.
* WhitespaceRoy Marples2021-01-27
|
* Just give up with setproctitle on IllumosRoy Marples2020-10-10
| | | | Their ps tools go out of their way to only show how it was launched :/
* configure: Remove PPOLL from config.mkRoy Marples2020-09-06
|
* Quick change for piorRoy Marples2020-06-17
|
* configure: add --with-eghook=fooRoy Marples2020-06-17
| | | | Allows to force for example ypbind if it's not installed.
* configure: Fix fallout with disabling embedded configRoy Marples2020-06-15
|
* udev: disable for non Linux systemsRoy Marples2020-06-11
| | | | | | | | On FreeBSD udev, the function udev_device_new_from_subsystem_sysname exists but is not implemented. As such it breaks our device initialisation detection. Disabled by default, but can be enabled with ./configure --with-udev
* privsep: control proxy is no longer optionalRoy Marples2020-06-10
| | | | | | It's required for pledge. It *could* be optional for capsicum but I'd like to try and keep the sandboxing the same for now.
* privsep: Implement a resource limited sandboxRoy Marples2020-06-09
| | | | | | | | | | | | | For systems without Capsicum or Pledge we can create a resource limited sandbox provided that either ppoll(2) or works with RLIMIT_NOFILES set to zero. As far as dhcpcd is concerned, that means Linux and Solaris won't work with this, but NetBSD and DragonFlyBSD will. To achieve this, a special control proxy process will be spawned just to accept new connections over the control socket because this *cannot* be limited by RLIMIT_NOFILES.
* eloop: Just use ppoll(2)Roy Marples2020-06-03
| | | | | | | | | | | | | | epoll and kqueue are really too heavy weight. With privsep, we now favour more processes for BPF and per address sockets. As such, the number of fds to monitor will always be quite small. All modern OS now have ppoll(2) (NetBSD has pollts, which is the same) which works perfectly for us. If neither are present, the a wrapper around pselect(2) is provided, which can be found on all POSIX systems. This makes the code a lot smaller and easier to follow. The reduced binary size and memory usage is a nice win here.
* For systems without open_memstream(3) warn that /tmp needs to exitRoy Marples2020-05-27
| | | | Inside the privsep users home directory.
* privsep: Allow Linux to work without needing any mountsRoy Marples2020-05-24
|
* privsep: Just ensure default user has a home directoryRoy Marples2020-05-12
|
* privsep: No longer need the chrootdir configure option.Roy Marples2020-05-12
| | | | As we work with an empty chroot directory.
* privsep: Implement pledge(2) support as found on OpenBSDRoy Marples2020-05-10
|
* privsep: Enable capsicum for network facing processesRoy Marples2020-05-07
| | | | | | | All fd's in network facing processes are fully limited. Capability mode is only enabled for BPF processes because it's too restrictive otherwise - the reasons are noted in the commit.
* privsep: Allow a blank string to force privsep users home directoryRoy Marples2020-05-05
| | | | So FreeBSD users can set it like other OS's if they so choose.
* privsep: Document any overridden chroot directory.Roy Marples2020-05-05
|
* Log chrootdir set.Roy Marples2020-05-04
|
* privsep: allow --chrootdir= to configure a default chroot directoryRoy Marples2020-04-30
|
* privsep: Add --chroot configurableRoy Marples2020-04-30
| | | | | Overrides the directory to chroot to away from the privilege separation users home directory.
* configure: Set a blank default hostname for non LinuxRoy Marples2020-04-16
| | | | Wups, I was debugging.
* privsep: Detect a suitable user for dhcpcd, otherwise use dhcpcdRoy Marples2020-04-05
| | | | | | System users generally have _ preceeding their username. Only use this user if it exists and their home dir is not /var/empty. Otherwise default to using dhcpcd.
* Revert "privsep: default to using _dhcpcd and not _dhcp"Roy Marples2020-04-05
| | | | This reverts commit 36c47a8df0951236a7842bbf8241e2932357ef61.
* privsep: default to using _dhcpcd and not _dhcpRoy Marples2020-04-10
| | | | | | | _dhcp home dir defaults to /var/empty. System integrators can and should be in charge of changing it when needed. Packagers on the other hand don't have such a luxury and so should not use _dhcp by default.
* dhcpcd: disable address sanitization by defaultRoy Marples2020-03-31
| | | | | | As recent production kernels ship with ASLR by default which stops dhcpcd running dead when this is enabled. We dont want to break a systems boot, so force it via configure.
* linux: the default hostname is (none)Roy Marples2020-03-31
| | | | | It's blank for the BSD's. Respect this when relinquishing the hostname.
* another typoRoy Marples2020-02-10
|
* spelling: Correct both privilege and separationRoy Marples2020-02-10
| | | | Found by Arfrever.
* Linux: setup mounts in chrootRoy Marples2020-01-21
| | | | | This allows dhcpcd to work. udev sadly requires /run/udev as well, so heh ho.
* ioctl: The POSIX signature differs from BSD and glibcRoy Marples2020-01-08
| | | | | | | | | | BSD and glibc have the signature for request as unsigned long. musl and Solaris have a signed int. As such, we need to detect this at compile time and adjust the signature of our internal ioctl functions to match. To keep the onwire format the same, memcpy the request to the unsigned long request and back again, thus preserving the signedness.
* privsep: Support the generic _dhcp entry on DragonFlyRoy Marples2019-12-18
| | | | No need to create a specific _dhcpcd user in this instance.
* privsep: Allow priviledge separation user to be specified by configureRoy Marples2019-12-02
|
* privsep: Enable privsep by defaultRoy Marples2019-12-01
| | | | Except on Solaris where it's not expected to work.
* privsep: Add support for priviledge separationRoy Marples2019-11-28
| | | | | | | | | | | | | | | | | | | | | | | | Not enabled by default - enable with ./configure --enable-privsep Requires a user added to the system - default _dhcpcd Several processes will be spawned off the main state engine: a privileged actioneer and a generic network proxy. Only the privileged actioneer process will retain root permissions. When required, the privileged actioneer will also spawn BPF listeners for BOOTP (DHCP) and ARP. The BOOTP BPF listener should be a short lived process. On kernels with RFC 5227 support, the ARP BPF listener will only be used for ARPing and announcing a preferred address and will also be a short lived process. When not running in master mode, an address listener will be spawned for each address (with the exception of RA dervived addresses) dhcpcd cares about. TODO: * Solaris support. * ARP BPF address filtering.
* build: Add -Wundef to debugging CFLAGSRoy Marples2019-11-28
|
* build: Move rundir from /var/run to /var/run/dhcpcdRoy Marples2019-11-28
| | | | | | | This will allow dhcpcd to create and unlink pidfiles and sockets which it could otherwise not if dropped priviledges. Downstream packages such as dhcpcd-ui will need to be adjusted.
* build: Improve detection of dlopen(3) in libdlRoy Marples2019-11-05
|
* and more prettyRoy Marples2019-11-04
|
* build: make prior output more prettyRoy Marples2019-11-04
|
* build: Check compiler actually supports address sanitisation.Roy Marples2019-11-04
|
* build: Enforce address sanitisaton when debugging.Roy Marples2019-11-03
|
* Added documentation for undocumented optionMax Coplan2019-10-16
| | | The dbdir option is used to specify the location of the DHCPd database. The default /var/db is not FHS compliant so some may wish to change this to
* FreeBSD: Fix test for setproctitleRoy Marples2019-10-16
|
* compat: Add setproctitle from LXCRoy Marples2019-10-14
|