NetworkManager/src/n-dhcp4
Thomas Haller 65cfece4c5
n-dhcp4: fix internal state after declining lease
Previously, during decline we would clear probe->current_lease,
however leave the state at GRANTED.

That is a wrong state, and can easily lead to a crash later.

For example, on the next timeout we will end up at
n_dhcp4_client_dispatch_timer(), then current-lease gets
accessed unconditionally:

            case N_DHCP4_CLIENT_PROBE_STATE_GRANTED:
                    if (ns_now >= probe->current_lease->lifetime) {

Instead, return to INIT state and schedule a timer. As suggested
by RFC 2131, section 3.1, 5) ([1]).

[1] https://datatracker.ietf.org/doc/html/rfc2131#section-3.1
2022-05-31 18:32:35 +02:00
..
.github/workflows build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
src n-dhcp4: fix internal state after declining lease 2022-05-31 18:32:35 +02:00
subprojects build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
.editorconfig build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
.gitmodules build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
AUTHORS build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
meson.build build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
NEWS.md build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00
README.md build: move c-util/nettools library from "shared/" to "src/" 2021-02-24 12:48:28 +01:00

n-dhcp4

Dynamic Host Configuration Protocol for IPv4

The n-dhcp4 project implements the IPv4 Dynamic Host Configuration Protocol as defined in RFC-2132+.

Project

Requirements

The requirements for this project are:

  • Linux kernel >= 3.19
  • libc (e.g., glibc >= 2.16)

At build-time, the following software is required:

  • meson >= 0.41
  • pkg-config >= 0.29

Build

The meson build-system is used for this project. Contact upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:

mkdir build
cd build
meson setup ..
ninja
meson test
ninja install

No custom configuration options are available.

Repository:

License:

  • Apache-2.0 OR LGPL-2.1-or-later
  • See AUTHORS file for details.