BIND 10 master, updated. cbb1e342dfef163cef8dba429aa8841093aff7af [master] Explicitly initialize all struct members.
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Dec 11 18:53:31 UTC 2012
The branch, master has been updated
via cbb1e342dfef163cef8dba429aa8841093aff7af (commit)
from a2b2bf47cbbe033774013a875e3197c37fd71cce (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit cbb1e342dfef163cef8dba429aa8841093aff7af
Author: Marcin Siodelski <marcin at isc.org>
Date: Tue Dec 11 18:28:32 2012 +0100
[master] Explicitly initialize all struct members.
This change is to satisfy Solaris which issues warning about some struct
members being uninitialized and causing build to fail.
-----------------------------------------------------------------------
Summary of changes:
src/lib/dhcp/std_option_defs.h | 99 ++++++++++++++++++++++++++--------------
1 file changed, 64 insertions(+), 35 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/dhcp/std_option_defs.h b/src/lib/dhcp/std_option_defs.h
index f604ea3..d66dcf8 100644
--- a/src/lib/dhcp/std_option_defs.h
+++ b/src/lib/dhcp/std_option_defs.h
@@ -36,6 +36,10 @@ namespace {
#define RECORD_DEF(name) name, sizeof(name) / sizeof(name[0])
#endif
+#ifndef NO_RECORD_DEF
+#define NO_RECORD_DEF 0, 0
+#endif
+
using namespace isc::dhcp;
/// @brief Parameters being used to make up an option definition.
@@ -76,70 +80,95 @@ RECORD_DECL(vendorClassRecords, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
// vendor-opts
RECORD_DECL(vendorOptsRecords, OPT_UINT32_TYPE, OPT_BINARY_TYPE);
-/// Stdandard DHCPv6 option definitions.
+/// Standard DHCPv6 option definitions.
+///
+/// @warning in this array, the initializers are provided for all
+/// OptionDefParams struct's members despite initializers for
+/// 'records' and 'record_size' could be ommited for entries for
+/// which 'type' does not equal to OPT_RECORD_TYPE. If initializers
+/// are ommitted the corresponding values should default to 0.
+/// This however does not work on Solaris (GCC) which issues a
+/// warning about lack of initializers for some struct members
+/// causing build to fail.
static const OptionDefParams OPTION_DEF_PARAMS6[] = {
- { "clientid", D6O_CLIENTID, OPT_BINARY_TYPE, false },
- { "serverid", D6O_SERVERID, OPT_BINARY_TYPE, false },
+ { "clientid", D6O_CLIENTID, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
+ { "serverid", D6O_SERVERID, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
{ "ia-na", D6O_IA_NA, OPT_RECORD_TYPE, false, RECORD_DEF(ianaRecords) },
- { "ia-ta", D6O_IA_TA, OPT_UINT32_TYPE, false },
+ { "ia-ta", D6O_IA_TA, OPT_UINT32_TYPE, false, NO_RECORD_DEF },
{ "iaaddr", D6O_IAADDR, OPT_RECORD_TYPE, false, RECORD_DEF(iaaddrRecords) },
- { "oro", D6O_ORO, OPT_UINT16_TYPE, true },
- { "preference", D6O_PREFERENCE, OPT_UINT8_TYPE, false },
- { "elapsed-time", D6O_ELAPSED_TIME, OPT_UINT16_TYPE, false },
- { "relay-msg", D6O_RELAY_MSG, OPT_BINARY_TYPE, false },
+ { "oro", D6O_ORO, OPT_UINT16_TYPE, true, NO_RECORD_DEF },
+ { "preference", D6O_PREFERENCE, OPT_UINT8_TYPE, false, NO_RECORD_DEF },
+ { "elapsed-time", D6O_ELAPSED_TIME, OPT_UINT16_TYPE, false, NO_RECORD_DEF },
+ { "relay-msg", D6O_RELAY_MSG, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
// Unfortunatelly the AUTH option contains a 64-bit data field
// called 'replay-detection' that can't be added as a record
// field to a custom option. Also, there is no dedicated
// option class to handle it so we simply return binary
// option type for now.
// @todo implement a class to handle AUTH option.
- { "auth", D6O_AUTH, OPT_BINARY_TYPE, false },
- { "unicast", D6O_UNICAST, OPT_IPV6_ADDRESS_TYPE, false },
+ { "auth", D6O_AUTH, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
+ { "unicast", D6O_UNICAST, OPT_IPV6_ADDRESS_TYPE, false, NO_RECORD_DEF },
{ "status-code", D6O_STATUS_CODE, OPT_RECORD_TYPE, false,
RECORD_DEF(statusCodeRecords) },
- { "rapid-commit", D6O_RAPID_COMMIT, OPT_EMPTY_TYPE, false },
- { "user-class", D6O_USER_CLASS, OPT_BINARY_TYPE, false },
+ { "rapid-commit", D6O_RAPID_COMMIT, OPT_EMPTY_TYPE, false, NO_RECORD_DEF },
+ { "user-class", D6O_USER_CLASS, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
{ "vendor-class", D6O_VENDOR_CLASS, OPT_RECORD_TYPE, false,
RECORD_DEF(vendorClassRecords) },
{ "vendor-opts", D6O_VENDOR_OPTS, OPT_RECORD_TYPE, false,
RECORD_DEF(vendorOptsRecords) },
- { "interface-id", D6O_INTERFACE_ID, OPT_BINARY_TYPE, false },
- { "reconf-msg", D6O_RECONF_MSG, OPT_UINT8_TYPE, false },
- { "reconf-accept", D6O_RECONF_ACCEPT, OPT_EMPTY_TYPE, false },
- { "sip-server-dns", D6O_SIP_SERVERS_DNS, OPT_FQDN_TYPE, true },
- { "sip-server-addr", D6O_SIP_SERVERS_ADDR, OPT_IPV6_ADDRESS_TYPE, true },
- { "dns-servers", D6O_NAME_SERVERS, OPT_IPV6_ADDRESS_TYPE, true },
- { "domain-search", D6O_DOMAIN_SEARCH, OPT_FQDN_TYPE, true },
+ { "interface-id", D6O_INTERFACE_ID, OPT_BINARY_TYPE, false, NO_RECORD_DEF },
+ { "reconf-msg", D6O_RECONF_MSG, OPT_UINT8_TYPE, false, NO_RECORD_DEF },
+ { "reconf-accept", D6O_RECONF_ACCEPT, OPT_EMPTY_TYPE, false,
+ NO_RECORD_DEF },
+ { "sip-server-dns", D6O_SIP_SERVERS_DNS, OPT_FQDN_TYPE, true,
+ NO_RECORD_DEF },
+ { "sip-server-addr", D6O_SIP_SERVERS_ADDR, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
+ { "dns-servers", D6O_NAME_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
+ { "domain-search", D6O_DOMAIN_SEARCH, OPT_FQDN_TYPE, true, NO_RECORD_DEF },
{ "ia-pd", D6O_IA_PD, OPT_RECORD_TYPE, false, RECORD_DEF(iapdRecords) },
{ "iaprefix", D6O_IAPREFIX, OPT_RECORD_TYPE, false,
RECORD_DEF(iaPrefixRecords) },
- { "nis-servers", D6O_NIS_SERVERS, OPT_IPV6_ADDRESS_TYPE, true },
- { "nisp-servers", D6O_NISP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true },
- { "nis-domain-name", D6O_NIS_DOMAIN_NAME, OPT_FQDN_TYPE, true },
- { "nisp-domain-name", D6O_NISP_DOMAIN_NAME, OPT_FQDN_TYPE, true },
- { "sntp-servers", D6O_SNTP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true },
+ { "nis-servers", D6O_NIS_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
+ { "nisp-servers", D6O_NISP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
+ { "nis-domain-name", D6O_NIS_DOMAIN_NAME, OPT_FQDN_TYPE, true,
+ NO_RECORD_DEF },
+ { "nisp-domain-name", D6O_NISP_DOMAIN_NAME, OPT_FQDN_TYPE, true,
+ NO_RECORD_DEF },
+ { "sntp-servers", D6O_SNTP_SERVERS, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
{ "information-refresh-time", D6O_INFORMATION_REFRESH_TIME,
- OPT_UINT32_TYPE, false },
- { "bcmcs-server-dns", D6O_BCMCS_SERVER_D, OPT_FQDN_TYPE, true },
- { "bcmcs-server-addr", D6O_BCMCS_SERVER_A, OPT_IPV6_ADDRESS_TYPE, true },
+ OPT_UINT32_TYPE, false, NO_RECORD_DEF },
+ { "bcmcs-server-dns", D6O_BCMCS_SERVER_D, OPT_FQDN_TYPE, true,
+ NO_RECORD_DEF },
+ { "bcmcs-server-addr", D6O_BCMCS_SERVER_A, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
{ "geoconf-civic", D6O_GEOCONF_CIVIC, OPT_RECORD_TYPE, false,
RECORD_DEF(geoconfCivicRecords) },
{ "remote-id", D6O_REMOTE_ID, OPT_RECORD_TYPE, false,
RECORD_DEF(remoteIdRecords) },
- { "subscriber-id", D6O_SUBSCRIBER_ID, OPT_BINARY_TYPE, false },
+ { "subscriber-id", D6O_SUBSCRIBER_ID, OPT_BINARY_TYPE, false,
+ NO_RECORD_DEF },
{ "client-fqdn", D6O_CLIENT_FQDN, OPT_RECORD_TYPE, false,
RECORD_DEF(clientFqdnRecords) },
- { "pana-agent", D6O_PANA_AGENT, OPT_IPV6_ADDRESS_TYPE, true },
- { "new-posix-timezone", D6O_NEW_POSIX_TIMEZONE, OPT_STRING_TYPE, false },
- { "new-tzdb-timezone", D6O_NEW_TZDB_TIMEZONE, OPT_STRING_TYPE, false },
- { "ero", D6O_ERO, OPT_UINT16_TYPE, true },
+ { "pana-agent", D6O_PANA_AGENT, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF },
+ { "new-posix-timezone", D6O_NEW_POSIX_TIMEZONE, OPT_STRING_TYPE, false,
+ NO_RECORD_DEF },
+ { "new-tzdb-timezone", D6O_NEW_TZDB_TIMEZONE, OPT_STRING_TYPE, false,
+ NO_RECORD_DEF },
+ { "ero", D6O_ERO, OPT_UINT16_TYPE, true, NO_RECORD_DEF },
{ "lq-query", D6O_LQ_QUERY, OPT_RECORD_TYPE, false,
RECORD_DEF(lqQueryRecords) },
- { "client-data", D6O_CLIENT_DATA, OPT_EMPTY_TYPE, false },
- { "clt-time", D6O_CLT_TIME, OPT_UINT32_TYPE, false },
+ { "client-data", D6O_CLIENT_DATA, OPT_EMPTY_TYPE, false, NO_RECORD_DEF },
+ { "clt-time", D6O_CLT_TIME, OPT_UINT32_TYPE, false, NO_RECORD_DEF },
{ "lq-relay-data", D6O_LQ_RELAY_DATA, OPT_RECORD_TYPE, false,
RECORD_DEF(lqRelayData) },
- { "lq-client-link", D6O_LQ_CLIENT_LINK, OPT_IPV6_ADDRESS_TYPE, true }
+ { "lq-client-link", D6O_LQ_CLIENT_LINK, OPT_IPV6_ADDRESS_TYPE, true,
+ NO_RECORD_DEF }
// @todo There is still a bunch of options for which we have to provide
// definitions but we don't do it because they are not really
More information about the bind10-changes
mailing list