Merge branch 'polarssl-1.2' into polarssl-1.2-restricted
* polarssl-1.2:
Fix spurious #endif from previous cherry-pick
Fix macroization of inline in C++
Add missing warning in doc
Fix compile error in net.c with musl libc
diff --git a/ChangeLog b/ChangeLog
index 459897a..3ab052f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,11 @@
unless you allow third parties to pick trust CAs for client auth. Found by
Guido Vranken, Intelworks.
+Bugfix
+ * Fix compile error in net.c with musl libc. Found and patch provided by
+ zhasha (#278).
+ * Fix macroization of 'inline' keywork when building as C++. (#279)
+
Changes
* ssl_set_hostname() now rejects host names longer that 255 bytes (maximum
defined by RFC 1035)
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index e78f8d1..d50cb74 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -29,13 +29,10 @@
#include <string.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
#define POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 /**< The selected feature is not available. */
#define POLARSSL_ERR_CIPHER_BAD_INPUT_DATA -0x6100 /**< Bad input parameters to function. */
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index 3a18f8a..b7d8b6b 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -331,8 +331,9 @@
* If set, the X509 parser will not break-off when parsing an X509 certificate
* and encountering an unknown critical extension.
*
- * Uncomment to prevent an error.
+ * \warning Depending on your PKI use, enabling this can be a security risk!
*
+ * Uncomment to prevent an error.
#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
*/
diff --git a/include/polarssl/md.h b/include/polarssl/md.h
index e94f9be..ae38aad 100644
--- a/include/polarssl/md.h
+++ b/include/polarssl/md.h
@@ -28,13 +28,10 @@
#include <string.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
#define POLARSSL_ERR_MD_FEATURE_UNAVAILABLE -0x5080 /**< The selected feature is not available. */
#define POLARSSL_ERR_MD_BAD_INPUT_DATA -0x5100 /**< Bad input parameters to function. */
diff --git a/include/polarssl/pkcs11.h b/include/polarssl/pkcs11.h
index aefdbf2..3b07c84 100644
--- a/include/polarssl/pkcs11.h
+++ b/include/polarssl/pkcs11.h
@@ -34,13 +34,10 @@
#include <pkcs11-helper-1.0/pkcs11h-certificate.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
/**
* Context for PKCS #11 private keys.
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index 7aad9f9..69436c9 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -43,13 +43,10 @@
#include "zlib.h"
#endif
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
/*
* SSL Error codes
diff --git a/library/net.c b/library/net.c
index 0e5edc0..2685d6a 100644
--- a/library/net.c
+++ b/library/net.c
@@ -268,7 +268,7 @@
struct sockaddr_in client_addr;
#if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \
- defined(_SOCKLEN_T_DECLARED)
+ defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t)
socklen_t n = (socklen_t) sizeof( client_addr );
#else
int n = (int) sizeof( client_addr );