Commit 80cef0fd authored by Shawn Routhier's avatar Shawn Routhier
Browse files

Minor code cleanups - but note port change for #23196

[ISC-Bugs #23470] - Modify when an ignore return macro is defined to
handle unsed error return warnings for more versions of gcc.
[ISC-Bugs #23196] - Modify the reply handling in the server code to
send to a specified port rather than to the source port for the incoming
message.  Sending to the source port was test code that should have
been removed.  The previous functionality may be restored by defining
REPLY_TO_SOURCE_PORT in the includes/site.h file.  We suggest you don't
enable this except for testing purposes.
[ISC-Bugs #22695] - Close a file descriptor in an error path.
[ISC-Bugs #19368] - Tidy up variable types in validate_port.
parent 97837440
......@@ -148,6 +148,18 @@ work on other platforms. Please report any problems and suggested fixes to
rather than sockaddr. Packet etherType is now forced to ETH_P_IP.
[ISC-Bugs #18975]
- Minor code cleanups - but note port change for #23196
[ISC-Bugs #23470] - Modify when an ignore return macro is defined to
handle unsed error return warnings for more versions of gcc.
[ISC-Bugs #23196] - Modify the reply handling in the server code to
send to a specified port rather than to the source port for the incoming
message. Sending to the source port was test code that should have
been removed. The previous functionality may be restored by defining
REPLY_TO_SOURCE_PORT in the includes/site.h file. We suggest you don't
enable this except for testing purposes.
[ISC-Bugs #22695] - Close a file descriptor in an error path.
[ISC-Bugs #19368] - Tidy up variable types in validate_port.
Changes since 4.1-ESV-R1
! In dhclient check the data for some string options for
......
......@@ -3430,9 +3430,10 @@ void write_client_pid_file ()
}
pf = fdopen (pfdesc, "w");
if (!pf)
if (!pf) {
close(pfdesc);
log_error ("Can't fdopen %s: %m", path_dhclient_pid);
else {
} else {
fprintf (pf, "%ld\n", (long)getpid ());
fclose (pf);
}
......
......@@ -4,8 +4,9 @@
way... */
/*
* Copyright (c) 2004,2005,2007-2009 by
* Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2011 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2007-2009 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2004,2005 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1995-2003 by Internet Software Consortium
*
* Permission to use, copy, modify, and distribute this software for any
......@@ -611,9 +612,9 @@ piaddrcidr(const struct iaddr *addr, unsigned int bits) {
u_int16_t
validate_port(char *port) {
int local_port = 0;
int lower = 1;
int upper = 65535;
long local_port = 0;
long lower = 1;
long upper = 65535;
char *endptr;
errno = 0;
......@@ -623,8 +624,8 @@ validate_port(char *port) {
log_fatal ("Invalid port number specification: %s", port);
if (local_port < lower || local_port > upper)
log_fatal("Port number specified is out of range (%d-%d).",
log_fatal("Port number specified is out of range (%ld-%ld).",
lower, upper);
return htons(local_port);
return htons((u_int16_t)local_port);
}
......@@ -4,6 +4,7 @@
/*
* Copyright (c) 1995 RadioMail Corporation. All rights reserved.
* Copyright (c) 2011 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 2004,2009 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1996-2003 by Internet Software Consortium
*
......@@ -62,8 +63,7 @@
* these warnings prohibit the compilation of the package. This macro
* allows us to assign the return value to a variable and then ignore it.
*/
#if !defined(__GNUC__) || (__GNUC__ < 4) || \
((__GNUC__ == 4) && (__GNUC_MINOR__ < 3))
#if !defined(__GNUC__) || (__GNUC__ < 4)
#define IGNORE_RET(x) (void) x
#else
#define IGNORE_RET(x) \
......
......@@ -195,3 +195,8 @@
traces. */
/* #define TRACING */
/* Define this if you want a DHCPv6 server to send replies to the
source port of the message it received. This is useful for testing
but is only included for backwards compatibility. */
/* #define REPLY_TO_SOURCE_PORT */
......@@ -5863,8 +5863,18 @@ dhcpv6(struct packet *packet) {
} else {
to_addr.sin6_port = remote_port;
}
/* For testing, we reply to the sending port, so we don't need a root client */
#if defined (REPLY_TO_SOURCE_PORT)
/*
* This appears to have been included for testing so we would
* not need a root client, but was accidently left in the
* final code. We continue to include it in case
* some users have come to rely upon it, but leave
* it off by default as it's a bad idea.
*/
to_addr.sin6_port = packet->client_port;
#endif
memcpy(&to_addr.sin6_addr, packet->client_addr.iabuf,
sizeof(to_addr.sin6_addr));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment