File tree Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Expand file tree Collapse file tree 3 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 9090#elif defined(WOLFSSL_SERVER_EXAMPLE )
9191 #define NO_WOLFSSL_CLIENT
9292#elif defined(WOLFSSL_TEMPLATE_EXAMPLE )
93+ #define NO_TLS
94+ #define WOLFCRYPT_ONLY
9395 #define NO_WOLFSSL_SERVER
9496 #define NO_WOLFSSL_CLIENT
9597#elif defined(WOLFSSL_AES_CTR_EXAMPLE )
98+ #define NO_TLS
99+ #define WOLFCRYPT_ONLY
96100 #define NO_WOLFSSL_SERVER
97101 #define NO_WOLFSSL_CLIENT
98102 #define WOLFSSL_AES
Original file line number Diff line number Diff line change 2525/* Function to allow wolfcrypt to use Arduino Serial.print for debug messages.
2626 * See wolfssl/wolfcrypt/logging.c */
2727
28+ #if defined(__AVR__)
29+ #include < avr/pgmspace.h> /* Required for PROGMEM handling on AVR */
30+ #endif
31+
2832int wolfSSL_Arduino_Serial_Print (const char * const s)
2933{
3034 /* Reminder: Serial.print is only available in C++ */
31- Serial.println (F (s));
35+ int is_progmem = 0 ;
36+
37+ #if defined(__AVR__)
38+ const char * t;
39+ t = s;
40+
41+ /* Safely check if `s` is in PROGMEM, 0x8000 is typical for AVR flash */
42+ if (reinterpret_cast <uint16_t >(t) >= 0x8000 ) {
43+ while (pgm_read_byte (t)) {
44+ Serial.write (pgm_read_byte (t++));
45+ }
46+ Serial.println ();
47+ is_progmem = 1 ;
48+ }
49+ #endif
50+
51+ /* Print normally for non-AVR boards or RAM-stored strings */
52+ if (!is_progmem) {
53+ Serial.println (s);
54+ }
55+
3256 return 0 ;
3357};
Original file line number Diff line number Diff line change 316316
317317 /* board-specific */
318318 #if defined(__AVR__ )
319+ #define WOLFSSL_USER_IO
319320 #define WOLFSSL_NO_SOCK
320321 #define NO_WRITEV
321322 #elif defined(__arm__ )
You can’t perform that action at this time.
0 commit comments