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 michael.tremer@ipfire.org Date: Mon May 16 18:02:03 2016 +0100
core103: Ship updated dnsmasq
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c00aeae80ff74313ad4db74595c187556c2812c8 Author: Matthias Fischer matthias.fischer@ipfire.org 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 matthias.fischer@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 3f877ebd251ac7e804f89adef5daf1a80e582747 Author: Matthias Fischer matthias.fischer@ipfire.org 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 matthias.fischer@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 4d36732fe23a15cd79ca7dcd8f0ea21975c6a75c Author: Matthias Fischer matthias.fischer@ipfire.org 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 matthias.fischer@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 15f37d7738ebb756090d30762fbea780ea32bbf8 Author: Matthias Fischer matthias.fischer@ipfire.org 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 matthias.fischer@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit bb91c2f74439495a7fd4a62337dc7f41386fa42a Author: Matthias Fischer matthias.fischer@ipfire.org 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 matthias.fischer@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
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 <assert.h> ++#include <stdio.h> ++ +#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 simon@thekelleys.org.uk -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=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>] -+.B --host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>] - 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=<name>[[,<text>],<text>] - 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=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>] - Return an NAPTR DNS record, as specified in RFC3403. - .TP --.B --cname=<cname>,<target> -+.B --cname=<cname>,<target>[,<TTL>] - Return a CNAME record which indicates that <cname> is really - <target>. 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=<name>,<RR-number>,[<hex data>] - 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:<tag>]", gettext_noop("Generate hostnames based on MAC address for nameless clients."), NULL}, - { LOPT_PROXY, ARG_DUP, "[=<ipaddr>]...", gettext_noop("Use these DHCP relays as full proxies."), NULL }, - { LOPT_RELAY, ARG_DUP, "<local-addr>,<server>[,<interface>]", gettext_noop("Relay DHCP requests to a remote server"), NULL}, -- { LOPT_CNAME, ARG_DUP, "<alias>,<target>", gettext_noop("Specify alias name for LOCAL DNS name."), NULL }, -+ { LOPT_CNAME, ARG_DUP, "<alias>,<target>[,<ttl>]", gettext_noop("Specify alias name for LOCAL DNS name."), NULL }, - { LOPT_PXE_PROMT, ARG_DUP, "<prompt>,[<timeout>]", gettext_noop("Prompt to send to PXE clients."), NULL }, - { LOPT_PXE_SERV, ARG_DUP, "<service>", 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, "<v4 pref>[,<v6 pref>]", gettext_noop("Add specified IP subnet to forwarded DNS queries."), NULL }, -- { LOPT_CPE_ID, ARG_ONE, "<text>", gettext_noop("Add client identification to forwarded DNS queries."), NULL }, -+ { LOPT_CPE_ID, ARG_ONE, "<text>", 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, "<enterprise>,<duid>", gettext_noop("Specify DUID_EN-type DHCPv6 server DUID"), NULL }, -- { LOPT_HOST_REC, ARG_DUP, "<name>,<address>", gettext_noop("Specify host (A/AAAA and PTR) records"), NULL }, -+ { LOPT_HOST_REC, ARG_DUP, "<name>,<address>[,<ttl>]", gettext_noop("Specify host (A/AAAA and PTR) records"), NULL }, - { LOPT_RR, ARG_DUP, "<name>,<RR-number>,[<data>]", 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, "<NS>,<interface>", 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 simon@thekelleys.org.uk -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=<time> --When replying with information from /etc/hosts or the DHCP leases -+When replying with information from /etc/hosts or configuration or the DHCP leases - file dnsmasq by default sets the time-to-live field to zero, meaning - that the requester should not itself cache the information. This is - the correct thing to do in almost all situations. This option allows a -@@ -68,6 +68,9 @@ time-to-live (in seconds) to be given for these replies. This will - reduce the load on the server at the expense of clients using stale - data under some circumstances. - .TP -+.B --dhcp-ttl=<time> -+As for --local-ttl, but affects only replies with information from DHCP leases. If both are given, --dhcp-ttl applies for DHCP information, and --local-ttl for others. Setting this to zero eliminates the effect of --local-ttl for DHCP. -+.TP - .B --neg-ttl=<time> - Negative replies from upstream servers normally contain time-to-live - information in SOA records which dnsmasq uses for caching. If the -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index 6344df5..9f73c3b 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -955,7 +955,7 @@ extern struct daemon { - int max_logs; /* queue limit */ - int cachesize, ftabsize; - int port, query_port, min_port, max_port; -- unsigned long local_ttl, neg_ttl, max_ttl, min_cache_ttl, max_cache_ttl, auth_ttl; -+ unsigned long local_ttl, neg_ttl, max_ttl, min_cache_ttl, max_cache_ttl, auth_ttl, dhcp_ttl, use_dhcp_ttl; - char *dns_client_id; - struct hostsfile *addn_hosts; - struct dhcp_context *dhcp, *dhcp6; -diff --git a/src/option.c b/src/option.c -index 7c5e6bc..3f6d162 100644 ---- a/src/option.c -+++ b/src/option.c -@@ -157,6 +157,7 @@ struct myoption { - #define LOPT_MAXPORT 345 - #define LOPT_CPE_ID 346 - #define LOPT_SCRIPT_ARP 347 -+#define LOPT_DHCPTTL 348 - - #ifdef HAVE_GETOPT_LONG - static const struct option opts[] = -@@ -319,6 +320,7 @@ static const struct myoption opts[] = - { "quiet-ra", 0, 0, LOPT_QUIET_RA }, - { "dns-loop-detect", 0, 0, LOPT_LOOP_DETECT }, - { "script-arp", 0, 0, LOPT_SCRIPT_ARP }, -+ { "dhcp-ttl", 1, 0 , LOPT_DHCPTTL }, - { NULL, 0, 0, 0 } - }; - -@@ -485,9 +487,10 @@ static struct { - { LOPT_QUIET_DHCP, OPT_QUIET_DHCP, NULL, gettext_noop("Do not log routine DHCP."), NULL }, - { LOPT_QUIET_DHCP6, OPT_QUIET_DHCP6, NULL, gettext_noop("Do not log routine DHCPv6."), NULL }, - { LOPT_QUIET_RA, OPT_QUIET_RA, NULL, gettext_noop("Do not log RA."), NULL }, -- { LOPT_LOCAL_SERVICE, OPT_LOCAL_SERVICE, NULL, gettext_noop("Accept queries only from directly-connected networks"), NULL }, -- { LOPT_LOOP_DETECT, OPT_LOOP_DETECT, NULL, gettext_noop("Detect and remove DNS forwarding loops"), NULL }, -+ { LOPT_LOCAL_SERVICE, OPT_LOCAL_SERVICE, NULL, gettext_noop("Accept queries only from directly-connected networks."), NULL }, -+ { LOPT_LOOP_DETECT, OPT_LOOP_DETECT, NULL, gettext_noop("Detect and remove DNS forwarding loops."), NULL }, - { LOPT_IGNORE_ADDR, ARG_DUP, "<ipaddr>", gettext_noop("Ignore DNS responses containing ipaddr."), NULL }, -+ { LOPT_DHCPTTL, ARG_ONE, "<ttl>", gettext_noop("Set TTL in DNS responses with DHCP-derived addresses."), NULL }, - { 0, 0, NULL, NULL, NULL } - }; - -@@ -2580,6 +2583,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - case LOPT_MINCTTL: /* --min-cache-ttl */ - case LOPT_MAXCTTL: /* --max-cache-ttl */ - case LOPT_AUTHTTL: /* --auth-ttl */ -+ case LOPT_DHCPTTL: /* --dhcp-ttl */ - { - int ttl; - if (!atoi_check(arg, &ttl)) -@@ -2598,6 +2602,11 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - daemon->max_cache_ttl = (unsigned long)ttl; - else if (option == LOPT_AUTHTTL) - daemon->auth_ttl = (unsigned long)ttl; -+ else if (option == LOPT_DHCPTTL) -+ { -+ daemon->dhcp_ttl = (unsigned long)ttl; -+ daemon->use_dhcp_ttl = 1; -+ } - else - daemon->local_ttl = (unsigned long)ttl; - break; -diff --git a/src/rfc1035.c b/src/rfc1035.c -index 3535a71..8f1e3b4 100644 ---- a/src/rfc1035.c -+++ b/src/rfc1035.c -@@ -1170,7 +1170,7 @@ static unsigned long crec_ttl(struct crec *crecp, time_t now) - before the lease expires. */ - - if (crecp->flags & F_DHCP) -- return daemon->local_ttl; -+ return daemon->use_dhcp_ttl ? daemon->dhcp_ttl : daemon->local_ttl; - - /* Immortal entries other than DHCP are local, and hold TTL in TTD field. */ - if (crecp->flags & F_IMMORTAL) --- -1.7.10.4 - diff --git a/src/patches/dnsmasq/003-Update_CHANGELOG.patch b/src/patches/dnsmasq/003-Update_CHANGELOG.patch deleted file mode 100644 index f04f943..0000000 --- a/src/patches/dnsmasq/003-Update_CHANGELOG.patch +++ /dev/null @@ -1,17 +0,0 @@ -X-Git-Url: http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=blobdiff_plain;f=CHANGELOG;... - -diff --git a/CHANGELOG b/CHANGELOG -index 14354f2..6d9ba49 100644 ---- a/CHANGELOG -+++ b/CHANGELOG -@@ -48,6 +48,10 @@ version 2.76 - (ie xx::0 to xx::ffff:ffff:ffff:ffff) - Thanks to Laurent Bendel for spotting this problem. - -+ Add support for a TTL parameter in --host-record and -+ --cname. -+ -+ Add --dhcp-ttl option. - - version 2.75 - Fix reversion on 2.74 which caused 100% CPU use when a diff --git a/src/patches/dnsmasq/004-Add_--tftp-mtu_option.patch b/src/patches/dnsmasq/004-Add_--tftp-mtu_option.patch deleted file mode 100644 index c06705a..0000000 --- a/src/patches/dnsmasq/004-Add_--tftp-mtu_option.patch +++ /dev/null @@ -1,136 +0,0 @@ -From bec366b4041df72b559e713f1c924177676e6eb0 Mon Sep 17 00:00:00 2001 -From: Simon Kelley simon@thekelleys.org.uk -Date: Wed, 24 Feb 2016 22:03:26 +0000 -Subject: [PATCH] Add --tftp-mtu option. - ---- - CHANGELOG | 4 ++++ - man/dnsmasq.8 | 4 ++++ - src/dnsmasq.h | 2 +- - src/option.c | 10 +++++++++- - src/tftp.c | 14 ++++++++++++-- - 5 files changed, 30 insertions(+), 4 deletions(-) - -diff --git a/CHANGELOG b/CHANGELOG -index 6d9ba49..9218b8c 100644 ---- a/CHANGELOG -+++ b/CHANGELOG -@@ -53,6 +53,10 @@ version 2.76 - - Add --dhcp-ttl option. - -+ Add --tftp-mtu option. Thanks to Patrick McLean for the -+ initial patch. -+ -+ - version 2.75 - Fix reversion on 2.74 which caused 100% CPU use when a - dhcp-script is configured. Thanks to Adrian Davey for -diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 -index 2bcce20..3cf48cd 100644 ---- a/man/dnsmasq.8 -+++ b/man/dnsmasq.8 -@@ -1810,6 +1810,10 @@ require about (2*n) + 10 descriptors. If - .B --tftp-port-range - is given, that can affect the number of concurrent connections. - .TP -+.B --tftp-mtu=<mtu size> -+Use size as the ceiling of the MTU supported by the intervening network when -+negotiating TFTP blocksize, overriding the MTU setting of the local interface if it is larger. -+.TP - .B --tftp-no-blocksize - Stop the TFTP server from negotiating the "blocksize" option with a - client. Some buggy clients request this option but then behave badly -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index 9f73c3b..280ad9d 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -975,7 +975,7 @@ extern struct daemon { - struct dhcp_netid_list *dhcp_ignore, *dhcp_ignore_names, *dhcp_gen_names; - struct dhcp_netid_list *force_broadcast, *bootp_dynamic; - struct hostsfile *dhcp_hosts_file, *dhcp_opts_file, *dynamic_dirs; -- int dhcp_max, tftp_max; -+ int dhcp_max, tftp_max, tftp_mtu; - int dhcp_server_port, dhcp_client_port; - int start_tftp_port, end_tftp_port; - unsigned int min_leasetime; -diff --git a/src/option.c b/src/option.c -index 3f6d162..765965f 100644 ---- a/src/option.c -+++ b/src/option.c -@@ -158,7 +158,8 @@ struct myoption { - #define LOPT_CPE_ID 346 - #define LOPT_SCRIPT_ARP 347 - #define LOPT_DHCPTTL 348 -- -+#define LOPT_TFTP_MTU 349 -+ - #ifdef HAVE_GETOPT_LONG - static const struct option opts[] = - #else -@@ -244,6 +245,7 @@ static const struct myoption opts[] = - { "tftp-unique-root", 0, 0, LOPT_APREF }, - { "tftp-root", 1, 0, LOPT_PREFIX }, - { "tftp-max", 1, 0, LOPT_TFTP_MAX }, -+ { "tftp-mtu", 1, 0, LOPT_TFTP_MTU }, - { "tftp-lowercase", 0, 0, LOPT_TFTP_LC }, - { "ptr-record", 1, 0, LOPT_PTR }, - { "naptr-record", 1, 0, LOPT_NAPTR }, -@@ -432,6 +434,7 @@ static struct { - { LOPT_SECURE, OPT_TFTP_SECURE, NULL, gettext_noop("Allow access only to files owned by the user running dnsmasq."), NULL }, - { LOPT_TFTP_NO_FAIL, OPT_TFTP_NO_FAIL, NULL, gettext_noop("Do not terminate the service if TFTP directories are inaccessible."), NULL }, - { LOPT_TFTP_MAX, ARG_ONE, "<integer>", gettext_noop("Maximum number of conncurrent TFTP transfers (defaults to %s)."), "#" }, -+ { LOPT_TFTP_MTU, ARG_ONE, "<integer>", gettext_noop("Maximum MTU to use for TFTP transfers."), NULL }, - { LOPT_NOBLOCK, OPT_TFTP_NOBLOCK, NULL, gettext_noop("Disable the TFTP blocksize extension."), NULL }, - { LOPT_TFTP_LC, OPT_TFTP_LC, NULL, gettext_noop("Convert TFTP filenames to lowercase"), NULL }, - { LOPT_TFTPPORTS, ARG_ONE, "<start>,<end>", gettext_noop("Ephemeral port range for use by TFTP transfers."), NULL }, -@@ -2625,6 +2628,11 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma - ret_err(gen_err); - break; - -+ case LOPT_TFTP_MTU: /* --tftp-mtu */ -+ if (!atoi_check(arg, &daemon->tftp_mtu)) -+ ret_err(gen_err); -+ break; -+ - case LOPT_PREFIX: /* --tftp-prefix */ - comma = split(arg); - if (comma) -diff --git a/src/tftp.c b/src/tftp.c -index 00ed2fc..dc4aa85 100644 ---- a/src/tftp.c -+++ b/src/tftp.c -@@ -103,8 +103,10 @@ void tftp_request(struct listener *listen, time_t now) - if (listen->iface) - { - addr = listen->iface->addr; -- mtu = listen->iface->mtu; - name = listen->iface->name; -+ mtu = listen->iface->mtu; -+ if (daemon->tftp_mtu != 0 && daemon->tftp_mtu < mtu) -+ mtu = daemon->tftp_mtu; - } - else - { -@@ -234,9 +236,17 @@ void tftp_request(struct listener *listen, time_t now) - - strncpy(ifr.ifr_name, name, IF_NAMESIZE); - if (ioctl(listen->tftpfd, SIOCGIFMTU, &ifr) != -1) -- mtu = ifr.ifr_mtu; -+ { -+ mtu = ifr.ifr_mtu; -+ if (daemon->tftp_mtu != 0 && daemon->tftp_mtu < mtu) -+ mtu = daemon->tftp_mtu; -+ } - } - -+ /* Failed to get interface mtu - can use configured value. */ -+ if (mtu == 0) -+ mtu = daemon->tftp_mtu; -+ - if (name) - { - /* check for per-interface prefix */ --- -1.7.10.4 - diff --git a/src/patches/dnsmasq/005-Apply_ceiling_of_lease_length_to_TTL_when_--dhcp-ttl_in_use.patch b/src/patches/dnsmasq/005-Apply_ceiling_of_lease_length_to_TTL_when_--dhcp-ttl_in_use.patch deleted file mode 100644 index 2875d2c..0000000 --- a/src/patches/dnsmasq/005-Apply_ceiling_of_lease_length_to_TTL_when_--dhcp-ttl_in_use.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7480aeffc8ad195e9fd8bcf424bae0fab3839d55 Mon Sep 17 00:00:00 2001 -From: Simon Kelley simon@thekelleys.org.uk -Date: Fri, 26 Feb 2016 21:58:20 +0000 -Subject: [PATCH] Apply ceiling of lease length to TTL when --dhcp-ttl in use. - ---- - src/rfc1035.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/src/rfc1035.c b/src/rfc1035.c -index 8f1e3b4..bed5312 100644 ---- a/src/rfc1035.c -+++ b/src/rfc1035.c -@@ -1167,10 +1167,18 @@ int add_resource_record(struct dns_header *header, char *limit, int *truncp, int - static unsigned long crec_ttl(struct crec *crecp, time_t now) - { - /* Return 0 ttl for DHCP entries, which might change -- before the lease expires. */ -+ before the lease expires, unless configured otherwise. */ - - if (crecp->flags & F_DHCP) -- return daemon->use_dhcp_ttl ? daemon->dhcp_ttl : daemon->local_ttl; -+ { -+ int conf_ttl = daemon->use_dhcp_ttl ? daemon->dhcp_ttl : daemon->local_ttl; -+ -+ /* Apply ceiling of actual lease length to configured TTL. */ -+ if (!(crecp->flags & F_IMMORTAL) && (crecp->ttd - now) < conf_ttl) -+ return crecp->ttd - now; -+ -+ return conf_ttl; -+ } - - /* Immortal entries other than DHCP are local, and hold TTL in TTD field. */ - if (crecp->flags & F_IMMORTAL) --- -1.7.10.4 - diff --git a/src/patches/procps-3.2.6-fix_unknown_HZ_value.patch b/src/patches/procps-3.2.6-fix_unknown_HZ_value.patch deleted file mode 100644 index 31d8593..0000000 --- a/src/patches/procps-3.2.6-fix_unknown_HZ_value.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -Naur procps-3.2.6.org/proc/sysinfo.c procps-3.2.6/proc/sysinfo.c ---- procps-3.2.6.org/proc/sysinfo.c 2005-03-14 05:31:27.000000000 +0100 -+++ procps-3.2.6/proc/sysinfo.c 2011-10-02 12:51:32.000000000 +0200 -@@ -209,6 +209,7 @@ - static void init_libproc(void) __attribute__((constructor)); - static void init_libproc(void){ - have_privs = check_for_privs(); -+ init_Linux_version(); - // ought to count CPUs in /proc/stat instead of relying - // on glibc, which foolishly tries to parse /proc/cpuinfo - // -diff -Naur procps-3.2.6.org/proc/version.c procps-3.2.6/proc/version.c ---- procps-3.2.6.org/proc/version.c 2003-01-29 02:11:43.000000000 +0100 -+++ procps-3.2.6/proc/version.c 2011-10-02 12:52:36.000000000 +0200 -@@ -33,8 +33,7 @@ - - int linux_version_code; - --static void init_Linux_version(void) __attribute__((constructor)); --static void init_Linux_version(void) { -+void init_Linux_version(void) { - static struct utsname uts; - int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */ - -diff -Naur procps-3.2.6.org/proc/version.h procps-3.2.6/proc/version.h ---- procps-3.2.6.org/proc/version.h 2002-12-15 01:08:32.000000000 +0100 -+++ procps-3.2.6/proc/version.h 2011-10-02 12:53:10.000000000 +0200 -@@ -14,6 +14,7 @@ - - EXTERN_C_BEGIN - -+extern void init_Linux_version(void); - extern void display_version(void); /* display suite version */ - extern const char procps_version[]; /* global buf for suite version */ - diff --git a/src/patches/procps-3.2.8-fix_unknown_HZ_value.patch b/src/patches/procps-3.2.8-fix_unknown_HZ_value.patch new file mode 100644 index 0000000..08edaa6 --- /dev/null +++ b/src/patches/procps-3.2.8-fix_unknown_HZ_value.patch @@ -0,0 +1,35 @@ +diff -Naur procps-3.2.6.org/proc/sysinfo.c procps-3.2.6/proc/sysinfo.c +--- procps-3.2.6.org/proc/sysinfo.c 2005-03-14 05:31:27.000000000 +0100 ++++ procps-3.2.6/proc/sysinfo.c 2011-10-02 12:51:32.000000000 +0200 +@@ -212,6 +212,7 @@ + static void init_libproc(void) __attribute__((constructor)); + static void init_libproc(void){ + have_privs = check_for_privs(); ++ init_Linux_version(); + // ought to count CPUs in /proc/stat instead of relying + // on glibc, which foolishly tries to parse /proc/cpuinfo + // +diff -Naur procps-3.2.6.org/proc/version.c procps-3.2.6/proc/version.c +--- procps-3.2.6.org/proc/version.c 2003-01-29 02:11:43.000000000 +0100 ++++ procps-3.2.6/proc/version.c 2011-10-02 12:52:36.000000000 +0200 +@@ -33,8 +33,7 @@ + + int linux_version_code; + +-static void init_Linux_version(void) __attribute__((constructor)); +-static void init_Linux_version(void) { ++void init_Linux_version(void) { + static struct utsname uts; + int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */ + +diff -Naur procps-3.2.6.org/proc/version.h procps-3.2.6/proc/version.h +--- procps-3.2.6.org/proc/version.h 2002-12-15 01:08:32.000000000 +0100 ++++ procps-3.2.6/proc/version.h 2011-10-02 12:53:10.000000000 +0200 +@@ -14,6 +14,7 @@ + + EXTERN_C_BEGIN + ++extern void init_Linux_version(void); + extern void display_version(void); /* display suite version */ + extern const char procps_version[]; /* global buf for suite version */ +
hooks/post-receive -- IPFire 2.x development tree