mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	add platform_set_snprintf
This commit is contained in:
		
							parent
							
								
									3cfb34564f
								
							
						
					
					
						commit
						46b0a8d15a
					
				| @ -198,6 +198,11 @@ | ||||
| #error "POLARSSL_PKCS11_C defined, but not all prerequisites" | ||||
| #endif | ||||
| 
 | ||||
| #if defined(POLARSSL_PLATFORM_SNPRINTF_ALT) && ( defined(_WIN32)\ | ||||
|     && !defined(EFIX64) && !defined(EFI32) ) | ||||
| #error "POLARSSL_PLATFORM_SNPRINTF_ALT defined but not available on Windows" | ||||
| #endif | ||||
| 
 | ||||
| #if defined(POLARSSL_RSA_C) && ( !defined(POLARSSL_BIGNUM_C) ||         \ | ||||
|     !defined(POLARSSL_OID_C) ) | ||||
| #error "POLARSSL_RSA_C defined, but not all prerequisites" | ||||
|  | ||||
| @ -159,9 +159,13 @@ | ||||
|  * | ||||
|  * All these define require POLARSSL_PLATFORM_C to be defined! | ||||
|  * | ||||
|  * WARNING: POLARSSL_PLATFORM_SNPRINTF_ALT is not available on Windows | ||||
|  * for compatibility reasons. | ||||
|  * | ||||
|  * Uncomment a macro to enable alternate implementation of specific base | ||||
|  * platform function | ||||
|  */ | ||||
| //#define POLARSSL_PLATFORM_SNPRINTF_ALT
 | ||||
| //#define POLARSSL_PLATFORM_PRINTF_ALT
 | ||||
| //#define POLARSSL_PLATFORM_FPRINTF_ALT
 | ||||
| /* \} name SECTION: System support */ | ||||
| @ -1890,7 +1894,7 @@ | ||||
|  * \def POLARSSL_PLATFORM_C | ||||
|  * | ||||
|  * Enable the platform abstraction layer that allows you to re-assign | ||||
|  * functions like malloc(), free(), printf(), fprintf() | ||||
|  * functions like malloc(), free(), snprintf(), printf(), fprintf() | ||||
|  * | ||||
|  * Module:  library/platform.c | ||||
|  * Caller:  Most other .c files | ||||
| @ -2238,6 +2242,7 @@ | ||||
| //#define POLARSSL_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if POLARSSL_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
 | ||||
| //#define POLARSSL_PLATFORM_STD_MALLOC   malloc /**< Default allocator to use, can be undefined */
 | ||||
| //#define POLARSSL_PLATFORM_STD_FREE       free /**< Default free to use, can be undefined */
 | ||||
| //#define POLARSSL_PLATFORM_STD_SNPRINTF 	snprintf /**< Default snprintf to use, can be undefined */
 | ||||
| //#define POLARSSL_PLATFORM_STD_PRINTF   printf /**< Default printf to use, can be undefined */
 | ||||
| //#define POLARSSL_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */
 | ||||
| 
 | ||||
|  | ||||
| @ -50,6 +50,9 @@ extern "C" { | ||||
| #if !defined(POLARSSL_PLATFORM_NO_STD_FUNCTIONS) | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #if !defined(POLARSSL_PLATFORM_STD_SNPRINTF) | ||||
| #define POLARSSL_PLATFORM_STD_SNPRINTF   snprintf /**< Default snprintf to use  */ | ||||
| #endif | ||||
| #if !defined(POLARSSL_PLATFORM_STD_PRINTF) | ||||
| #define POLARSSL_PLATFORM_STD_PRINTF   printf /**< Default printf to use  */ | ||||
| #endif | ||||
| @ -92,6 +95,25 @@ int platform_set_malloc_free( void * (*malloc_func)( size_t ), | ||||
| #define polarssl_free       free | ||||
| #endif /* POLARSSL_PLATFORM_MEMORY */ | ||||
| 
 | ||||
| /*
 | ||||
|  * The function pointers for snprintf | ||||
|  */ | ||||
| #if defined(POLARSSL_PLATFORM_SNPRINTF_ALT) | ||||
| extern int (*polarssl_snprintf)( char * s, size_t n, const char * format, ... ); | ||||
| 
 | ||||
| /**
 | ||||
|  * \brief   Set your own snprintf function pointer | ||||
|  * | ||||
|  * \param snprintf_func   the snprintf function implementation | ||||
|  * | ||||
|  * \return              0 | ||||
|  */ | ||||
| int platform_set_snprintf( int (*snprintf_func)( char * s, size_t n, | ||||
|                                                  const char * format, ... ) ); | ||||
| #else /* POLARSSL_PLATFORM_SNPRINTF_ALT */ | ||||
| #define polarssl_snprintf   snprintf | ||||
| #endif /* POLARSSL_PLATFORM_SNPRINTF_ALT */ | ||||
| 
 | ||||
| /*
 | ||||
|  * The function pointers for printf | ||||
|  */ | ||||
|  | ||||
| @ -62,6 +62,36 @@ int platform_set_malloc_free( void * (*malloc_func)( size_t ), | ||||
| } | ||||
| #endif /* POLARSSL_PLATFORM_MEMORY */ | ||||
| 
 | ||||
| #if defined(POLARSSL_PLATFORM_SNPRINTF_ALT) | ||||
| #if !defined(POLARSSL_PLATFORM_STD_SNPRINTF) | ||||
| /*
 | ||||
|  * Make dummy function to prevent NULL pointer dereferences | ||||
|  */ | ||||
| static int platform_snprintf_uninit( char * s, size_t n, | ||||
|                                      const char * format, ... ) | ||||
| { | ||||
|     ((void) s); | ||||
|     ((void) n); | ||||
|     ((void) format) | ||||
|     return( 0 ); | ||||
| } | ||||
| 
 | ||||
| #define POLARSSL_PLATFORM_STD_SNPRINTF    platform_snprintf_uninit | ||||
| #endif /* !POLARSSL_PLATFORM_STD_SNPRINTF */ | ||||
| 
 | ||||
| int (*polarssl_snprintf)( char * s, size_t n, | ||||
|                           const char * format, | ||||
|                           ... ) = POLARSSL_PLATFORM_STD_SNPRINTF; | ||||
| 
 | ||||
| int platform_set_snprintf( int (*snprintf_func)( char * s, size_t n, | ||||
|                                                  const char * format, | ||||
|                                                  ... ) ) | ||||
| { | ||||
|     polarssl_snprintf = snprintf_func; | ||||
|     return( 0 ); | ||||
| } | ||||
| #endif /* POLARSSL_PLATFORM_SNPRINTF_ALT */ | ||||
| 
 | ||||
| #if defined(POLARSSL_PLATFORM_PRINTF_ALT) | ||||
| #if !defined(POLARSSL_PLATFORM_STD_PRINTF) | ||||
| /*
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Rich Evans
						Rich Evans