2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-22 09:57:20 +00:00

[master] When opening a connection, if the socket can't be bound close it.

This commit is contained in:
Shawn Routhier 2016-07-28 21:11:24 -07:00
parent 6b797e44e9
commit 21f3982ab3
2 changed files with 8 additions and 0 deletions

View File

@ -121,6 +121,12 @@ by Eric Young (eay@cryptsoft.com).
in line with the call it will make to malloc(). in line with the call it will make to malloc().
[ISC-Bugs #40843] [ISC-Bugs #40843]
- If the failover socket can't be bound close it, otherwise if the
user configures an incorrect address in the failover stanza the
server will continue to open new sockets every 90 seconds until
it runs out.
[ISC-Bugs #42452]
Changes since 4.3.4b1 Changes since 4.3.4b1
- None - None

View File

@ -150,6 +150,7 @@ isc_result_t omapi_connect_list (omapi_object_t *c,
if (local_addr) { if (local_addr) {
/* Only do TCPv4 so far. */ /* Only do TCPv4 so far. */
if (local_addr -> addrtype != AF_INET) { if (local_addr -> addrtype != AF_INET) {
close(obj->socket);
omapi_connection_dereference (&obj, MDL); omapi_connection_dereference (&obj, MDL);
return DHCP_R_INVALIDARG; return DHCP_R_INVALIDARG;
} }
@ -168,6 +169,7 @@ isc_result_t omapi_connect_list (omapi_object_t *c,
sizeof local_sin) < 0) { sizeof local_sin) < 0) {
omapi_connection_object_t **objp = &obj; omapi_connection_object_t **objp = &obj;
omapi_object_t **o = (omapi_object_t **)objp; omapi_object_t **o = (omapi_object_t **)objp;
close(obj->socket);
omapi_object_dereference(o, MDL); omapi_object_dereference(o, MDL);
if (errno == EADDRINUSE) if (errno == EADDRINUSE)
return ISC_R_ADDRINUSE; return ISC_R_ADDRINUSE;