diff options
author | Tomek Mrugalski <tomek@isc.org> | 2011-04-13 09:53:26 +0000 |
---|---|---|
committer | Tomek Mrugalski <tomek@isc.org> | 2011-04-13 09:53:26 +0000 |
commit | c7aa4dd4a4a3434f6f6ce017d2f4391882730049 (patch) | |
tree | f0c946ee9110cbc809fe3853d7edd02958f11e9d /server/dhcpv6.c | |
parent | 7a1474f4f3d05bf27e55371d0cde5195e989d38d (diff) | |
download | isc-dhcp-c7aa4dd4a4a3434f6f6ce017d2f4391882730049.tar.gz |
DHCPv6 server now responds properly if client asks for a prefix that
is already assigned to a different client. [ISC-Bugs #23948]
Diffstat (limited to 'server/dhcpv6.c')
-rw-r--r-- | server/dhcpv6.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/server/dhcpv6.c b/server/dhcpv6.c index 50376b1a..83fa1adf 100644 --- a/server/dhcpv6.c +++ b/server/dhcpv6.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2010 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2006-2011 by Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -3708,7 +3708,9 @@ reply_process_try_prefix(struct reply_state *reply, continue; status = try_client_v6_prefix(&reply->lease, pool, &data_pref); - if (status == ISC_R_SUCCESS) + /* If we found it in this pool (either in use or available), + there is no need to look further. */ + if ( (status == ISC_R_SUCCESS) || (status == ISC_R_ADDRINUSE) ) break; } |