From 76ae87e222e2963ef434ff4a31c53512c5998a83 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 22 May 2026 07:34:37 +0900 Subject: [PATCH] dhcp: introduce dhcp-forward.h Then, rework header inclusions for DHCP related files. --- .../dhcp-client-id-internal.h | 6 ++--- src/libsystemd-network/dhcp-client-internal.h | 4 +-- src/libsystemd-network/dhcp-client-send.h | 2 +- src/libsystemd-network/dhcp-duid-internal.h | 3 +-- src/libsystemd-network/dhcp-forward.h | 26 +++++++++++++++++++ src/libsystemd-network/dhcp-lease-internal.h | 6 +++-- src/libsystemd-network/dhcp-message-dump.c | 2 +- src/libsystemd-network/dhcp-message-dump.h | 2 +- src/libsystemd-network/dhcp-message.c | 1 - src/libsystemd-network/dhcp-message.h | 4 +-- src/libsystemd-network/dhcp-protocol.h | 3 +-- .../dhcp-relay-downstream.c | 1 - src/libsystemd-network/dhcp-relay-internal.h | 8 +++--- src/libsystemd-network/dhcp-relay-upstream.c | 1 - src/libsystemd-network/dhcp-route.c | 2 +- src/libsystemd-network/dhcp-route.h | 4 +-- src/libsystemd-network/dhcp-server-internal.h | 6 ++--- .../dhcp-server-lease-internal.h | 4 +-- src/libsystemd-network/dhcp-server-request.h | 6 +---- src/libsystemd-network/dhcp-server-send.c | 1 + src/libsystemd-network/dhcp-server-send.h | 4 +-- src/libsystemd-network/sd-dhcp-client.c | 1 + src/libsystemd-network/sd-dhcp-lease.c | 2 +- src/libsystemd-network/sd-dhcp-relay.c | 1 + src/libsystemd-network/sd-dhcp-server-lease.c | 2 ++ src/libsystemd-network/test-dhcp-client.c | 2 +- src/libsystemd-network/test-dhcp-message.c | 1 - src/libsystemd-network/test-dhcp-relay.c | 4 +-- src/libsystemd/sd-common/sd-forward.h | 6 ----- src/network/networkd-dhcp-server-bus.c | 1 + src/network/networkd-forward.h | 1 + src/network/networkd-json.c | 1 + 32 files changed, 64 insertions(+), 54 deletions(-) create mode 100644 src/libsystemd-network/dhcp-forward.h diff --git a/src/libsystemd-network/dhcp-client-id-internal.h b/src/libsystemd-network/dhcp-client-id-internal.h index 8efc007a3d4..47cc3cf8040 100644 --- a/src/libsystemd-network/dhcp-client-id-internal.h +++ b/src/libsystemd-network/dhcp-client-id-internal.h @@ -1,13 +1,11 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include - #include "sd-dhcp-client-id.h" #include "dhcp-duid-internal.h" -#include "sd-forward.h" -#include "sparse-endian.h" +#include "dhcp-forward.h" +#include "ether-addr-util.h" /* RFC 2132 section 9.14: its minimum length is 2. * Note, its maximum is not mentioend in the RFC. Hence, 255. */ diff --git a/src/libsystemd-network/dhcp-client-internal.h b/src/libsystemd-network/dhcp-client-internal.h index 4adaeeec220..53f42878683 100644 --- a/src/libsystemd-network/dhcp-client-internal.h +++ b/src/libsystemd-network/dhcp-client-internal.h @@ -4,13 +4,11 @@ #include "sd-dhcp-client.h" #include "dhcp-client-id-internal.h" +#include "dhcp-forward.h" #include "dhcp-protocol.h" #include "ether-addr-util.h" #include "iovec-wrapper.h" #include "network-common.h" -#include "sd-forward.h" -#include "socket-util.h" -#include "tlv-util.h" struct sd_dhcp_client { unsigned n_ref; diff --git a/src/libsystemd-network/dhcp-client-send.h b/src/libsystemd-network/dhcp-client-send.h index d5d65a31cce..758b9877278 100644 --- a/src/libsystemd-network/dhcp-client-send.h +++ b/src/libsystemd-network/dhcp-client-send.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "sd-forward.h" +#include "dhcp-forward.h" int dhcp_client_send_message(sd_dhcp_client *client, uint8_t type); diff --git a/src/libsystemd-network/dhcp-duid-internal.h b/src/libsystemd-network/dhcp-duid-internal.h index eca98892791..bcb46c4f355 100644 --- a/src/libsystemd-network/dhcp-duid-internal.h +++ b/src/libsystemd-network/dhcp-duid-internal.h @@ -4,9 +4,8 @@ #include "sd-dhcp-duid.h" #include "sd-id128.h" +#include "dhcp-forward.h" #include "ether-addr-util.h" -#include "sd-forward.h" -#include "sparse-endian.h" #define SYSTEMD_PEN 43793 diff --git a/src/libsystemd-network/dhcp-forward.h b/src/libsystemd-network/dhcp-forward.h new file mode 100644 index 00000000000..f83c58a3af9 --- /dev/null +++ b/src/libsystemd-network/dhcp-forward.h @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +#include "sd-forward.h" +#include "sparse-endian.h" + +struct in_pktinfo; +struct iphdr; +struct udphdr; + +typedef struct sd_dhcp_client sd_dhcp_client; +typedef struct sd_dhcp_client_id sd_dhcp_client_id; +typedef struct sd_dhcp_duid sd_dhcp_duid; +typedef struct sd_dhcp_lease sd_dhcp_lease; +typedef struct sd_dhcp_message sd_dhcp_message; +typedef struct sd_dhcp_relay sd_dhcp_relay; +typedef struct sd_dhcp_relay_interface sd_dhcp_relay_interface; +typedef struct sd_dhcp_route sd_dhcp_route; +typedef struct sd_dhcp_server sd_dhcp_server; +typedef struct sd_dhcp_server_lease sd_dhcp_server_lease; + +typedef struct DHCPMessageHeader DHCPMessageHeader; +typedef struct DHCPRequest DHCPRequest; +typedef struct DHCPServerData DHCPServerData; + +typedef struct TLV TLV; diff --git a/src/libsystemd-network/dhcp-lease-internal.h b/src/libsystemd-network/dhcp-lease-internal.h index 153ae833b3a..12711a5846a 100644 --- a/src/libsystemd-network/dhcp-lease-internal.h +++ b/src/libsystemd-network/dhcp-lease-internal.h @@ -5,11 +5,13 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ +#include + #include "sd-dhcp-lease.h" -#include "sd-forward.h" -#include "dhcp-client-id-internal.h" +#include "dhcp-forward.h" #include "dhcp-message.h" +#include "time-util.h" struct sd_dhcp_lease { unsigned n_ref; diff --git a/src/libsystemd-network/dhcp-message-dump.c b/src/libsystemd-network/dhcp-message-dump.c index 3c9283351a3..a593c86d451 100644 --- a/src/libsystemd-network/dhcp-message-dump.c +++ b/src/libsystemd-network/dhcp-message-dump.c @@ -3,8 +3,8 @@ #include "alloc-util.h" #include "ansi-color.h" #include "arphrd-util.h" +#include "dhcp-message.h" #include "dhcp-message-dump.h" -#include "dhcp-protocol.h" #include "dhcp-route.h" #include "dns-resolver-internal.h" #include "escape.h" diff --git a/src/libsystemd-network/dhcp-message-dump.h b/src/libsystemd-network/dhcp-message-dump.h index 6ebd5a2c465..34eb261f1bb 100644 --- a/src/libsystemd-network/dhcp-message-dump.h +++ b/src/libsystemd-network/dhcp-message-dump.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "dhcp-message.h" +#include "dhcp-forward.h" typedef enum { DUMP_DHCP_MESSAGE_LEGEND = 1 << 0, diff --git a/src/libsystemd-network/dhcp-message.c b/src/libsystemd-network/dhcp-message.c index 14671a07508..732a52c08b5 100644 --- a/src/libsystemd-network/dhcp-message.c +++ b/src/libsystemd-network/dhcp-message.c @@ -5,7 +5,6 @@ #include "alloc-util.h" #include "dhcp-client-id-internal.h" #include "dhcp-message.h" -#include "dhcp-protocol.h" #include "dhcp-route.h" #include "dns-def.h" #include "dns-domain.h" diff --git a/src/libsystemd-network/dhcp-message.h b/src/libsystemd-network/dhcp-message.h index 752ad814d42..2e3bf7dbac7 100644 --- a/src/libsystemd-network/dhcp-message.h +++ b/src/libsystemd-network/dhcp-message.h @@ -1,9 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "sd-dhcp-client-id.h" -#include "sd-forward.h" - +#include "dhcp-forward.h" #include "dhcp-protocol.h" #include "tlv-util.h" diff --git a/src/libsystemd-network/dhcp-protocol.h b/src/libsystemd-network/dhcp-protocol.h index de84671d0d8..c366cf2202a 100644 --- a/src/libsystemd-network/dhcp-protocol.h +++ b/src/libsystemd-network/dhcp-protocol.h @@ -7,8 +7,7 @@ #include "sd-dhcp-protocol.h" /* IWYU pragma: export */ -#include "sd-forward.h" -#include "sparse-endian.h" +#include "dhcp-forward.h" #include "time-util.h" /* RFC 8925 - IPv6-Only Preferred Option for DHCPv4 3.4. diff --git a/src/libsystemd-network/dhcp-relay-downstream.c b/src/libsystemd-network/dhcp-relay-downstream.c index dd825d02a21..5c3311d979a 100644 --- a/src/libsystemd-network/dhcp-relay-downstream.c +++ b/src/libsystemd-network/dhcp-relay-downstream.c @@ -5,7 +5,6 @@ #include "sd-event.h" #include "dhcp-message.h" -#include "dhcp-protocol.h" #include "dhcp-relay-internal.h" #include "errno-util.h" #include "ether-addr-util.h" diff --git a/src/libsystemd-network/dhcp-relay-internal.h b/src/libsystemd-network/dhcp-relay-internal.h index feb08a606cf..baa6ecab06c 100644 --- a/src/libsystemd-network/dhcp-relay-internal.h +++ b/src/libsystemd-network/dhcp-relay-internal.h @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include +#include + #include "sd-dhcp-relay.h" -#include "dhcp-message.h" -#include "ether-addr-util.h" +#include "dhcp-forward.h" #include "network-common.h" -#include "sd-forward.h" -#include "tlv-util.h" #define DHCP_RELAY_IFINDEX_UNBOUND (-100) diff --git a/src/libsystemd-network/dhcp-relay-upstream.c b/src/libsystemd-network/dhcp-relay-upstream.c index f1b4189153b..fa3dbc02573 100644 --- a/src/libsystemd-network/dhcp-relay-upstream.c +++ b/src/libsystemd-network/dhcp-relay-upstream.c @@ -5,7 +5,6 @@ #include "sd-event.h" #include "dhcp-message.h" -#include "dhcp-protocol.h" #include "dhcp-relay-internal.h" #include "hashmap.h" #include "in-addr-util.h" diff --git a/src/libsystemd-network/dhcp-route.c b/src/libsystemd-network/dhcp-route.c index 33828276ace..6a7f9d7da9a 100644 --- a/src/libsystemd-network/dhcp-route.c +++ b/src/libsystemd-network/dhcp-route.c @@ -2,7 +2,7 @@ #include "sd-dhcp-lease.h" -#include "dhcp-route.h" /* IWYU pragma: keep */ +#include "dhcp-route.h" int sd_dhcp_route_get_destination(sd_dhcp_route *route, struct in_addr *ret) { assert_return(route, -EINVAL); diff --git a/src/libsystemd-network/dhcp-route.h b/src/libsystemd-network/dhcp-route.h index e313c08a586..9d2b0b4a003 100644 --- a/src/libsystemd-network/dhcp-route.h +++ b/src/libsystemd-network/dhcp-route.h @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "sd-forward.h" +#include -#include "in-addr-util.h" /* IWYU pragma: keep */ +#include "dhcp-forward.h" /* IWYU pragma: export */ struct sd_dhcp_route { struct in_addr dst_addr; diff --git a/src/libsystemd-network/dhcp-server-internal.h b/src/libsystemd-network/dhcp-server-internal.h index f55223ba22a..f2d85b6e6c0 100644 --- a/src/libsystemd-network/dhcp-server-internal.h +++ b/src/libsystemd-network/dhcp-server-internal.h @@ -5,13 +5,13 @@ Copyright © 2013 Intel Corporation. All rights reserved. ***/ +#include + #include "sd-dhcp-server.h" +#include "dhcp-forward.h" #include "dhcp-message.h" #include "network-common.h" -#include "sd-forward.h" -#include "sparse-endian.h" -#include "tlv-util.h" typedef struct sd_dhcp_server { unsigned n_ref; diff --git a/src/libsystemd-network/dhcp-server-lease-internal.h b/src/libsystemd-network/dhcp-server-lease-internal.h index f347837bd84..76b92c6339f 100644 --- a/src/libsystemd-network/dhcp-server-lease-internal.h +++ b/src/libsystemd-network/dhcp-server-lease-internal.h @@ -4,10 +4,8 @@ #include "sd-dhcp-server-lease.h" #include "dhcp-client-id-internal.h" -#include "dhcp-server-internal.h" -#include "dhcp-server-request.h" +#include "dhcp-forward.h" #include "ether-addr-util.h" -#include "sd-forward.h" typedef struct sd_dhcp_server_lease { unsigned n_ref; diff --git a/src/libsystemd-network/dhcp-server-request.h b/src/libsystemd-network/dhcp-server-request.h index ea7596d0731..ad77a0250ca 100644 --- a/src/libsystemd-network/dhcp-server-request.h +++ b/src/libsystemd-network/dhcp-server-request.h @@ -1,13 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "sd-dhcp-server-lease.h" - #include "dhcp-client-id-internal.h" -#include "dhcp-message.h" +#include "dhcp-forward.h" #include "ether-addr-util.h" -#include "sd-forward.h" -#include "sparse-endian.h" #include "time-util.h" typedef struct DHCPRequest { diff --git a/src/libsystemd-network/dhcp-server-send.c b/src/libsystemd-network/dhcp-server-send.c index cc0f9d667b0..6e00bafd098 100644 --- a/src/libsystemd-network/dhcp-server-send.c +++ b/src/libsystemd-network/dhcp-server-send.c @@ -4,6 +4,7 @@ #include "dhcp-server-internal.h" #include "dhcp-server-lease-internal.h" +#include "dhcp-server-request.h" #include "dhcp-server-send.h" #include "errno-util.h" #include "fd-util.h" diff --git a/src/libsystemd-network/dhcp-server-send.h b/src/libsystemd-network/dhcp-server-send.h index 2dde23b2c2c..92f63bcc869 100644 --- a/src/libsystemd-network/dhcp-server-send.h +++ b/src/libsystemd-network/dhcp-server-send.h @@ -1,9 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "sd-forward.h" - -#include "dhcp-server-request.h" +#include "dhcp-forward.h" int dhcp_server_send_reply( sd_dhcp_server *server, diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index 5675c7d7875..8154aef00d4 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -26,6 +26,7 @@ #include "socket-util.h" #include "string-util.h" #include "time-util.h" +#include "tlv-util.h" #include "web-util.h" #define MAX_MAC_ADDR_LEN CONST_MAX(INFINIBAND_ALEN, ETH_ALEN) diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index e661ac4fa81..2799275d305 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -10,7 +10,7 @@ #include "alloc-util.h" #include "dhcp-client-internal.h" #include "dhcp-lease-internal.h" -#include "dhcp-route.h" /* IWYU pragma: keep */ +#include "dhcp-route.h" #include "dns-resolver-internal.h" #include "in-addr-util.h" #include "ip-util.h" diff --git a/src/libsystemd-network/sd-dhcp-relay.c b/src/libsystemd-network/sd-dhcp-relay.c index 1442a43fda7..9188fd5958a 100644 --- a/src/libsystemd-network/sd-dhcp-relay.c +++ b/src/libsystemd-network/sd-dhcp-relay.c @@ -9,6 +9,7 @@ #include "in-addr-util.h" #include "iovec-util.h" #include "prioq.h" +#include "tlv-util.h" static sd_dhcp_relay* dhcp_relay_free(sd_dhcp_relay *relay) { if (!relay) diff --git a/src/libsystemd-network/sd-dhcp-server-lease.c b/src/libsystemd-network/sd-dhcp-server-lease.c index ce7d4f93a1c..f170056046e 100644 --- a/src/libsystemd-network/sd-dhcp-server-lease.c +++ b/src/libsystemd-network/sd-dhcp-server-lease.c @@ -6,7 +6,9 @@ #include "sd-event.h" #include "alloc-util.h" +#include "dhcp-server-internal.h" #include "dhcp-server-lease-internal.h" +#include "dhcp-server-request.h" #include "dns-domain.h" #include "errno-util.h" #include "fd-util.h" diff --git a/src/libsystemd-network/test-dhcp-client.c b/src/libsystemd-network/test-dhcp-client.c index 2098470becb..9eeb102b64a 100644 --- a/src/libsystemd-network/test-dhcp-client.c +++ b/src/libsystemd-network/test-dhcp-client.c @@ -14,7 +14,6 @@ #include "dhcp-client-internal.h" #include "dhcp-message.h" -#include "dhcp-protocol.h" #include "ether-addr-util.h" #include "fd-util.h" #include "hashmap.h" @@ -24,6 +23,7 @@ #include "ip-util.h" #include "log.h" #include "set.h" +#include "socket-util.h" #include "strv.h" #include "tests.h" diff --git a/src/libsystemd-network/test-dhcp-message.c b/src/libsystemd-network/test-dhcp-message.c index 69e1201b695..9975a4820a8 100644 --- a/src/libsystemd-network/test-dhcp-message.c +++ b/src/libsystemd-network/test-dhcp-message.c @@ -8,7 +8,6 @@ #include "dhcp-client-id-internal.h" #include "dhcp-message.h" #include "dhcp-message-dump.h" -#include "dhcp-protocol.h" #include "dhcp-route.h" #include "dns-packet.h" #include "dns-resolver-internal.h" diff --git a/src/libsystemd-network/test-dhcp-relay.c b/src/libsystemd-network/test-dhcp-relay.c index dd4e7652d9f..2a7131e59b5 100644 --- a/src/libsystemd-network/test-dhcp-relay.c +++ b/src/libsystemd-network/test-dhcp-relay.c @@ -5,8 +5,8 @@ #include "sd-event.h" -#include "dhcp-protocol.h" -#include "dhcp-relay-internal.h" /* IWYU pragma: keep */ +#include "dhcp-message.h" +#include "dhcp-relay-internal.h" #include "ether-addr-util.h" #include "fd-util.h" #include "hashmap.h" diff --git a/src/libsystemd/sd-common/sd-forward.h b/src/libsystemd/sd-common/sd-forward.h index 0a1d673e140..aca0ed32095 100644 --- a/src/libsystemd/sd-common/sd-forward.h +++ b/src/libsystemd/sd-common/sd-forward.h @@ -76,12 +76,6 @@ typedef enum sd_lldp_multicast_mode_t sd_lldp_multicast_mode_t; typedef enum sd_ndisc_event_t sd_ndisc_event_t; typedef struct sd_ipv4ll sd_ipv4ll; -typedef struct sd_dhcp_client sd_dhcp_client; -typedef struct sd_dhcp_lease sd_dhcp_lease; -typedef struct sd_dhcp_route sd_dhcp_route; -typedef struct sd_dhcp_relay sd_dhcp_relay; -typedef struct sd_dhcp_relay_interface sd_dhcp_relay_interface; -typedef struct sd_dhcp_server sd_dhcp_server; typedef struct sd_dns_resolver sd_dns_resolver; typedef struct sd_ndisc sd_ndisc; typedef struct sd_radv sd_radv; diff --git a/src/network/networkd-dhcp-server-bus.c b/src/network/networkd-dhcp-server-bus.c index d5829b6dfbb..40679c288bf 100644 --- a/src/network/networkd-dhcp-server-bus.c +++ b/src/network/networkd-dhcp-server-bus.c @@ -4,6 +4,7 @@ #include "alloc-util.h" #include "bus-object.h" +#include "dhcp-server-internal.h" #include "dhcp-server-lease-internal.h" #include "hashmap.h" #include "networkd-dhcp-server-bus.h" diff --git a/src/network/networkd-forward.h b/src/network/networkd-forward.h index 95bd46801e3..40e6380b915 100644 --- a/src/network/networkd-forward.h +++ b/src/network/networkd-forward.h @@ -4,6 +4,7 @@ /* IWYU pragma: always_keep */ #include "conf-parser-forward.h" /* IWYU pragma: export */ +#include "dhcp-forward.h" /* IWYU pragma: export */ #include "shared-forward.h" /* IWYU pragma: export */ typedef enum NetDevLocalAddressType NetDevLocalAddressType; diff --git a/src/network/networkd-json.c b/src/network/networkd-json.c index dcf74d4b8b0..137653bd667 100644 --- a/src/network/networkd-json.c +++ b/src/network/networkd-json.c @@ -7,6 +7,7 @@ #include "sd-dhcp6-client.h" #include "dhcp-lease-internal.h" /* IWYU pragma: keep */ +#include "dhcp-server-internal.h" #include "dhcp-server-lease-internal.h" #include "dhcp6-lease-internal.h" #include "extract-word.h" -- 2.47.3