diff options
author | Bjørn Mork <bjorn@mork.no> | 2011-10-20 18:39:38 +0200 |
---|---|---|
committer | Bjørn Mork <bjorn@mork.no> | 2011-10-20 18:39:38 +0200 |
commit | 87d654840a8e3708d6540037fe95359c073ed021 (patch) | |
tree | 6261441b7e3d4a1f6fefd73cadd8a1881ac7550c /common/parse.c | |
parent | 8f7a623a2ce25cdd5f4f075562d6336044f3ad1f (diff) |
v4.2.3 imported from ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gzv4.2.3
From: Shawn Routhier <sar@isc.org>
Subject: ISC DHCP 4.2.3 is now available for download
To: df-announce@isc.org, dhcp-announce@isc.org, dhcp-workers@lists.isc.org, Users of ISC DHCP <dhcp-users@lists.isc.org>
Date: Wed, 19 Oct 2011 16:18:28 -0700
Organization: ISC
Reply-To: Users of ISC DHCP <dhcp-users@lists.isc.org>
ISC DHCP 4.2.3 is now available for download.
This is the public release of ISC DHCP 4.2.3, a maintenance
release which contains a small number of bug fixes.
A list of the changes in this release has been appended to the end
of this message. For a complete list of changes from any previous
release, please consult the RELNOTES file within the source
distribution, or on our website:
http://www.isc.org/software/dhcp/423
This release, and its OpenPGP-signatures are available now from:
ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gz
ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gz.sha512.asc
ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gz.sha256.asc
ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gz.sha1.asc
ISC's Release Signing Key can be obtained at:
http://www.isc.org/about/openpgp/
Changes since 4.2.3rc1
- None.
Changes since 4.2.2
- Fix the code that checks for an existing DDNS transaction to cancel
when removing DDNS information, so that we will continue with the
processing if we have a lease even if it doesn't have an outstanding
transaction. [ISC-Bugs #24682]
- Add AM_MAINTAINER_MODE to configure.ac to avoid rebuilding
configuration files. [ISC-Bugs #24107]
- Add support for passing DDNS information to a DNS server over
an IPv6 address. [ISC-Bugs #22647]
- Enhanced patch for 23595 to handle IPv4 fixed addresses more
cleanly. [ISC-Bugs #23595]
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Diffstat (limited to 'common/parse.c')
-rw-r--r-- | common/parse.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/common/parse.c b/common/parse.c index 049ce7b..61488c1 100644 --- a/common/parse.c +++ b/common/parse.c @@ -2698,6 +2698,8 @@ int parse_executable_statement (result, cfile, lose, case_context) zone-statement :== PRIMARY ip-addresses SEMI | SECONDARY ip-addresses SEMI | + PRIMARY6 ip-address6 SEMI | + SECONDARY6 ip-address6 SEMI | key-reference SEMI ip-addresses :== ip-addr-or-hostname | ip-addr-or-hostname COMMA ip-addresses @@ -2779,6 +2781,61 @@ int parse_zone (struct dns_zone *zone, struct parse *cfile) } break; + case PRIMARY6: + if (zone->primary6) { + parse_warn(cfile, "more than one primary6."); + skip_to_semi(cfile); + return (0); + } + if (!option_cache_allocate (&zone->primary6, MDL)) + log_fatal("can't allocate primary6 option cache."); + oc = zone->primary6; + goto consemup6; + + case SECONDARY6: + if (zone->secondary6) { + parse_warn(cfile, "more than one secondary6."); + skip_to_semi(cfile); + return (0); + } + if (!option_cache_allocate (&zone->secondary6, MDL)) + log_fatal("can't allocate secondary6 " + "option cache."); + oc = zone->secondary6; + consemup6: + token = next_token(&val, NULL, cfile); + do { + struct expression *expr = NULL; + if (parse_ip6_addr_expr(&expr, cfile) == 0) { + parse_warn(cfile, "expecting IPv6 addr."); + skip_to_semi(cfile); + return (0); + } + if (oc->expression) { + struct expression *old = NULL; + expression_reference(&old, oc->expression, + MDL); + expression_dereference(&oc->expression, + MDL); + if (!make_concat(&oc->expression, + old, expr)) + log_fatal("no memory for concat."); + expression_dereference(&expr, MDL); + expression_dereference(&old, MDL); + } else { + expression_reference(&oc->expression, + expr, MDL); + expression_dereference(&expr, MDL); + } + token = next_token(&val, NULL, cfile); + } while (token == COMMA); + if (token != SEMI) { + parse_warn(cfile, "expecting semicolon."); + skip_to_semi(cfile); + return (0); + } + break; + case KEY: token = next_token (&val, (unsigned *)0, cfile); token = peek_token (&val, (unsigned *)0, cfile); |