Skip to content

Commit 701abe0

Browse files
committed
Make magic number configurable
1 parent 51329f6 commit 701abe0

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

Diff for: src/Arduino_ESP32_OTA.cpp

+10-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,16 @@ 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);
5659

5760
if(Update.isRunning()) {
5861
Update.abort();
@@ -80,6 +83,11 @@ void Arduino_ESP32_OTA::setCACertBundle (const uint8_t * bundle)
8083
}
8184
}
8285

86+
void Arduino_ESP32_OTA::setMagic(uint32_t magic)
87+
{
88+
_magic = magic;
89+
}
90+
8391
uint8_t Arduino_ESP32_OTA::read_byte_from_network()
8492
{
8593
bool is_http_data_timeout = false;
@@ -235,7 +243,7 @@ int Arduino_ESP32_OTA::download(const char * ota_url)
235243
}
236244

237245
/* ... and OTA magic number */
238-
if (_ota_header.header.magic_number != ARDUINO_ESP32_OTA_MAGIC)
246+
if (_ota_header.header.magic_number != _magic)
239247
{
240248
delete _client;
241249
_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();
@@ -96,6 +97,8 @@ class Arduino_ESP32_OTA
9697
uint32_t _crc32;
9798
const char * _ca_cert;
9899
const uint8_t * _ca_cert_bundle;
100+
uint32_t _magic;
101+
99102
};
100103

101104
#endif /* ARDUINO_ESP32_OTA_H_ */

0 commit comments

Comments
 (0)