From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 588F7198CB; Fri, 28 Nov 2025 22:31:14 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id B75EB197F6; Fri, 28 Nov 2025 22:31:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_PASS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 Received: from mail.cyberchaos.dev (mail.cyberchaos.dev [195.39.247.168]) by atuin.qyliss.net (Postfix) with ESMTPS id 0ABE8197CD for ; Fri, 28 Nov 2025 22:30:54 +0000 (UTC) From: Yureka Lilian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberchaos.dev; s=mail; t=1764369052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=49UPOZ6pvFwJhoYvXsp3aV2gm6NzfIJr2G61bZEatmI=; b=1CwTsRKXhtaTYL/19becL67KjjKBX/2LwWaQ0RlhMVH4v7ukUk01Qo6+tgtM7Y1N/BTMKe wFzRgMuTTN0ulRv5wmLUO0I+SgrfALXGF9X4AFo2lGeRBLYY7cyAd7FejR2N4VJ1let7xR 5aXy5X/pzUg6QWIwzGcqZDLl7JHCZxw= To: devel@spectrum-os.org Subject: [PATCH v2 7/7] checks/integration: Adapt networking test for ipv6 Date: Fri, 28 Nov 2025 23:30:29 +0100 Message-ID: <20251128223038.97536-8-yureka@cyberchaos.dev> In-Reply-To: <20251128223038.97536-1-yureka@cyberchaos.dev> References: <20251128223038.97536-1-yureka@cyberchaos.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: I3UCFCJMZTMKDWM5RFWMAAR32UKDK2ZA X-Message-ID-Hash: I3UCFCJMZTMKDWM5RFWMAAR32UKDK2ZA X-MailFrom: yureka@cyberchaos.dev X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Yureka Lilian X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Signed-off-by: Yureka Lilian --- release/checks/integration/default.nix | 2 +- release/checks/integration/networking.c | 32 +++++++++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/release/checks/integration/default.nix b/release/checks/integration/default.nix index 30d047b..944aeff 100644 --- a/release/checks/integration/default.nix +++ b/release/checks/integration/default.nix @@ -20,7 +20,7 @@ let type = "nix"; run = writeShellScript "run" '' set -x - while :; do echo hello | ${libressl.nc}/bin/nc -Nw 2 10.0.2.2 1234; done + while :; do echo hello | ${libressl.nc}/bin/nc -Nw 2 -6 fd00::2 1234; done ''; }; diff --git a/release/checks/integration/networking.c b/release/checks/integration/networking.c index 97d7895..6600385 100644 --- a/release/checks/integration/networking.c +++ b/release/checks/integration/networking.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: EUPL-1.2+ // SPDX-FileCopyrightText: 2025 Alyssa Ross +// SPDX-FileCopyrightText: 2025 Yureka Lilian #include "lib.h" @@ -12,21 +13,23 @@ #include #include +#include static int setup_server(void) { int fd; struct ifreq ifr; + struct in6_ifreq ifr6; - struct sockaddr_in addr = { - .sin_family = AF_INET, - .sin_port = htons(1234), - .sin_addr = { .s_addr = htonl(INADDR_LOOPBACK) }, + struct sockaddr_in6 addr = { + .sin6_family = AF_INET6, + .sin6_port = htons(1234), + .sin6_addr = { .s6_addr = { 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 } }, }; sprintf(ifr.ifr_name, "lo"); - if ((fd = socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, 0)) == -1) { + if ((fd = socket(AF_INET6, SOCK_STREAM|SOCK_CLOEXEC, 0)) == -1) { perror("socket"); exit(EXIT_FAILURE); } @@ -42,11 +45,26 @@ static int setup_server(void) exit(EXIT_FAILURE); } - if (bind(fd, &addr, sizeof addr) == -1) { - perror("bind"); + ifr6.ifr6_ifindex = 1; + ifr6.ifr6_addr = addr.sin6_addr; + ifr6.ifr6_prefixlen = 128; + if (ioctl(fd, SIOCSIFADDR, &ifr6) == -1) { + perror("SIOCSIFADDR"); + exit(EXIT_FAILURE); + } + + if ((fd = socket(AF_INET6, SOCK_STREAM|SOCK_CLOEXEC, 0)) == -1) { + perror("socket"); exit(EXIT_FAILURE); } + int tries = 0; + while (bind(fd, &addr, sizeof addr) == -1) { + perror("bind"); + if (tries++ >= 5) + exit(EXIT_FAILURE); + } + if (listen(fd, 1) == -1) { perror("listen"); exit(EXIT_FAILURE); -- 2.51.2