Merge branch 'master' into windows-port
authorDavid Antler <david.a.antler@intel.com>
Thu, 2 Jun 2016 17:59:35 +0000 (10:59 -0700)
committerDavid Antler <david.a.antler@intel.com>
Thu, 2 Jun 2016 17:59:35 +0000 (10:59 -0700)
Change-Id: Ideba675f1379a9044e9a7668ad72a34953d26767
Signed-off-by: David Antler <david.a.antler@intel.com>
23 files changed:
1  2 
extlibs/tinydtls/dtls.c
extlibs/tinydtls/hmac.h
resource/csdk/connectivity/api/cacommon.h
resource/csdk/connectivity/src/ip_adapter/arduino/caipserver_eth.cpp
resource/csdk/connectivity/src/ip_adapter/arduino/caipserver_wifi.cpp
resource/csdk/connectivity/src/ip_adapter/caipserver.c
resource/csdk/security/provisioning/src/ownershiptransfermanager.c
resource/csdk/security/provisioning/src/pmutility.c
resource/csdk/security/provisioning/src/secureresourceprovider.c
resource/csdk/stack/include/octypes.h
resource/csdk/stack/include/payload_logging.h
resource/csdk/stack/samples/linux/SimpleClientServer/ocserver.cpp
resource/csdk/stack/samples/linux/secure/SConscript
resource/csdk/stack/samples/linux/secure/occlientbasicops.cpp
resource/csdk/stack/src/occlientcb.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/ocstack.c
resource/csdk/stack/test/stacktests.cpp
resource/include/AttributeValue.h
resource/include/OCApi.h
resource/include/OCRepresentation.h
resource/src/InProcClientWrapper.cpp
resource/src/OCRepresentation.cpp

Simple merge
   *  see http://www.aarongifford.com/ */
  #include "sha2/sha2.h"
  
- typedef DTLS_SHA256_CTX dtls_hash_ctx;
+ typedef dtls_sha256_ctx dtls_hash_ctx;
  typedef dtls_hash_ctx *dtls_hash_t;
- #define DTLS_HASH_CTX_SIZE sizeof(DTLS_SHA256_CTX)
+ #define DTLS_HASH_CTX_SIZE sizeof(dtls_sha256_ctx)
  
 -static inline void
 +INLINE_API void
  dtls_hash_init(dtls_hash_t ctx) {
-   DTLS_SHA256_Init((DTLS_SHA256_CTX *)ctx);
+   dtls_sha256_init((dtls_sha256_ctx *)ctx);
  }
  
 -static inline void 
 +INLINE_API void 
  dtls_hash_update(dtls_hash_t ctx, const unsigned char *input, size_t len) {
-   DTLS_SHA256_Update((DTLS_SHA256_CTX *)ctx, input, len);
+   dtls_sha256_update((dtls_sha256_ctx *)ctx, input, len);
  }
  
 -static inline size_t
 +INLINE_API size_t
  dtls_hash_finalize(unsigned char *buf, dtls_hash_t ctx) {
-   DTLS_SHA256_Final(buf, (DTLS_SHA256_CTX *)ctx);
+   dtls_sha256_final(buf, (dtls_sha256_ctx *)ctx);
    return DTLS_SHA256_DIGEST_LENGTH;
  }
  #endif /* WITH_SHA256 */
@@@ -117,33 -96,13 +117,33 @@@ static char *ipv6mcnames[IPv6_DOMAINS] 
      NULL
  };
  
 -static CAIPPacketReceivedCallback g_packetReceivedCallback = NULL;
 +#if defined (_WIN32)
 +#define IFF_UP_RUNNING_FLAGS  (IFF_UP)
  
- static CAIPExceptionCallback g_exceptionCallback;
 +    char* caips_get_error(){
 +        static char buffer[32];
 +        snprintf(buffer, 32, "%i", WSAGetLastError());
 +        return buffer;
 +    }
 +#define CAIPS_GET_ERROR \
 +    caips_get_error()
 +#else
 +#define IFF_UP_RUNNING_FLAGS  (IFF_UP|IFF_RUNNING)
 +
 +#define CAIPS_GET_ERROR \
 +    strerror(errno)
 +#endif
+ static CAIPErrorHandleCallback g_ipErrorHandler = NULL;
  
