From b22ebf5be980456c5b19b4704afef3ab4a9ca116 Mon Sep 17 00:00:00 2001 From: Dave Thaler Date: Thu, 25 Aug 2016 18:13:24 -0700 Subject: [PATCH] Fixes for build errors hit by some versions of Visual Studio Change-Id: Id8bcb4a5cd65d855b8e371c981f1c9bb4e6ed26d Signed-off-by: Dave Thaler Reviewed-on: https://gerrit.iotivity.org/gerrit/10929 Tested-by: jenkins-iotivity Reviewed-by: Soemin Tjong Reviewed-by: David Antler Reviewed-by: Dan Mihai --- extlibs/tinydtls/dtls.c | 3 ++- resource/csdk/connectivity/src/ip_adapter/caipserver.c | 10 +++++++--- resource/csdk/stack/src/oicgroup.c | 6 ++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/extlibs/tinydtls/dtls.c b/extlibs/tinydtls/dtls.c index cb6cb8c..3b593ce 100644 --- a/extlibs/tinydtls/dtls.c +++ b/extlibs/tinydtls/dtls.c @@ -4301,6 +4301,7 @@ handle_ccs(dtls_context_t *ctx, dtls_peer_t *peer, uint8 *record_header, uint8 *data, size_t data_length) { int err; + dtls_handshake_parameters_t *handshake; /* A CCS message is handled after a KeyExchange message was * received from the client. When security parameters have been @@ -4316,7 +4317,7 @@ handle_ccs(dtls_context_t *ctx, dtls_peer_t *peer, if (data_length < 1 || data[0] != 1) return dtls_alert_fatal_create(DTLS_ALERT_DECODE_ERROR); - dtls_handshake_parameters_t *handshake = peer->handshake_params; + handshake = peer->handshake_params; /* Just change the cipher when we are on the same epoch */ if (peer->role == DTLS_SERVER) { err = calculate_key_block(ctx, handshake, peer, diff --git a/resource/csdk/connectivity/src/ip_adapter/caipserver.c b/resource/csdk/connectivity/src/ip_adapter/caipserver.c index f953689..1cca9fe 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipserver.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipserver.c @@ -1008,7 +1008,7 @@ static void applyMulticastToInterface4(uint32_t ifindex) .imr_address.s_addr = htonl(INADDR_ANY), .imr_ifindex = ifindex }; #else - struct ip_mreq mreq = { .imr_multiaddr = IPv4MulticastAddress, + struct ip_mreq mreq = { .imr_multiaddr.s_addr = IPv4MulticastAddress.s_addr, .imr_interface.s_addr = htonl(ifindex) }; #endif @@ -1040,8 +1040,12 @@ static void applyMulticastToInterface4(uint32_t ifindex) static void applyMulticast6(int fd, struct in6_addr *addr, uint32_t ifindex) { - struct ipv6_mreq mreq = {.ipv6mr_multiaddr = *addr, + struct ipv6_mreq mreq = {.ipv6mr_multiaddr = {0}, .ipv6mr_interface = ifindex }; + + // VS2013 has problems with struct copies inside struct initializers, so copy separately. + mreq.ipv6mr_multiaddr = *addr; + int ret = setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, OPTVAL_T(&mreq), sizeof (mreq)); if (OC_SOCKET_ERROR == ret) { @@ -1338,7 +1342,7 @@ static void sendMulticastData4(const u_arraylist_t *iflist, .imr_address.s_addr = htonl(INADDR_ANY), .imr_ifindex = 0}; #else - struct ip_mreq mreq = { .imr_multiaddr = IPv4MulticastAddress, + struct ip_mreq mreq = { .imr_multiaddr.s_addr = IPv4MulticastAddress.s_addr, .imr_interface = {0}}; #endif diff --git a/resource/csdk/stack/src/oicgroup.c b/resource/csdk/stack/src/oicgroup.c index a2968cd..8a9e443 100755 --- a/resource/csdk/stack/src/oicgroup.c +++ b/resource/csdk/stack/src/oicgroup.c @@ -436,11 +436,13 @@ void DeleteAction(OCAction** action) void DeleteActionSet(OCActionSet** actionset) { + OCAction* pointer = NULL; + OCAction* pDel = NULL; + if(*actionset == NULL) return; - OCAction* pointer = (*actionset)->head; - OCAction* pDel = NULL; + pointer = (*actionset)->head; while (pointer) { -- 2.7.4