From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 10 13:59:16 2020 Received: (at submit) by debbugs.gnu.org; 10 Apr 2020 17:59:16 +0000 Received: from localhost ([127.0.0.1]:56018 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jMxvw-0007CR-4j for submit@debbugs.gnu.org; Fri, 10 Apr 2020 13:59:16 -0400 Received: from lists.gnu.org ([209.51.188.17]:38153) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jMxvu-0007CK-Vn for submit@debbugs.gnu.org; Fri, 10 Apr 2020 13:59:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51636) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jMxvt-00033P-JP for guix-patches@gnu.org; Fri, 10 Apr 2020 13:59:14 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,SPOOFED_FREEMAIL,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jMxvr-0006U4-E6 for guix-patches@gnu.org; Fri, 10 Apr 2020 13:59:13 -0400 Received: from mout.gmx.net ([212.227.15.18]:55927) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jMxvq-0006Rv-My for guix-patches@gnu.org; Fri, 10 Apr 2020 13:59:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1586541548; bh=i2Ve2mw8/nH1R0U4knPmElZqJs+KeMyLuQJpcCrP+T8=; h=X-UI-Sender-Class:From:To:Subject:Date; b=CW0tpHyiN5bceNbBUv0Y2HNXKEXcVtIAH1c56ScyXPnD9z4KmXdfCfsvfKD6xSBRc pRSR+YGV9MiQpAwzWbq6dal0dG+6tRbQvO572U8J1FUNdpAMonc2MT6/iO1BzYJCQ/ z5932MJf3Q2XR3YzO07NTgAiU0vcqtgHbw6FJ2GY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from vino ([92.95.5.39]) by mail.gmx.com (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MIdeR-1jSgxS42Lt-00Ee0y for ; Fri, 10 Apr 2020 19:59:08 +0200 From: Pierre Langlois To: guix-patches@gnu.org Subject: [PATCH] services: dnsmasq: Support the --address flag. Date: Fri, 10 Apr 2020 18:59:06 +0100 Message-ID: <87wo6np6hh.fsf@gmx.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:YHAGfeWSjXKe6FBwKsUjvKD37NdO1zt9J55OC/4tcwt2t+Ke/S6 74Ad7LQX2nkl/q3+N5NrTAxoj/qwb69un4SI4O+6hY6dqR2DkyJRvzW9C8ea2/J8eD0zB6V OI6PEyCULg9WJAlhFaTRXKjroMqnIeBJCCRvdCd22NIGtPVgebHbnqU+LQyGCTOPOS/fcIr 53V9675YC1r8lW+L72fZw== X-UI-Out-Filterresults: notjunk:1;V03:K0:2mQSepzc+7w=:Lu+KWrC/QOUaYQGOdH5R2u K7w5OYqkdl2m4j8GBO+3p6QVm6iAv4Mb/J+7rXis/NK0MWnluy+hdq9IoEyJ1yjB4HzjQZWw/ 4pi5z4IstLFdWkiss0eW1/wz859oK4xAr5AIpG4069b+/OGOPZgauuUxA2N6pIcKTdRsMqfCh xPuhImU0DWtYNNlEMb1hMmW4YJm4BVr7Xg5Mz8eRtftdkU4R6sEYg1csyI7w2EKYZrNcdExYt jquZsy3IOi1K/8l69/wEe/jDqpyCQ0jAMtu3w+v1SgL8zd45LqouzgFaKhNR20tluZgXkpKUb 0jGWyfMaM+C9ZQlbPKYn2XOcxvp9uZ8mlkGDCll4kktwiMIZxl9wzX44nCylDcNzuLc6TMMF2 g8dhnghTqFwREuoxKT5/1eRnPFKLa3gMb9BI0RP0JUH9kHBjjJXfuP6rdsZs5qCzhM07wkruX lRMjIYxtXHPzxFRJVPpo7Ds6OKklL+njCkf3cyFE91w3e5+l+HI7pboZoDEWztlSk4vfkMHw9 vzvB8hgh4AI1XwLPjz9S0fisayox0/GGl8RlW/6gM0mSUMKVoQOGD7EbtErFh0peO6efMyRoS WFAkkM6AiTm06wWviiAnnei029LLPPhE01ygJLjkFMjBb8OZuLbidmkQj/IAQwdEeDSniSEic RN9kV102IMAmv0Rl6LffdINF9cwSllDhq+3HkDDsqC62jHNLW/A7I8Bh1MdVeWmrEXBy1hfZM NJXlZZTAojeQmLcfItqEHwjrOMY1jM82mpBVWTpQEAhLPuecvIW0nieZwYPMED9iMkOUIuAi3 0JZmugIdFJjrba7SNE6Y/c4pO5AXu/jhy0V+FQz1ZBeFHBOO5GwTtl3hy6oOk/rjCiI7qLjQu VL8hw8Ydj+zEhZbVIV6B9kId66PUTH6p7Dem7l25h0v7dBsNY3FPzPFLcaMQu3C7jRk9J6yQA XDUIE7fRQVGHAwUHOetRNvg/pu1pLeSRbLWYgOOBBvUeopIJYXifkFTpR9VE5DXAfUp55ck+e eu3Uzw3QOH5UGt7NRKfIjcQnUXJxQxF9uJzZc00I6jYhNx7u1M8oY8sHF0jcRUvwT5QXOMp8s dERMrFA4UfeGYMyGwUe2DUHZaG4NeHyvcgh54n+3w0+oaXIV7enQgLTNqe0vbSTpG3aAddwMa VnTYJn4y30/3jVBKHRpA9WlT15S0hSjB6t/jGkQdzo3HE8rz8FiKskWkdSswzahXEga01BJR0 1hGvGqirh3bOS/L7r X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.18 X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.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: Hello Guix! Here's a patch that allows passing the --address flag multiple times to dnsmasq. WDYT? Thanks, Pierre Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: gmx.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [209.51.188.17 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.9 SPF_FAIL SPF: sender does not match SPF record (fail) [SPF failed: Please see http://www.openspf.org/Why?s=mfrom; id=pierre.langlois%40gmx.com; ip=209.51.188.17; r=debbugs.gnu.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (pierre.langlois[at]gmx.com) 2.0 SPOOFED_FREEMAIL No description available. X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) --=-=-= Content-Type: text/plain Hello Guix! Here's a patch that allows passing the --address flag multiple times to dnsmasq. WDYT? Thanks, Pierre --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-services-dnsmasq-Support-the-address-flag.patch Content-Transfer-Encoding: quoted-printable From 407265e5d9b0f863a8b14d74f6240ed102f9a907 Mon Sep 17 00:00:00 2001 From: Pierre Langlois Date: Fri, 10 Apr 2020 17:00:47 +0100 Subject: [PATCH] services: dnsmasq: Support the --address flag. Introduce a new `addresses' field that translates to passing `--address=3D' multiple times to dnsmasq. * gnu/services/dns.scm (): Add an addresses field. (dnsmasq-shepherd-service): Match the addresses field and translate it to multiple '--address=3D' flags. * doc/guix.texi (DNS Services): Document it. --- doc/guix.texi | 20 ++++++++++++++++++++ gnu/services/dns.scm | 7 ++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 891e2693f6..7ca4bd6ef3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -77,6 +77,7 @@ Copyright @copyright{} 2020 Jakub K=C4=85dzio=C5=82ka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 Brice Waegeneire@* +Copyright @copyright{} 2020 Pierre Langlois@* =20 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -21772,6 +21773,25 @@ When true, don't read @var{resolv-file}. @item @code{servers} (default: @code{'()}) Specify IP address of upstream servers directly. =20 +@item @code{addresses} (default: @code{'()}) +For each entry, specify an IP address to return for any host in the +given domains. Queries in the domains are never forwarded and always +replied to with the specified IP address. + +This is useful for redirecting hosts locally, for example: + +@lisp +(service dnsmasq-service-type + (dnsmasq-configuration + (addresses + '(; Redirect to a local web-server. + "/example.org/127.0.0.1" + ; Redirect subdomain to a specific IP. + "/subdomain.example.org/192.168.1.42")))) +@end lisp + +Note that rules in @file{/etc/hosts} take precedence over this. + @item @code{cache-size} (default: @code{150}) Set the size of dnsmasq's cache. Setting the cache size to zero disables caching. diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm index a07946d085..478c837d13 100644 --- a/gnu/services/dns.scm +++ b/gnu/services/dns.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2017 Julien Lepiller ;;; Copyright =C2=A9 2018 Oleg Pykhalov +;;; Copyright =C2=A9 2020 Pierre Langlois ;;; ;;; This file is part of GNU Guix. ;;; @@ -748,6 +749,8 @@ cache.size =3D 100 * MB (default #f)) ;boolean (servers dnsmasq-configuration-servers (default '())) ;list of string + (addresses dnsmasq-configuration-addresses + (default '())) ;list of string (cache-size dnsmasq-configuration-cache-size (default 150)) ;integer (negative-cache? dnsmasq-configuration-negative-cache? @@ -759,7 +762,7 @@ cache.size =3D 100 * MB no-hosts? port local-service? listen-addresses resolv-file no-resolv? servers - cache-size negative-cache?) + addresses cache-size negative-cache?) (shepherd-service (provision '(dnsmasq)) (requirement '(networking)) @@ -783,6 +786,8 @@ cache.size =3D 100 * MB '()) #$@(map (cut format #f "--server=3D~a" <>) servers) + #$@(map (cut format #f "--address=3D~a" <>) + addresses) #$(format #f "--cache-size=3D~a" cache-size) #$@(if negative-cache? '() --=20 2.26.0 --=-=-=--