This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree". The branch, next has been updated via e5158aea0a6ea2be4e4da3b3b7b02bf78e13be48 (commit) via c00aeae80ff74313ad4db74595c187556c2812c8 (commit) via 3f877ebd251ac7e804f89adef5daf1a80e582747 (commit) via 4d36732fe23a15cd79ca7dcd8f0ea21975c6a75c (commit) via 15f37d7738ebb756090d30762fbea780ea32bbf8 (commit) via bb91c2f74439495a7fd4a62337dc7f41386fa42a (commit) from ef553dccc8462355389450913d5485e40814f266 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e5158aea0a6ea2be4e4da3b3b7b02bf78e13be48 Author: Michael Tremer Date: Mon May 16 18:02:03 2016 +0100 core103: Ship updated dnsmasq Signed-off-by: Michael Tremer commit c00aeae80ff74313ad4db74595c187556c2812c8 Author: Matthias Fischer Date: Sun May 15 13:29:54 2016 +0200 dnsmasq: Update to 2.76rc2 - Updated to 2.76rc2 and deleted obsolete patch files from 2.76rc1 Signed-off-by: Matthias Fischer Signed-off-by: Michael Tremer commit 3f877ebd251ac7e804f89adef5daf1a80e582747 Author: Matthias Fischer Date: Fri May 13 19:06:10 2016 +0200 dnsmasq: Update to 2.76rc1 - added latest patches (001-002) Update, added latest patches and deleted obsolete patch files. Signed-off-by: Matthias Fischer Signed-off-by: Michael Tremer commit 4d36732fe23a15cd79ca7dcd8f0ea21975c6a75c Author: Matthias Fischer Date: Thu May 5 19:54:42 2016 +0200 dnsmasq: Update to 2.76test13 with latest patches (001-006) Update from 'dnsmasq 2.76test10' to '2.76test13' Includes latest patches (001-006) from upstream. Signed-off-by: Matthias Fischer Signed-off-by: Michael Tremer commit 15f37d7738ebb756090d30762fbea780ea32bbf8 Author: Matthias Fischer Date: Sun May 15 23:19:46 2016 +0200 procps: Update to 3.2.8 For details see: http://procps.sourceforge.net/changelog.html Signed-off-by: Matthias Fischer Signed-off-by: Michael Tremer commit bb91c2f74439495a7fd4a62337dc7f41386fa42a Author: Matthias Fischer Date: Sat May 14 19:17:03 2016 +0200 squid init: small cosmetic fixes - Deleted a few absolutely unneeded tabs. - Inserted/deleted some needed/unnecessary line breaks. Signed-off-by: Matthias Fischer Signed-off-by: Michael Tremer ----------------------------------------------------------------------- Summary of changes: config/rootfiles/common/procps | 2 +- .../{oldcore/96 => core/103}/filelists/dnsmasq | 0 config/rootfiles/core/103/update.sh | 3 +- lfs/dnsmasq | 9 +- lfs/procps | 6 +- src/initscripts/init.d/squid | 18 +- ...q-Add-support-to-read-ISC-DHCP-lease-file.patch | 23 +- ...TL_parameter_to_--host-record_and_--cname.patch | 265 --------------------- .../dnsmasq/002-Add_--dhcp-ttl_option.patch | 117 --------- src/patches/dnsmasq/003-Update_CHANGELOG.patch | 17 -- .../dnsmasq/004-Add_--tftp-mtu_option.patch | 136 ----------- ...ease_length_to_TTL_when_--dhcp-ttl_in_use.patch | 37 --- ...tch => procps-3.2.8-fix_unknown_HZ_value.patch} | 2 +- 13 files changed, 36 insertions(+), 599 deletions(-) copy config/rootfiles/{oldcore/96 => core/103}/filelists/dnsmasq (100%) delete mode 100644 src/patches/dnsmasq/001-Add_TTL_parameter_to_--host-record_and_--cname.patch delete mode 100644 src/patches/dnsmasq/002-Add_--dhcp-ttl_option.patch delete mode 100644 src/patches/dnsmasq/003-Update_CHANGELOG.patch delete mode 100644 src/patches/dnsmasq/004-Add_--tftp-mtu_option.patch delete mode 100644 src/patches/dnsmasq/005-Apply_ceiling_of_lease_length_to_TTL_when_--dhcp-ttl_in_use.patch rename src/patches/{procps-3.2.6-fix_unknown_HZ_value.patch => procps-3.2.8-fix_unknown_HZ_value.patch} (98%) Difference in files: diff --git a/config/rootfiles/common/procps b/config/rootfiles/common/procps index 2863167..1f32be9 100644 --- a/config/rootfiles/common/procps +++ b/config/rootfiles/common/procps @@ -1,6 +1,6 @@ bin/kill bin/ps -lib/libproc-3.2.6.so +lib/libproc-3.2.8.so sbin/sysctl usr/bin/free usr/bin/pgrep diff --git a/config/rootfiles/core/103/filelists/dnsmasq b/config/rootfiles/core/103/filelists/dnsmasq new file mode 120000 index 0000000..d469c74 --- /dev/null +++ b/config/rootfiles/core/103/filelists/dnsmasq @@ -0,0 +1 @@ +../../../common/dnsmasq \ No newline at end of file diff --git a/config/rootfiles/core/103/update.sh b/config/rootfiles/core/103/update.sh index 2c1d0ab..65a85a2 100644 --- a/config/rootfiles/core/103/update.sh +++ b/config/rootfiles/core/103/update.sh @@ -56,9 +56,8 @@ ldconfig # Update Language cache #/usr/local/bin/update-lang-cache -# # Start services -# +/etc/init.d/dnsmasq restart sync # This update need a reboot... diff --git a/lfs/dnsmasq b/lfs/dnsmasq index 84585c1..7d09e6c 100644 --- a/lfs/dnsmasq +++ b/lfs/dnsmasq @@ -24,7 +24,7 @@ include Config -VER = 2.76test10 +VER = 2.76rc2 THISAPP = dnsmasq-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -43,7 +43,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4b51474ed6081b18c61407077f254cf7 +$(DL_FILE)_MD5 = 1d5b834803a44e806f2865877574fe47 install : $(TARGET) @@ -73,11 +73,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/001-Add_TTL_parameter_to_--host-record_and_--cname.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/002-Add_--dhcp-ttl_option.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/003-Update_CHANGELOG.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/004-Add_--tftp-mtu_option.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq/005-Apply_ceiling_of_lease_length_to_TTL_when_--dhcp-ttl_in_use.patch cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch cd $(DIR_APP) && sed -i src/config.h \ diff --git a/lfs/procps b/lfs/procps index ae30f2f..183a95c 100644 --- a/lfs/procps +++ b/lfs/procps @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2016 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 3.2.6 +VER = 3.2.8 THISAPP = procps-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7ce39ea27d7b3da0e8ad74dd41d06783 +$(DL_FILE)_MD5 = 9532714b6846013ca9898984ba4cd7e0 install : $(TARGET) diff --git a/src/initscripts/init.d/squid b/src/initscripts/init.d/squid index c641c7d..abed90a 100644 --- a/src/initscripts/init.d/squid +++ b/src/initscripts/init.d/squid @@ -33,16 +33,16 @@ transparent() { CONN_TYPE=`echo "$LINE" | awk -F, '{ print $5 }'` if [ "$CONN_TYPE" != "net" ]; then continue - fi - iptables -t nat -A SQUID -i $1 -p tcp -d `echo "$LINE" | awk -F, '{ print $13 }'` --dport 80 -j RETURN + fi + iptables -t nat -A SQUID -i $1 -p tcp -d `echo "$LINE" | awk -F, '{ print $13 }'` --dport 80 -j RETURN done < $FILE - + if [ "$RED_TYPE" == "STATIC" ]; then iptables -t nat -A SQUID -i $1 -p tcp -d $RED_NETADDRESS/$RED_NETMASK --dport 80 -j RETURN fi - + iptables -t nat -A SQUID -i $1 -p tcp -d $LOCALIP --dport 80 -j RETURN - + iptables -t nat -A SQUID -i $1 -p tcp --dport 80 -j REDIRECT --to-port "${TRANSPARENT_PORT}" } @@ -57,7 +57,6 @@ case "$1" in exit fi - eval $(/usr/local/bin/readhash /var/ipfire/proxy/advanced/settings) eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) @@ -100,7 +99,7 @@ case "$1" in evaluate_retval # Stop squidGuard, updxlrator, squidclamav - # and redirect_wrappers. + # and redirect_wrappers. killproc /usr/bin/squidGuard >/dev/null & killproc /usr/sbin/updxlrator >/dev/null & killproc /usr/bin/squidclamav >/dev/null & @@ -123,7 +122,7 @@ case "$1" in killproc /usr/sbin/squid >/dev/null # Trash remain pid file from squid. - rm -rf /var/run/squid.pid + rm -rf /var/run/squid.pid fi ;; @@ -141,7 +140,7 @@ case "$1" in statusproc /usr/sbin/squid statusproc /usr/lib/squid/unlinkd ;; - + flush) $0 stop echo > /var/log/cache/swap.state @@ -149,6 +148,7 @@ case "$1" in sleep 1 $0 start ;; + setperms) chown -R nobody.squid /var/updatecache/ ;; diff --git a/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch b/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch index 703e94f..25feb8d 100644 --- a/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch +++ b/src/patches/dnsmasq-Add-support-to-read-ISC-DHCP-lease-file.patch @@ -42,7 +42,7 @@ --- a/src/dnsmasq.c Thu Jul 30 20:59:06 2015 +++ b/src/dnsmasq.c Wed Dec 16 19:38:32 2015 -@@ -1013,6 +1013,11 @@ +@@ -1016,6 +1016,11 @@ poll_resolv(0, daemon->last_resolv != 0, now); daemon->last_resolv = now; @@ -72,7 +72,7 @@ - --- /dev/null Wed Dec 16 19:48:08 2015 +++ b/src/isc.c Wed Dec 16 19:41:35 2015 -@@ -0,0 +1,251 @@ +@@ -0,0 +1,266 @@ +/* dnsmasq is Copyright (c) 2014 John Volpe, Simon Kelley and + Michael Tremer + @@ -94,6 +94,12 @@ + Michael Tremer. +*/ + ++ ++#define _GNU_SOURCE ++ ++#include ++#include ++ +#include "dnsmasq.h" + +#ifdef HAVE_ISC_READER @@ -109,10 +115,18 @@ + +static struct isc_dhcp_lease* dhcp_lease_new(const char* hostname) { + struct isc_dhcp_lease* lease = whine_malloc(sizeof(*lease)); ++ if (!lease) ++ return NULL; + + lease->name = strdup(hostname); + if (daemon->domain_suffix) { -+ asprintf(&lease->fqdn, "%s.%s", hostname, daemon->domain_suffix); ++ int r = asprintf(&lease->fqdn, "%s.%s", hostname, daemon->domain_suffix); ++ ++ // Handle OOM ++ if (r < 0) { ++ free(lease); ++ return NULL; ++ } + } + lease->expires = 0; + lease->next = NULL; @@ -285,6 +299,7 @@ + // and append it to the list. + if (!lease) { + lease = dhcp_lease_new(hostname); ++ assert(lease); + + lease->next = leases; + leases = lease; @@ -326,7 +341,7 @@ +#endif --- a/src/option.c Wed Dec 16 19:24:12 2015 +++ b/src/option.c Wed Dec 16 19:42:48 2015 -@@ -1769,7 +1769,7 @@ +@@ -1770,7 +1770,7 @@ ret_err(_("bad MX target")); break; diff --git a/src/patches/dnsmasq/001-Add_TTL_parameter_to_--host-record_and_--cname.patch b/src/patches/dnsmasq/001-Add_TTL_parameter_to_--host-record_and_--cname.patch deleted file mode 100644 index 86fbc9c..0000000 --- a/src/patches/dnsmasq/001-Add_TTL_parameter_to_--host-record_and_--cname.patch +++ /dev/null @@ -1,265 +0,0 @@ -From df3d54f776a3c9b60735b45c0b7fd88b66a2d5c4 Mon Sep 17 00:00:00 2001 -From: Simon Kelley -Date: Wed, 24 Feb 2016 21:03:38 +0000 -Subject: [PATCH] Add TTL parameter to --host-record and --cname. - ---- - man/dnsmasq.8 | 12 ++++++++++-- - src/cache.c | 7 +++++++ - src/dnsmasq.h | 2 ++ - src/option.c | 46 ++++++++++++++++++++++++++++++++++++++-------- - src/rfc1035.c | 6 +++++- - 5 files changed, 62 insertions(+), 11 deletions(-) - -diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 -index b782eaf..7bc1394 100644 ---- a/man/dnsmasq.8 -+++ b/man/dnsmasq.8 -@@ -529,7 +529,7 @@ zone files: the port, weight and priority numbers are in a different - order. More than one SRV record for a given service/domain is allowed, - all that match are returned. - .TP --.B --host-record=[,....],[],[] -+.B --host-record=[,....],[],[][,] - Add A, AAAA and PTR records to the DNS. This adds one or more names to - the DNS with associated IPv4 (A) and IPv6 (AAAA) records. A name may - appear in more than one -@@ -546,6 +546,10 @@ is in effect. Short and long names may appear in the same - .B host-record, - eg. - .B --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 -+ -+If the time-to-live is given, it overrides the default, which is zero -+or the value of --local-ttl. The value is a positive integer and gives -+the time-to-live in seconds. - .TP - .B \-Y, --txt-record=[[,],] - Return a TXT DNS record. The value of TXT record is a set of strings, -@@ -559,7 +563,7 @@ Return a PTR DNS record. - .B --naptr-record=,,,,,[,] - Return an NAPTR DNS record, as specified in RFC3403. - .TP --.B --cname=, -+.B --cname=,[,] - Return a CNAME record which indicates that is really - . There are significant limitations on the target; it must be a - DNS name which is known to dnsmasq from /etc/hosts (or additional -@@ -568,6 +572,10 @@ hosts files), from DHCP, from --interface-name or from another - If the target does not satisfy this - criteria, the whole cname is ignored. The cname must be unique, but it - is permissable to have more than one cname pointing to the same target. -+ -+If the time-to-live is given, it overrides the default, which is zero -+or the value of -local-ttl. The value is a positive integer and gives -+the time-to-live in seconds. - .TP - .B --dns-rr=,,[] - Return an arbitrary DNS Resource Record. The number is the type of the -diff --git a/src/cache.c b/src/cache.c -index a9eaa65..4ecd535 100644 ---- a/src/cache.c -+++ b/src/cache.c -@@ -778,6 +778,7 @@ static void add_hosts_cname(struct crec *target) - (crec = whine_malloc(sizeof(struct crec)))) - { - crec->flags = F_FORWARD | F_IMMORTAL | F_NAMEP | F_CONFIG | F_CNAME; -+ crec->ttd = a->ttl; - crec->name.namep = a->alias; - crec->addr.cname.target.cache = target; - crec->addr.cname.uid = target->uid; -@@ -981,6 +982,7 @@ int read_hostsfile(char *filename, unsigned int index, int cache_size, struct cr - strcat(cache->name.sname, "."); - strcat(cache->name.sname, domain_suffix); - cache->flags = flags; -+ cache->ttd = daemon->local_ttl; - add_hosts_entry(cache, &addr, addrlen, index, rhash, hashsz); - name_count++; - } -@@ -988,6 +990,7 @@ int read_hostsfile(char *filename, unsigned int index, int cache_size, struct cr - { - strcpy(cache->name.sname, canon); - cache->flags = flags; -+ cache->ttd = daemon->local_ttl; - add_hosts_entry(cache, &addr, addrlen, index, rhash, hashsz); - name_count++; - } -@@ -1057,6 +1060,7 @@ void cache_reload(void) - ((cache = whine_malloc(sizeof(struct crec))))) - { - cache->flags = F_FORWARD | F_NAMEP | F_CNAME | F_IMMORTAL | F_CONFIG; -+ cache->ttd = a->ttl; - cache->name.namep = a->alias; - cache->addr.cname.target.int_name = intr; - cache->addr.cname.uid = SRC_INTERFACE; -@@ -1071,6 +1075,7 @@ void cache_reload(void) - (cache->addr.ds.keydata = blockdata_alloc(ds->digest, ds->digestlen))) - { - cache->flags = F_FORWARD | F_IMMORTAL | F_DS | F_CONFIG | F_NAMEP; -+ cache->ttd = daemon->local_ttl; - cache->name.namep = ds->name; - cache->addr.ds.keylen = ds->digestlen; - cache->addr.ds.algo = ds->algo; -@@ -1095,6 +1100,7 @@ void cache_reload(void) - (cache = whine_malloc(sizeof(struct crec)))) - { - cache->name.namep = nl->name; -+ cache->ttd = hr->ttl; - cache->flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV4 | F_NAMEP | F_CONFIG; - add_hosts_entry(cache, (struct all_addr *)&hr->addr, INADDRSZ, SRC_CONFIG, (struct crec **)daemon->packet, revhashsz); - } -@@ -1103,6 +1109,7 @@ void cache_reload(void) - (cache = whine_malloc(sizeof(struct crec)))) - { - cache->name.namep = nl->name; -+ cache->ttd = hr->ttl; - cache->flags = F_HOSTS | F_IMMORTAL | F_FORWARD | F_REVERSE | F_IPV6 | F_NAMEP | F_CONFIG; - add_hosts_entry(cache, (struct all_addr *)&hr->addr6, IN6ADDRSZ, SRC_CONFIG, (struct crec **)daemon->packet, revhashsz); - } -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index 6d1c5ae..6344df5 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -308,6 +308,7 @@ struct ptr_record { - }; - - struct cname { -+ int ttl; - char *alias, *target; - struct cname *next; - }; -@@ -344,6 +345,7 @@ struct auth_zone { - - - struct host_record { -+ int ttl; - struct name_list { - char *name; - struct name_list *next; -diff --git a/src/option.c b/src/option.c -index c98bdc9..7c5e6bc 100644 ---- a/src/option.c -+++ b/src/option.c -@@ -448,20 +448,20 @@ static struct { - { LOPT_GEN_NAMES, ARG_DUP, "[=tag:]", gettext_noop("Generate hostnames based on MAC address for nameless clients."), NULL}, - { LOPT_PROXY, ARG_DUP, "[=]...", gettext_noop("Use these DHCP relays as full proxies."), NULL }, - { LOPT_RELAY, ARG_DUP, ",[,]", gettext_noop("Relay DHCP requests to a remote server"), NULL}, -- { LOPT_CNAME, ARG_DUP, ",", gettext_noop("Specify alias name for LOCAL DNS name."), NULL }, -+ { LOPT_CNAME, ARG_DUP, ",[,]", gettext_noop("Specify alias name for LOCAL DNS name."), NULL }, - { LOPT_PXE_PROMT, ARG_DUP, ",[]", gettext_noop("Prompt to send to PXE clients."), NULL }, - { LOPT_PXE_SERV, ARG_DUP, "", gettext_noop("Boot service for PXE menu."), NULL }, - { LOPT_TEST, 0, NULL, gettext_noop("Check configuration syntax."), NULL }, - { LOPT_ADD_MAC, ARG_DUP, "[=base64|text]", gettext_noop("Add requestor's MAC address to forwarded DNS queries."), NULL }, - { LOPT_ADD_SBNET, ARG_ONE, "[,]", gettext_noop("Add specified IP subnet to forwarded DNS queries."), NULL }, -- { LOPT_CPE_ID, ARG_ONE, "", gettext_noop("Add client identification to forwarded DNS queries."), NULL }, -+ { LOPT_CPE_ID, ARG_ONE, "", gettext_noop("Add client identification to forwarded DNS queries."), NULL }, - { LOPT_DNSSEC, OPT_DNSSEC_PROXY, NULL, gettext_noop("Proxy DNSSEC validation results from upstream nameservers."), NULL }, - { LOPT_INCR_ADDR, OPT_CONSEC_ADDR, NULL, gettext_noop("Attempt to allocate sequential IP addresses to DHCP clients."), NULL }, - { LOPT_CONNTRACK, OPT_CONNTRACK, NULL, gettext_noop("Copy connection-track mark from queries to upstream connections."), NULL }, - { LOPT_FQDN, OPT_FQDN_UPDATE, NULL, gettext_noop("Allow DHCP clients to do their own DDNS updates."), NULL }, - { LOPT_RA, OPT_RA, NULL, gettext_noop("Send router-advertisements for interfaces doing DHCPv6"), NULL }, - { LOPT_DUID, ARG_ONE, ",", gettext_noop("Specify DUID_EN-type DHCPv6 server DUID"), NULL }, -- { LOPT_HOST_REC, ARG_DUP, ",
", gettext_noop("Specify host (A/AAAA and PTR) records"), NULL }, -+ { LOPT_HOST_REC, ARG_DUP, ",
[,]", gettext_noop("Specify host (A/AAAA and PTR) records"), NULL }, - { LOPT_RR, ARG_DUP, ",,[]", gettext_noop("Specify arbitrary DNS resource record"), NULL }, - { LOPT_CLVERBIND, OPT_CLEVERBIND, NULL, gettext_noop("Bind to interfaces in use - check for new interfaces"), NULL }, - { LOPT_AUTHSERV, ARG_ONE, ",", gettext_noop("Export local names to global DNS"), NULL }, -@@ -3692,12 +3692,15 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - case LOPT_CNAME: /* --cname */ - { - struct cname *new; -- char *alias; -- char *target; -+ char *alias, *target, *ttls; -+ int ttl = -1; - - if (!(comma = split(arg))) - ret_err(gen_err); - -+ if ((ttls = split(comma)) && !atoi_check(ttls, &ttl)) -+ ret_err(_("bad TTL")); -+ - alias = canonicalise_opt(arg); - target = canonicalise_opt(comma); - -@@ -3713,6 +3716,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - daemon->cnames = new; - new->alias = alias; - new->target = target; -+ new->ttl = ttl; - } - - break; -@@ -3913,14 +3917,22 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - { - struct host_record *new = opt_malloc(sizeof(struct host_record)); - memset(new, 0, sizeof(struct host_record)); -- -+ new->ttl = -1; -+ - if (!arg || !(comma = split(arg))) - ret_err(_("Bad host-record")); - - while (arg) - { - struct all_addr addr; -- if (inet_pton(AF_INET, arg, &addr)) -+ char *dig; -+ -+ for (dig = arg; *dig != 0; dig++) -+ if (*dig < '0' || *dig > '9') -+ break; -+ if (*dig == 0) -+ new->ttl = atoi(arg); -+ else if (inet_pton(AF_INET, arg, &addr)) - new->addr = addr.addr.addr4; - #ifdef HAVE_IPV6 - else if (inet_pton(AF_INET6, arg, &addr)) -@@ -4601,7 +4613,25 @@ void read_opts(int argc, char **argv, char *compile_opts) - } - } - } -- -+ -+ if (daemon->host_records) -+ { -+ struct host_record *hr; -+ -+ for (hr = daemon->host_records; hr; hr = hr->next) -+ if (hr->ttl == -1) -+ hr->ttl = daemon->local_ttl; -+ } -+ -+ if (daemon->cnames) -+ { -+ struct cname *cn; -+ -+ for (cn = daemon->cnames; cn; cn = cn->next) -+ if (cn->ttl == -1) -+ cn->ttl = daemon->local_ttl; -+ } -+ - if (daemon->if_addrs) - { - struct iname *tmp; -diff --git a/src/rfc1035.c b/src/rfc1035.c -index 9c0ddb5..3535a71 100644 ---- a/src/rfc1035.c -+++ b/src/rfc1035.c -@@ -1169,9 +1169,13 @@ static unsigned long crec_ttl(struct crec *crecp, time_t now) - /* Return 0 ttl for DHCP entries, which might change - before the lease expires. */ - -- if (crecp->flags & (F_IMMORTAL | F_DHCP)) -+ if (crecp->flags & F_DHCP) - return daemon->local_ttl; - -+ /* Immortal entries other than DHCP are local, and hold TTL in TTD field. */ -+ if (crecp->flags & F_IMMORTAL) -+ return crecp->ttd; -+ - /* Return the Max TTL value if it is lower then the actual TTL */ - if (daemon->max_ttl == 0 || ((unsigned)(crecp->ttd - now) < daemon->max_ttl)) - return crecp->ttd - now; --- -1.7.10.4 - diff --git a/src/patches/dnsmasq/002-Add_--dhcp-ttl_option.patch b/src/patches/dnsmasq/002-Add_--dhcp-ttl_option.patch deleted file mode 100644 index 45e3b9b..0000000 --- a/src/patches/dnsmasq/002-Add_--dhcp-ttl_option.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 832e47beab95c2918b5264f0504f2fe6fe523e4c Mon Sep 17 00:00:00 2001 -From: Simon Kelley -Date: Wed, 24 Feb 2016 21:24:45 +0000 -Subject: [PATCH] Add --dhcp-ttl option. - ---- - man/dnsmasq.8 | 5 ++++- - src/dnsmasq.h | 2 +- - src/option.c | 13 +++++++++++-- - src/rfc1035.c | 2 +- - 4 files changed, 17 insertions(+), 5 deletions(-) - -diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 -index 7bc1394..2bcce20 100644 ---- a/man/dnsmasq.8 -+++ b/man/dnsmasq.8 -@@ -60,7 +60,7 @@ in the same way as for DHCP-derived names. Note that this does not - apply to domain names in cnames, PTR records, TXT records etc. - .TP - .B \-T, --local-ttl=