Skip to content

Commit 8c724b1

Browse files
committed
Make magic number configurable
1 parent 57b32e4 commit 8c724b1

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

Diff for: src/Arduino_ESP32_OTA.cpp

+11-2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Arduino_ESP32_OTA::Arduino_ESP32_OTA()
3737
,_crc32(0)
3838
,_ca_cert{amazon_root_ca}
3939
,_ca_cert_bundle{nullptr}
40+
,_magic(0)
4041
{
4142

4243
}
@@ -45,14 +46,17 @@ Arduino_ESP32_OTA::Arduino_ESP32_OTA()
4546
PUBLIC MEMBER FUNCTIONS
4647
******************************************************************************/
4748

48-
Arduino_ESP32_OTA::Error Arduino_ESP32_OTA::begin()
49+
Arduino_ESP32_OTA::Error Arduino_ESP32_OTA::begin(uint32_t magic)
4950
{
5051
/* initialize private variables */
5152
otaInit();
5253

5354
/* ... initialize CRC ... */
5455
crc32Init();
5556

57+
/* ... configure board Magic number */
58+
setMagic(magic);
59+
5660
if(!isCapable()) {
5761
DEBUG_ERROR("%s: board is not capable to perform OTA", __FUNCTION__);
5862
return Error::NoOtaStorage;
@@ -84,6 +88,11 @@ void Arduino_ESP32_OTA::setCACertBundle (const uint8_t * bundle)
8488
}
8589
}
8690

91+
void Arduino_ESP32_OTA::setMagic(uint32_t magic)
92+
{
93+
_magic = magic;
94+
}
95+
8796
uint8_t Arduino_ESP32_OTA::read_byte_from_network()
8897
{
8998
bool is_http_data_timeout = false;
@@ -239,7 +248,7 @@ int Arduino_ESP32_OTA::download(const char * ota_url)
239248
}
240249

241250
/* ... and OTA magic number */
242-
if (_ota_header.header.magic_number != ARDUINO_ESP32_OTA_MAGIC)
251+
if (_ota_header.header.magic_number != _magic)
243252
{
244253
delete _client;
245254
_client = nullptr;

Diff for: src/Arduino_ESP32_OTA.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ class Arduino_ESP32_OTA
7272
Arduino_ESP32_OTA();
7373
virtual ~Arduino_ESP32_OTA() { }
7474

75-
Arduino_ESP32_OTA::Error begin();
76-
void setCACert (const char *rootCA);
75+
Arduino_ESP32_OTA::Error begin(uint32_t magic = ARDUINO_ESP32_OTA_MAGIC);
76+
void setMagic(uint32_t magic);
77+
void setCACert(const char *rootCA);
7778
void setCACertBundle(const uint8_t * bundle);
7879
int download(const char * ota_url);
7980
uint8_t read_byte_from_network();
@@ -97,6 +98,8 @@ class Arduino_ESP32_OTA
9798
uint32_t _crc32;
9899
const char * _ca_cert;
99100
const uint8_t * _ca_cert_bundle;
101+
uint32_t _magic;
102+
100103
};
101104

102105
#endif /* ARDUINO_ESP32_OTA_H_ */

0 commit comments

Comments
 (0)