File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / include / ssl_applink.c
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /*
    2:  * include/ssl_applink.c -- common NTP code for openssl/applink.c
    3:  *
    4:  * Each program which uses OpenSSL should include this file in _one_
    5:  * of its source files and call ssl_applink() before any OpenSSL
    6:  * functions.
    7:  */
    8: 
    9: #if defined(OPENSSL) && defined(SYS_WINNT)
   10: # ifdef _MSC_VER
   11: #  pragma warning(push)
   12: #  pragma warning(disable: 4152)
   13: # endif
   14: # include <openssl/applink.c>
   15: # ifdef _MSC_VER
   16: #  pragma warning(pop)
   17: # endif
   18: #endif
   19: 
   20: #if defined(OPENSSL) && defined(_MSC_VER) && defined(_DEBUG)
   21: #define WRAP_DBG_MALLOC
   22: #endif
   23: 
   24: #ifdef WRAP_DBG_MALLOC
   25: void *wrap_dbg_malloc(size_t s, const char *f, int l);
   26: void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l);
   27: void wrap_dbg_free(void *p);
   28: #endif
   29: 
   30: 
   31: #if defined(OPENSSL) && defined(SYS_WINNT)
   32: void ssl_applink(void);
   33: 
   34: void
   35: ssl_applink(void)
   36: {
   37: #ifdef WRAP_DBG_MALLOC
   38: 	CRYPTO_set_mem_ex_functions(wrap_dbg_malloc, wrap_dbg_realloc, wrap_dbg_free);
   39: #else
   40: 	CRYPTO_malloc_init();
   41: #endif
   42: }
   43: #else	/* !OPENSSL || !SYS_WINNT */
   44: #define ssl_applink()	do {} while (0)
   45: #endif
   46: 
   47: 
   48: #ifdef WRAP_DBG_MALLOC
   49: /*
   50:  * OpenSSL malloc overriding uses different parameters
   51:  * for DEBUG malloc/realloc/free (lacking block type).
   52:  * Simple wrappers convert.
   53:  */
   54: void *wrap_dbg_malloc(size_t s, const char *f, int l)
   55: {
   56: 	void *ret;
   57: 
   58: 	ret = _malloc_dbg(s, _NORMAL_BLOCK, f, l);
   59: 	return ret;
   60: }
   61: 
   62: void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l)
   63: {
   64: 	void *ret;
   65: 
   66: 	ret = _realloc_dbg(p, s, _NORMAL_BLOCK, f, l);
   67: 	return ret;
   68: }
   69: 
   70: void wrap_dbg_free(void *p)
   71: {
   72: 	_free_dbg(p, _NORMAL_BLOCK);
   73: }
   74: #endif	/* WRAP_DBG_MALLOC */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>