- static CAIPPacketReceivedCallback g_packetReceivedCallback;
++static CAIPPacketReceivedCallback g_packetReceivedCallback = NULL;
 +
  static void CAHandleNetlink();
  static void CAFindReadyMessage();
 +#if !defined(WSA_WAIT_EVENT_0)
  static void CASelectReturned(fd_set *readFds, int ret);
 +#else
 +static void CAEventReturned(HANDLE);
 +#endif
  static void CAProcessNewInterface(CAInterface_t *ifchanged);
  static CAResult_t CAReceiveMessage(int fd, CATransportFlags_t flags);
  
@@@ -1206,11 -840,7 +1205,10 @@@ static void sendData(int fd, const CAEn
      }
  
      char *secure = (endpoint->flags & CA_SECURE) ? "secure " : "";
 -    (void)secure;   // eliminates release warning
 +
-     (void)secure;   // eliminates release warning
-     (void)cast;
++    (void)cast;  // eliminates release warning
 +    (void)fam;
 +
      struct sockaddr_storage sock;
      CAConvertNameToAddr(endpoint->addr, endpoint->port, &sock);
  
      ssize_t len = sendto(fd, data, dlen, 0, (struct sockaddr *)&sock, socklen);
      if (-1 == len)
      {
 -        (void)cast;
 -        (void)fam;
+          // If logging is not defined/enabled.
+         if (g_ipErrorHandler)
+         {
+             g_ipErrorHandler(endpoint, data, dlen, CA_SEND_FAILED);
+         }
          OIC_LOG_V(ERROR, TAG, "%s%s %s sendTo failed: %s", secure, cast, fam, strerror(errno));
      }
      else
      {
          OIC_LOG_V(INFO, TAG, "%s%s %s sendTo is successful: %zd bytes", secure, cast, fam, len);
      }
 +#else
 +    int err = 0;
 +    int len = 0;
 +    int sent = 0;
 +    do {
 +        len = sendto(fd, ((char*)data) + sent, dlen - sent, 0, (struct sockaddr *)&sock, socklen);
 +        if (SOCKET_ERROR == len)
 +        {
 +            err = WSAGetLastError();
 +            if ((WSAEWOULDBLOCK != err) && (WSAENOBUFS != err))
 +            {
++                 // If logging is not defined/enabled.
++                if (g_ipErrorHandler)
++                {
++                    g_ipErrorHandler(endpoint, data, dlen, CA_SEND_FAILED);
++                }
++
 +                OIC_LOG_V(ERROR, TAG, "%s%s %s sendTo failed: %i", secure, cast, fam, err);
 +            }
 +        }
 +        else
 +        {
 +            sent += len;
 +            if (sent != len)
 +            {
 +                OIC_LOG_V(DEBUG, TAG, "%s%s %s sendTo (Partial Send) is successful: "
 +                                      "currently sent: %ld bytes, "
 +                                      "total sent: %ld bytes, "
 +                                      "remaining: %ld bytes",
 +                                      secure, cast, fam, len, sent, dlen-sent);
 +            }
 +            else
 +            {
 +                OIC_LOG_V(INFO, TAG, "%s%s %s sendTo is successful: %ld bytes",
 +                                     secure, cast, fam, len);
 +            }
 +        }
 +    } while ((SOCKET_ERROR == len) && ((WSAEWOULDBLOCK == err) || (WSAENOBUFS == err)) || (sent < dlen));
 +#endif
  }
  
  static void sendMulticastData6(const u_arraylist_t *iflist,
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -126,9 -130,15 +130,15 @@@ namespace O
      template<>
      struct AttributeTypeConvert<OCRepresentation>
      {
 -        constexpr static AttributeType type = AttributeType::OCRepresentation;
 +        BOOST_STATIC_CONSTEXPR AttributeType type = AttributeType::OCRepresentation;
      };
  
+     template<>
+     struct AttributeTypeConvert<std::vector<uint8_t>>
+     {
+         constexpr static AttributeType type = AttributeType::Binary;
+     };
      std::ostream& operator << (std::ostream& os, const AttributeType at);
  }
  #endif // OC_ATTRIBUTEVALUE_H_
Simple merge
Simple merge
Simple merge
Simple merge