2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-31 06:15:55 +00:00

- The client leasing subsystem was streamlined and corrected to account

more closely for changes in client link attachment selection.
  [ISC-Bugs #17198]
This commit is contained in:
David Hankins
2007-10-24 00:54:12 +00:00
parent c71c6399b1
commit 5279b8f3ee
7 changed files with 1279 additions and 902 deletions

View File

@@ -64,6 +64,9 @@ suggested fixes to <dhcp-users@isc.org>.
- sendmsg()/recvmsg() control buffers are now declared in such a way to
ensure they are correctly aligned on all (esp. 64-bit) architectures.
- The client leasing subsystem was streamlined and corrected to account
more closely for changes in client link attachment selection.
Changes since 4.0.0a3
- The DHCP server no longer requires a "ddns-update-style" statement,

View File

@@ -1262,11 +1262,9 @@ int binding_scope_reference (ptr, bp, file, line)
/* Make a copy of the data in data_string, upping the buffer reference
count if there's a buffer. */
void data_string_copy (dest, src, file, line)
struct data_string *dest;
struct data_string *src;
const char *file;
int line;
void
data_string_copy(struct data_string *dest, const struct data_string *src,
const char *file, int line)
{
if (src -> buffer) {
buffer_reference (&dest -> buffer, src -> buffer, file, line);

View File

@@ -107,6 +107,9 @@ extern const int dhcpv6_type_name_max;
#define IA_NA_OFFSET 12 /* IAID, T1, T2, all 4 octets each */
#define IA_TA_OFFSET 4 /* IAID only, 4 octets */
/* Offsets into IAADDR's where Option spaces commence. */
#define IAADDR_OFFSET 24
/*
* DHCPv6 well-known multicast addressess, from section 5.1 of RFC 3315
*/
@@ -151,6 +154,9 @@ struct dhcpv6_packet {
unsigned char options[0];
};
/* Offset into DHCPV6 Reply packets where Options spaces commence. */
#define REPLY_OPTIONS_INDEX 4
/*
* Relay packet format, defined in section 7 of RFC 3315
*/

View File

@@ -1972,8 +1972,8 @@ int option_state_reference PROTO ((struct option_state **,
struct option_state *, const char *, int));
int option_state_dereference PROTO ((struct option_state **,
const char *, int));
void data_string_copy PROTO ((struct data_string *,
struct data_string *, const char *, int));
void data_string_copy(struct data_string *, const struct data_string *,
const char *, int);
void data_string_forget PROTO ((struct data_string *, const char *, int));
void data_string_truncate PROTO ((struct data_string *, int));
int executable_statement_allocate PROTO ((struct executable_statement **,

View File

@@ -4018,6 +4018,7 @@ parse_ia_na_declaration(struct parse *cfile) {
/* add to our various structures */
ia_na_add_iaaddr(ia_na, iaaddr, MDL);
ia_na_reference(&iaaddr->ia_na, ia_na, MDL);
pool = NULL;
if (find_ipv6_pool(&pool, &iaaddr->addr) != ISC_R_SUCCESS) {
inet_ntop(AF_INET6, &iaaddr->addr,

File diff suppressed because it is too large Load Diff

View File

@@ -297,7 +297,6 @@ ia_na_add_iaaddr(struct ia_na *ia_na, struct iaaddr *iaaddr,
iaaddr_reference(&(ia_na->iaaddr[ia_na->num_iaaddr]), iaaddr,
file, line);
ia_na->num_iaaddr++;
ia_na_reference(&iaaddr->ia_na, ia_na, file, line);
return ISC_R_SUCCESS;
}