From patchwork Wed Apr 10 01:16:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Donald X-Patchwork-Id: 1921648 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=if2T8xgk; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=G+5yohCo; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VDlS04NTYz1yYM for ; Wed, 10 Apr 2024 11:22:24 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=kqhBMM4mfhpW0ZRxj+dPfc7jkqxV9ueZtxUYaoSMPbE=; b=if2T8xgkzY1Izh fCwF0h1japXTuTOjBuLu/Go1HJ28T+tK19olNirvtenm8+CUHhaz/Ossj5ssVjYDH7WDEWyeQ65VX a8WxJMKJLm/7ZV0bP4xyOtqhfF4AWDD2LdAL/7mkCpPRpxkM7YKlYELZ6CJuorPCectMvABL1osdG 4vJySVlGDhDCdh5YBEhQoQtwia91solpEhla14da3c5X046Si4pDKmU6CRjhrKhyjJBvyN4nV+zEv Eb5iaqgXGXKTYxEn5Ri4Hv6c8SnEtYt4koAvOxVhoslid/c7qwA8hD2D8py64+/ljLgosFh6+gUNF Nu9S/cE1kEuU9XYjJ3sg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruMe5-00000004ZUS-1A2U; Wed, 10 Apr 2024 01:21:01 +0000 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruMe0-00000004ZRI-3E82 for openwrt-devel@lists.openwrt.org; Wed, 10 Apr 2024 01:20:58 +0000 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-516d3a470d5so5896725e87.3 for ; Tue, 09 Apr 2024 18:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712712054; x=1713316854; darn=lists.openwrt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=bwJFhE1t3OAxTfbskBWhJw0i+PKAD7k+M+wwaX8RCCg=; b=G+5yohCoDAXNTgbeO4jhn3s0hOFqU7vw4J4O5kemJLbL2hUt01zFYqVtykZVcct9dw KTjGHEouKzKlxK5H3OYxSa9lTXN+aWIRvlkbHkIGYjOdvuPbABj3sIa/sHHSrm7jQ5eg aihBu+/TFKWpgDluY7TUjHmf/UOOsj/yxVujTp9gq32wqI3jqWhkp/ciZ/xXZG4uT69A FF7UM4NACVc4OF1qTbG4FkG6XNbEYPPd/6D3cDme4vm1ztZaigxCY+IMN2jTUkQbMUlz eLliXmCbN4SROwKQy8lqTr4fN+G6Tsz9D9Jts8nxireIOfdO5Vp6PKumVgpK/GfMdVbU mt8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712712054; x=1713316854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bwJFhE1t3OAxTfbskBWhJw0i+PKAD7k+M+wwaX8RCCg=; b=ga0MT1L6hTDpzM+nLmrWvxQnqsee15iR18VcQDaH3QxXfEzFNvEZbeknF5522hue1t ZIOQogrHGY5qdtW4oDU6JQyE2OAlIhg1wPiTY6IaURb5v5wFkmJwGn+dUOzLu8M1bXbO /73EH80wfoehRPG9LNl1XUkHjhcFFw8M5CQsygTqlfF/nTjQOWAdUl3FnKHlB0wkW75I yq1/2Vn17ZGmDkgo3yaos7lm8RUqaASfMYLflmeSFx63jrp0UlG1INISl7InX7JqeDcs 3KMYZa7LpbiKHH2CF6ajZxe7kAK0Pse6nYsWc9UmusS1/WDNVkJT1Kq5lHpPpUt/69xR ZURA== X-Gm-Message-State: AOJu0YzjQgpwGZzzsPf4f13hZekjOkOJaBrP6t//xWIfwe9YHaeXfYp6 0p5ZX9TnPyQf5EMglqoDGnAvtzjrzh2iVga8oDXHhkJ/S5Da24F8frLp39QTq2c= X-Google-Smtp-Source: AGHT+IFjosCW0/9Rt1PPt1jRaGsMYv2gh19uZq2oAYvLRxI/K3Kzhe8CHr3g82vJyFKNHPAqj+Zz8w== X-Received: by 2002:ac2:5389:0:b0:513:cdff:d765 with SMTP id g9-20020ac25389000000b00513cdffd765mr861474lfh.59.1712712053581; Tue, 09 Apr 2024 18:20:53 -0700 (PDT) Received: from blackhol3 ([2001:9b0:40::cae3:cb03]) by smtp.gmail.com with ESMTPSA id f17-20020a193811000000b00516ae2b8c98sm1725037lfa.159.2024.04.09.18.20.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Apr 2024 18:20:53 -0700 (PDT) From: Paul Donald To: OpenWrt Development List Subject: [RFC PATCH 1/1] config: use network interface 'dns_search' and dhcp 'domain' Date: Wed, 10 Apr 2024 03:16:26 +0200 Message-ID: <20240410012052.4025-2-newtwen+github@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240410012052.4025-1-newtwen+github@gmail.com> References: <20240410012052.4025-1-newtwen+github@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240409_182056_841155_5A57F26D X-CRM114-Status: GOOD ( 15.08 ) X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Paul Donald Now DNSSL Option 31 inherit the search list from an 'interface' also. ( A behaviour described in LuCI, but did not seem to exist before ). ICMPv6 Option (DNS Search List Option lan lalala) Type: DNS Search List Option (31) Length: 4 (32 bytes) Reserved Lifetime: 1800 (30 minutes) Domain Names: lan Domain Names: lalala Padding Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:12a listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [newtwen+github(at)gmail.com] X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org From: Paul Donald Now DNSSL Option 31 inherit the search list from an 'interface' also. ( A behaviour described in LuCI, but did not seem to exist before ). ICMPv6 Option (DNS Search List Option lan lalala) Type: DNS Search List Option (31) Length: 4 (32 bytes) Reserved Lifetime: 1800 (30 minutes) Domain Names: lan Domain Names: lalala Padding For network config: config interface 'lan' ... list dns_search 'lalala' And dhcp config: config dhcp 'lan' ... list domain 'lan' Signed-off-by: Paul Donald --- src/config.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 1cd4608..1b76cf6 100644 --- a/src/config.c +++ b/src/config.c @@ -59,6 +59,7 @@ enum { IFACE_ATTR_NDP, IFACE_ATTR_ROUTER, IFACE_ATTR_DNS, + IFACE_ATTR_DNS_SEARCH, IFACE_ATTR_DNS_SERVICE, IFACE_ATTR_DOMAIN, IFACE_ATTR_FILTER_CLASS, @@ -112,6 +113,7 @@ static const struct blobmsg_policy iface_attrs[IFACE_ATTR_MAX] = { [IFACE_ATTR_NDP] = { .name = "ndp", .type = BLOBMSG_TYPE_STRING }, [IFACE_ATTR_ROUTER] = { .name = "router", .type = BLOBMSG_TYPE_ARRAY }, [IFACE_ATTR_DNS] = { .name = "dns", .type = BLOBMSG_TYPE_ARRAY }, + [IFACE_ATTR_DNS_SEARCH] = { .name = "dns_search", .type = BLOBMSG_TYPE_ARRAY }, [IFACE_ATTR_DNS_SERVICE] = { .name = "dns_service", .type = BLOBMSG_TYPE_BOOL }, [IFACE_ATTR_DOMAIN] = { .name = "domain", .type = BLOBMSG_TYPE_ARRAY }, [IFACE_ATTR_FILTER_CLASS] = { .name = "filter_class", .type = BLOBMSG_TYPE_STRING }, @@ -810,7 +812,7 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if ((c = tb[IFACE_ATTR_DNS_SERVICE])) iface->dns_service = blobmsg_get_bool(c); - if ((c = tb[IFACE_ATTR_DOMAIN])) { + if ((c = tb[IFACE_ATTR_DOMAIN]) || (c = tb[IFACE_ATTR_DNS_SEARCH])) { struct blob_attr *cur; unsigned rem; @@ -829,10 +831,17 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if (domainlen > 0 && domain[domainlen - 1] == '.') domain[domainlen - 1] = 0; + syslog(LOG_DEBUG, "Found %s", (c = tb[IFACE_ATTR_DOMAIN]) ? + iface_attrs[IFACE_ATTR_DOMAIN].name : + iface_attrs[IFACE_ATTR_DNS_SEARCH].name); + syslog(LOG_DEBUG, "domain %s; length %d ", domain, domainlen); + len = dn_comp(domain, buf, sizeof(buf), NULL, NULL); if (len <= 0) { syslog(LOG_ERR, "Invalid %s value configured for interface '%s'", - iface_attrs[IFACE_ATTR_DOMAIN].name, iface->name); + (c = tb[IFACE_ATTR_DOMAIN]) ? + iface_attrs[IFACE_ATTR_DOMAIN].name : + iface_attrs[IFACE_ATTR_DNS_SEARCH].name, iface->name); continue; } @@ -1317,6 +1326,19 @@ void odhcpd_reload(void) } } + struct uci_package *network = NULL; + if (!uci_load(uci, "network", &network)) { + struct uci_element *e; + + /* 4. Interface settings */ + uci_foreach_element(&network->sections, e) { + struct uci_section* s = uci_to_section(e); + if (!strcmp(s->type, "interface")){ + set_interface(s); + } + } + } + if (config.dhcp_statefile) { char *path = strdup(config.dhcp_statefile);