Document shorthand gmtime macros

This commit is contained in:
Andres Amaya Garcia 2018-09-05 11:43:57 +01:00
parent 8c9a620fb6
commit ca04a01bb8
3 changed files with 28 additions and 9 deletions

View File

@ -100,13 +100,18 @@ extern int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t *mutex );
extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
#endif
#if defined(MBEDTLS_HAVE_TIME_DATE)
#if !defined(_WIN32) && (defined(__unix__) || \
(defined(__APPLE__) && defined(__MACH__)))
#if !defined(_WIN32) && (defined(unix) || defined(__unix) || \
defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)))
#include <unistd.h>
#if !defined(_POSIX_VERSION) || 200112L > _POSIX_THREAD_SAFE_FUNCTIONS
/*
* The preprocessor conditions above are the same as in platform_utils.c and
* threading.c. Remember to update the code there when changing the conditions
* here
*/
extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
#endif /* !_POSIX_VERSION || 200112L > _POSIX_THREAD_SAFE_FUNCTIONS */
#endif /* !_WIN32 && (__unix__ || (__APPLE__ && __MACH__)) */
#endif /* !_WIN32 && (unix || __unix || __unix__ || (__APPLE__ && __MACH__)) */
#endif /* MBEDTLS_HAVE_TIME_DATE */
#endif /* MBEDTLS_THREADING_C */

View File

@ -75,13 +75,20 @@ void mbedtls_platform_zeroize( void *buf, size_t len )
#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_ALT)
#include <time.h>
#if !defined(_WIN32) && (defined(__unix__) || \
(defined(__APPLE__) && defined(__MACH__)))
#if !defined(_WIN32) && (defined(unix) || defined(__unix) || \
defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)))
#include <unistd.h>
#if !defined(_POSIX_VERSION) || _POSIX_C_SOURCE > _POSIX_THREAD_SAFE_FUNCTIONS
/*
* This is a convenience shorthand macro to avoid checking the long
* preprocessor conditions above. Ideally, we could expose this macro in
* platform_utils.h and simply use it in platform_utils.c, threading.c and
* threading.h. However, this macro is not part of the Mbed TLS public API, so
* we keep it private by only definining it in this file
*/
#define PLATFORM_UTIL_USE_GMTIME
#endif /* !_POSIX_VERSION || _POSIX_C_SOURCE > _POSIX_THREAD_SAFE_FUNCTIONS */
#endif /* !_WIN32 && (__unix__ || (__APPLE__ && __MACH__)) */
#endif /* !_WIN32 && (unix || __unix || __unix__ || (__APPLE__ && __MACH__)) */
struct tm *mbedtls_platform_gmtime( const mbedtls_time_t *tt,
struct tm *tm_buf )

View File

@ -35,13 +35,20 @@
#include "mbedtls/threading.h"
#if !defined(_WIN32) && (defined(__unix__) || \
(defined(__APPLE__) && defined(__MACH__)))
#if !defined(_WIN32) && (defined(unix) || defined(__unix) || \
defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)))
#include <unistd.h>
#if !defined(_POSIX_VERSION) || 200112L > _POSIX_THREAD_SAFE_FUNCTIONS
/*
* This is a convenience shorthand macro to avoid checking the long
* preprocessor conditions above. Ideally, we could expose this macro in
* platform_utils.h and simply use it in platform_utils.c, threading.c and
* threading.h. However, this macro is not part of the Mbed TLS public API, so
* we keep it private by only definining it in this file
*/
#define THREADING_USE_GMTIME
#endif /* !_POSIX_VERSION || 200112L > _POSIX_THREAD_SAFE_FUNCTIONS */
#endif /* !_WIN32 && (__unix__ || (__APPLE__ && __MACH__)) */
#endif /* !_WIN32 && (unix || __unix || __unix__ || (__APPLE__ && __MACH__)) */
#if defined(MBEDTLS_THREADING_PTHREAD)
static void threading_mutex_init_pthread( mbedtls_threading_mutex_t *mutex )