mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-09-01 14:55:30 +00:00
[master] Add support for user selection of the from address for DDNS transactions
This commit is contained in:
6
RELNOTES
6
RELNOTES
@@ -117,6 +117,12 @@ work on other platforms. Please report any problems and suggested fixes to
|
|||||||
appropriate zone statements rather than using this functionality.
|
appropriate zone statements rather than using this functionality.
|
||||||
[ISC-Bugs #30461]
|
[ISC-Bugs #30461]
|
||||||
|
|
||||||
|
- Add support for specifying the address from which to send
|
||||||
|
DDNS updates on the DHCP server. There are two new options
|
||||||
|
"ddns-local-address4" and "ddns-local-address6" that each take
|
||||||
|
one instance of their respective address types.
|
||||||
|
[ISC-Bugs #34779]
|
||||||
|
|
||||||
Changes since 4.2.5
|
Changes since 4.2.5
|
||||||
|
|
||||||
- Address static analysis warnings.
|
- Address static analysis warnings.
|
||||||
|
@@ -147,7 +147,8 @@ main(int argc, char **argv) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set up the isc and dns library managers */
|
/* Set up the isc and dns library managers */
|
||||||
status = dhcp_context_create();
|
status = dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
if (status != ISC_R_SUCCESS)
|
if (status != ISC_R_SUCCESS)
|
||||||
log_fatal("Can't initialize context: %s",
|
log_fatal("Can't initialize context: %s",
|
||||||
isc_result_totext(status));
|
isc_result_totext(status));
|
||||||
|
@@ -3,7 +3,8 @@
|
|||||||
Subroutines providing general support for objects. */
|
Subroutines providing general support for objects. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC")
|
* Copyright (c) 2009,2013 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
* Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
* Copyright (c) 1999-2003 by Internet Software Consortium
|
* Copyright (c) 1999-2003 by Internet Software Consortium
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
@@ -48,7 +49,8 @@ dhcpctl_status dhcpctl_initialize ()
|
|||||||
isc_result_t status;
|
isc_result_t status;
|
||||||
|
|
||||||
/* Set up the isc and dns library managers */
|
/* Set up the isc and dns library managers */
|
||||||
status = dhcp_context_create();
|
status = dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
if (status != ISC_R_SUCCESS)
|
if (status != ISC_R_SUCCESS)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
|
@@ -733,6 +733,8 @@ struct lease_state {
|
|||||||
#endif
|
#endif
|
||||||
#define SV_CACHE_THRESHOLD 78
|
#define SV_CACHE_THRESHOLD 78
|
||||||
#define SV_DONT_USE_FSYNC 79
|
#define SV_DONT_USE_FSYNC 79
|
||||||
|
#define SV_DDNS_LOCAL_ADDRESS4 80
|
||||||
|
#define SV_DDNS_LOCAL_ADDRESS6 81
|
||||||
|
|
||||||
#if !defined (DEFAULT_PING_TIMEOUT)
|
#if !defined (DEFAULT_PING_TIMEOUT)
|
||||||
# define DEFAULT_PING_TIMEOUT 1
|
# define DEFAULT_PING_TIMEOUT 1
|
||||||
|
@@ -118,7 +118,11 @@ isclib_make_dst_key(char *inname,
|
|||||||
int length,
|
int length,
|
||||||
dst_key_t **dstkey);
|
dst_key_t **dstkey);
|
||||||
|
|
||||||
isc_result_t dhcp_context_create(void);
|
#define DHCP_CONTEXT_PRE_DB 1
|
||||||
|
#define DHCP_CONTEXT_POST_DB 2
|
||||||
|
isc_result_t dhcp_context_create(int flags,
|
||||||
|
struct in_addr *local4,
|
||||||
|
struct in6_addr *local6);
|
||||||
void isclib_cleanup(void);
|
void isclib_cleanup(void);
|
||||||
|
|
||||||
void dhcp_signal_handler(int signal);
|
void dhcp_signal_handler(int signal);
|
||||||
|
175
omapip/isclib.c
175
omapip/isclib.c
@@ -121,91 +121,110 @@ isclib_cleanup(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
dhcp_context_create(void) {
|
dhcp_context_create(int flags,
|
||||||
|
struct in_addr *local4,
|
||||||
|
struct in6_addr *local6) {
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
|
|
||||||
/*
|
if ((flags & DHCP_CONTEXT_PRE_DB) != 0) {
|
||||||
* Set up the error messages, this isn't the right place
|
/*
|
||||||
* for this call but it is convienent for now.
|
* Set up the error messages, this isn't the right place
|
||||||
*/
|
* for this call but it is convienent for now.
|
||||||
result = dhcp_result_register();
|
*/
|
||||||
if (result != ISC_R_SUCCESS) {
|
result = dhcp_result_register();
|
||||||
log_fatal("register_table() %s: %u", "failed", result);
|
if (result != ISC_R_SUCCESS) {
|
||||||
|
log_fatal("register_table() %s: %u", "failed", result);
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(&dhcp_gbl_ctx, 0, sizeof (dhcp_gbl_ctx));
|
||||||
|
|
||||||
|
isc_lib_register();
|
||||||
|
|
||||||
|
/* get the current time for use as the random seed */
|
||||||
|
gettimeofday(&cur_tv, (struct timezone *)0);
|
||||||
|
isc_random_seed(cur_tv.tv_sec);
|
||||||
|
|
||||||
|
#if defined (NSUPDATE)
|
||||||
|
result = dns_lib_init();
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
#else
|
||||||
|
/* The dst library is inited as part of dns_lib_init, we don't
|
||||||
|
* need it if NSUPDATE is enabled */
|
||||||
|
result = dst_lib_init(dhcp_gbl_ctx.mctx, NULL, 0);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
result = isc_mem_create(0, 0, &dhcp_gbl_ctx.mctx);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = isc_appctx_create(dhcp_gbl_ctx.mctx,
|
||||||
|
&dhcp_gbl_ctx.actx);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
return (result);
|
||||||
|
dhcp_gbl_ctx.actx_started = ISC_TRUE;
|
||||||
|
|
||||||
|
result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx,
|
||||||
|
dhcp_gbl_ctx.actx,
|
||||||
|
1, 0,
|
||||||
|
&dhcp_gbl_ctx.taskmgr);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = isc_socketmgr_createinctx(dhcp_gbl_ctx.mctx,
|
||||||
|
dhcp_gbl_ctx.actx,
|
||||||
|
&dhcp_gbl_ctx.socketmgr);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = isc_timermgr_createinctx(dhcp_gbl_ctx.mctx,
|
||||||
|
dhcp_gbl_ctx.actx,
|
||||||
|
&dhcp_gbl_ctx.timermgr);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&dhcp_gbl_ctx, 0, sizeof (dhcp_gbl_ctx));
|
|
||||||
|
|
||||||
isc_lib_register();
|
|
||||||
|
|
||||||
/* get the current time for use as the random seed */
|
|
||||||
gettimeofday(&cur_tv, (struct timezone *)0);
|
|
||||||
isc_random_seed(cur_tv.tv_sec);
|
|
||||||
|
|
||||||
#if defined (NSUPDATE)
|
#if defined (NSUPDATE)
|
||||||
result = dns_lib_init();
|
if ((flags & DHCP_CONTEXT_POST_DB) != 0) {
|
||||||
if (result != ISC_R_SUCCESS)
|
isc_sockaddr_t localaddr4, *localaddr4_ptr = NULL;
|
||||||
goto cleanup;
|
isc_sockaddr_t localaddr6, *localaddr6_ptr = NULL;
|
||||||
|
if (local4 != NULL) {
|
||||||
|
isc_sockaddr_fromin(&localaddr4, local4, 0);
|
||||||
|
localaddr4_ptr = &localaddr4;
|
||||||
|
}
|
||||||
|
if (local6 != NULL) {
|
||||||
|
isc_sockaddr_fromin6(&localaddr6, local6, 0);
|
||||||
|
localaddr6_ptr = &localaddr6;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = dns_client_createx2(dhcp_gbl_ctx.mctx,
|
||||||
|
dhcp_gbl_ctx.actx,
|
||||||
|
dhcp_gbl_ctx.taskmgr,
|
||||||
|
dhcp_gbl_ctx.socketmgr,
|
||||||
|
dhcp_gbl_ctx.timermgr,
|
||||||
|
0,
|
||||||
|
&dhcp_gbl_ctx.dnsclient,
|
||||||
|
localaddr4_ptr,
|
||||||
|
localaddr6_ptr);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
result = dhcp_dns_client_setservers();
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
result = isc_mem_create(0, 0, &dhcp_gbl_ctx.mctx);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = isc_appctx_create(dhcp_gbl_ctx.mctx, &dhcp_gbl_ctx.actx);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
return (result);
|
|
||||||
dhcp_gbl_ctx.actx_started = ISC_TRUE;
|
|
||||||
|
|
||||||
result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx,
|
|
||||||
dhcp_gbl_ctx.actx,
|
|
||||||
1, 0,
|
|
||||||
&dhcp_gbl_ctx.taskmgr);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = isc_socketmgr_createinctx(dhcp_gbl_ctx.mctx,
|
|
||||||
dhcp_gbl_ctx.actx,
|
|
||||||
&dhcp_gbl_ctx.socketmgr);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = isc_timermgr_createinctx(dhcp_gbl_ctx.mctx,
|
|
||||||
dhcp_gbl_ctx.actx,
|
|
||||||
&dhcp_gbl_ctx.timermgr);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
#if defined (NSUPDATE)
|
|
||||||
result = dns_client_createx(dhcp_gbl_ctx.mctx,
|
|
||||||
dhcp_gbl_ctx.actx,
|
|
||||||
dhcp_gbl_ctx.taskmgr,
|
|
||||||
dhcp_gbl_ctx.socketmgr,
|
|
||||||
dhcp_gbl_ctx.timermgr,
|
|
||||||
0,
|
|
||||||
&dhcp_gbl_ctx.dnsclient);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
result = dhcp_dns_client_setservers();
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
#else
|
|
||||||
/* The dst library is inited as part of dns_lib_init, we don't
|
|
||||||
* need it if NSUPDATE is enabled */
|
|
||||||
result = dst_lib_init(dhcp_gbl_ctx.mctx, NULL, 0);
|
|
||||||
if (result != ISC_R_SUCCESS)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
return(ISC_R_SUCCESS);
|
return(ISC_R_SUCCESS);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
Test code for omapip... */
|
Test code for omapip... */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC")
|
* Copyright (c) 2009-2010,2013 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
* Copyright (c) 1999-2003 by Internet Software Consortium
|
* Copyright (c) 1999-2003 by Internet Software Consortium
|
||||||
*
|
*
|
||||||
@@ -51,7 +51,8 @@ int main (int argc, char **argv)
|
|||||||
omapi_object_t *connection = (omapi_object_t*)0;
|
omapi_object_t *connection = (omapi_object_t*)0;
|
||||||
isc_result_t status;
|
isc_result_t status;
|
||||||
|
|
||||||
status = dhcp_context_create();
|
status = dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
if (status != ISC_R_SUCCESS) {
|
if (status != ISC_R_SUCCESS) {
|
||||||
fprintf(stderr, "Can't initialize context: %s\n",
|
fprintf(stderr, "Can't initialize context: %s\n",
|
||||||
isc_result_totext(status));
|
isc_result_totext(status));
|
||||||
|
@@ -210,7 +210,8 @@ main(int argc, char **argv) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set up the isc and dns library managers */
|
/* Set up the isc and dns library managers */
|
||||||
status = dhcp_context_create();
|
status = dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
if (status != ISC_R_SUCCESS)
|
if (status != ISC_R_SUCCESS)
|
||||||
log_fatal("Can't initialize context: %s",
|
log_fatal("Can't initialize context: %s",
|
||||||
isc_result_totext(status));
|
isc_result_totext(status));
|
||||||
|
@@ -204,7 +204,8 @@ main(int argc, char **argv) {
|
|||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
/* Set up the isc and dns library managers */
|
/* Set up the isc and dns library managers */
|
||||||
status = dhcp_context_create();
|
status = dhcp_context_create(DHCP_CONTEXT_PRE_DB,
|
||||||
|
NULL, NULL);
|
||||||
if (status != ISC_R_SUCCESS)
|
if (status != ISC_R_SUCCESS)
|
||||||
log_fatal("Can't initialize context: %s",
|
log_fatal("Can't initialize context: %s",
|
||||||
isc_result_totext(status));
|
isc_result_totext(status));
|
||||||
@@ -807,6 +808,10 @@ void postconf_initialization (int quiet)
|
|||||||
char *s;
|
char *s;
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
#if defined (NSUPDATE)
|
||||||
|
struct in_addr local4, *local4_ptr = NULL;
|
||||||
|
struct in6_addr local6, *local6_ptr = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Now try to get the lease file name. */
|
/* Now try to get the lease file name. */
|
||||||
option_state_allocate(&options, MDL);
|
option_state_allocate(&options, MDL);
|
||||||
@@ -969,6 +974,35 @@ void postconf_initialization (int quiet)
|
|||||||
if (ddns_update_style == DDNS_UPDATE_STYLE_AD_HOC) {
|
if (ddns_update_style == DDNS_UPDATE_STYLE_AD_HOC) {
|
||||||
log_fatal("ddns-update-style ad_hoc no longer supported");
|
log_fatal("ddns-update-style ad_hoc no longer supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
oc = lookup_option(&server_universe, options, SV_DDNS_LOCAL_ADDRESS4);
|
||||||
|
if (oc) {
|
||||||
|
if (evaluate_option_cache(&db, NULL, NULL, NULL, options, NULL,
|
||||||
|
&global_scope, oc, MDL)) {
|
||||||
|
if (db.len == 4) {
|
||||||
|
memcpy(&local4, db.data, 4);
|
||||||
|
local4_ptr = &local4;
|
||||||
|
}
|
||||||
|
data_string_forget(&db, MDL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oc = lookup_option(&server_universe, options, SV_DDNS_LOCAL_ADDRESS6);
|
||||||
|
if (oc) {
|
||||||
|
if (evaluate_option_cache(&db, NULL, NULL, NULL, options, NULL,
|
||||||
|
&global_scope, oc, MDL)) {
|
||||||
|
if (db.len == 16) {
|
||||||
|
memcpy(&local6, db.data, 16);
|
||||||
|
local6_ptr = &local6;
|
||||||
|
}
|
||||||
|
data_string_forget(&db, MDL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dhcp_context_create(DHCP_CONTEXT_POST_DB, local4_ptr, local6_ptr)
|
||||||
|
!= ISC_R_SUCCESS)
|
||||||
|
log_fatal("Unable to complete ddns initialization");
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/* If we don't have support for updates compiled in tell the user */
|
/* If we don't have support for updates compiled in tell the user */
|
||||||
if (ddns_update_style != DDNS_UPDATE_STYLE_NONE) {
|
if (ddns_update_style != DDNS_UPDATE_STYLE_NONE) {
|
||||||
|
@@ -1973,10 +1973,23 @@ appended to the client's hostname to form a fully-qualified
|
|||||||
domain-name (FQDN).
|
domain-name (FQDN).
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
|
The \fddns-local-address4\fR and \fddns-local-address6\fR statements
|
||||||
|
.RS 0.25i
|
||||||
|
.PP
|
||||||
|
.B ddns-local-address4 \fIaddress\fB;\fR
|
||||||
|
.PP
|
||||||
|
.B ddns-local-address6 \fIaddress\fB;\fR
|
||||||
|
.PP
|
||||||
|
The \fIaddress\fR parameter should be the local IPv4 or IPv6 address
|
||||||
|
the server should use as the from address when sending DDNS update
|
||||||
|
requests.
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
The \fIddns-rev-domainname\fR statement
|
The \fIddns-rev-domainname\fR statement
|
||||||
.RS 0.25i
|
.RS 0.25i
|
||||||
.PP
|
.PP
|
||||||
.B ddns-rev-domainname \fIname\fB;\fR
|
.B ddns-rev-domainname \fIname\fB;\fR
|
||||||
|
.PP
|
||||||
The \fIname\fR parameter should be the domain name that will be
|
The \fIname\fR parameter should be the domain name that will be
|
||||||
appended to the client's reversed IP address to produce a name for use
|
appended to the client's reversed IP address to produce a name for use
|
||||||
in the client's PTR record. By default, this is "in-addr.arpa.", but
|
in the client's PTR record. By default, this is "in-addr.arpa.", but
|
||||||
@@ -2043,6 +2056,7 @@ statements
|
|||||||
.RS 0.25i
|
.RS 0.25i
|
||||||
.PP
|
.PP
|
||||||
.B delayed-ack \fIcount\fR\fB;\fR
|
.B delayed-ack \fIcount\fR\fB;\fR
|
||||||
|
.PP
|
||||||
.B max-ack-delay \fImicroseconds\fR\fB;\fR
|
.B max-ack-delay \fImicroseconds\fR\fB;\fR
|
||||||
.PP
|
.PP
|
||||||
.I Count
|
.I Count
|
||||||
|
@@ -268,6 +268,10 @@ static struct option server_options[] = {
|
|||||||
#endif /* LDAP_CONFIGURATION */
|
#endif /* LDAP_CONFIGURATION */
|
||||||
{ "dhcp-cache-threshold", "B", &server_universe, 78, 1 },
|
{ "dhcp-cache-threshold", "B", &server_universe, 78, 1 },
|
||||||
{ "dont-use-fsync", "f", &server_universe, 79, 1 },
|
{ "dont-use-fsync", "f", &server_universe, 79, 1 },
|
||||||
|
|
||||||
|
{ "ddns-local-address4", "I", &server_universe, 80, 1 },
|
||||||
|
{ "ddns-local-address6", "6", &server_universe, 81, 1 },
|
||||||
|
|
||||||
{ NULL, NULL, NULL, 0, 0 }
|
{ NULL, NULL, NULL, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -51,7 +51,8 @@ ATF_TC_BODY(iaaddr_basic, tc)
|
|||||||
struct iasubopt *iaaddr_copy;
|
struct iasubopt *iaaddr_copy;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
iaaddr = NULL;
|
iaaddr = NULL;
|
||||||
@@ -95,7 +96,8 @@ ATF_TC_BODY(iaaddr_negative, tc)
|
|||||||
struct iasubopt *iaaddr_copy;
|
struct iasubopt *iaaddr_copy;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* tests */
|
/* tests */
|
||||||
/* bogus allocate arguments */
|
/* bogus allocate arguments */
|
||||||
@@ -156,7 +158,8 @@ ATF_TC_BODY(ia_na_basic, tc)
|
|||||||
struct iasubopt *iaaddr;
|
struct iasubopt *iaaddr;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
iaid = 666;
|
iaid = 666;
|
||||||
@@ -219,7 +222,8 @@ ATF_TC_BODY(ia_na_manyaddrs, tc)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* tests */
|
/* tests */
|
||||||
/* lots of iaaddr that we delete */
|
/* lots of iaaddr that we delete */
|
||||||
@@ -294,7 +298,8 @@ ATF_TC_BODY(ia_na_negative, tc)
|
|||||||
struct ia_xx *ia_na_copy;
|
struct ia_xx *ia_na_copy;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* tests */
|
/* tests */
|
||||||
/* bogus allocate arguments */
|
/* bogus allocate arguments */
|
||||||
@@ -370,7 +375,8 @@ ATF_TC_BODY(ipv6_pool_basic, tc)
|
|||||||
unsigned int attempts;
|
unsigned int attempts;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
@@ -515,7 +521,8 @@ ATF_TC_BODY(ipv6_pool_negative, tc)
|
|||||||
struct ipv6_pool *pool_copy;
|
struct ipv6_pool *pool_copy;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
@@ -574,7 +581,8 @@ ATF_TC_BODY(expire_order, tc)
|
|||||||
unsigned int attempts;
|
unsigned int attempts;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
@@ -673,7 +681,8 @@ ATF_TC_BODY(expire_order_reduce, tc)
|
|||||||
unsigned int attempts;
|
unsigned int attempts;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
@@ -794,7 +803,8 @@ ATF_TC_BODY(small_pool, tc)
|
|||||||
unsigned int attempts;
|
unsigned int attempts;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
@@ -865,7 +875,8 @@ ATF_TC_BODY(many_pools, tc)
|
|||||||
struct ipv6_pool *pool;
|
struct ipv6_pool *pool;
|
||||||
|
|
||||||
/* set up dhcp globals */
|
/* set up dhcp globals */
|
||||||
dhcp_context_create();
|
dhcp_context_create(DHCP_CONTEXT_PRE_DB | DHCP_CONTEXT_POST_DB,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
/* and other common arguments */
|
/* and other common arguments */
|
||||||
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
inet_pton(AF_INET6, "1:2:3:4::", &addr);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright (C) 2009-2012 Internet Systems Consortium, Inc. ("ISC")
|
# Copyright (C) 2009-2013 Internet Systems Consortium, Inc. ("ISC")
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and/or distribute this software for any
|
# Permission to use, copy, modify, and/or distribute this software for any
|
||||||
# purpose with or without fee is hereby granted, provided that the above
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -50,6 +50,7 @@ case $# in
|
|||||||
### be used to chdir down into the directory that is unpacked.
|
### be used to chdir down into the directory that is unpacked.
|
||||||
###
|
###
|
||||||
v4_2) noSNAP=snapshot BINDTAG=v9_8 ;;
|
v4_2) noSNAP=snapshot BINDTAG=v9_8 ;;
|
||||||
|
v4_3) noSNAP=snapshot BINDTAG=v9_9 ;;
|
||||||
### change to using the head of v9_9 until we upgrade DHCP
|
### change to using the head of v9_9 until we upgrade DHCP
|
||||||
### to use shared libraries
|
### to use shared libraries
|
||||||
HEAD|v[0-9]_[0-9].*) noSNAP=snapshot BINDTAG=v9_9 ;;
|
HEAD|v[0-9]_[0-9].*) noSNAP=snapshot BINDTAG=v9_9 ;;
|
||||||
@@ -58,6 +59,7 @@ case $# in
|
|||||||
### For ease of use, this records the sticky tag of versions
|
### For ease of use, this records the sticky tag of versions
|
||||||
### released with each point release.
|
### released with each point release.
|
||||||
###
|
###
|
||||||
|
4.3.0a1) BINDTAG=v9_9 ;;
|
||||||
4.2.6b1) BINDTAG=v9_8_6 ;;
|
4.2.6b1) BINDTAG=v9_8_6 ;;
|
||||||
4.2.5b1|4.2.5rc1) BINDTAG=v9_8_4_P1 ;;
|
4.2.5b1|4.2.5rc1) BINDTAG=v9_8_4_P1 ;;
|
||||||
4.2.4rc2|4.2.4) BINDTAG=v9_8_3 ;;
|
4.2.4rc2|4.2.4) BINDTAG=v9_8_3 ;;
|
||||||
|
Reference in New Issue
Block a user