@@ -47,13 +47,12 @@ Arduino_ESP32_OTA::Arduino_ESP32_OTA()
47
47
48
48
Arduino_ESP32_OTA::Error Arduino_ESP32_OTA::begin ()
49
49
{
50
+ /* initialize private variables */
51
+ otaInit ();
50
52
51
53
/* ... initialize CRC ... */
52
- _crc32 = 0xFFFFFFFF ;
54
+ crc32Init () ;
53
55
54
- /* initialize private variables */
55
- _ota_size = 0 ;
56
- _ota_header = {0 };
57
56
58
57
if (Update.isRunning ()) {
59
58
Update.abort ();
@@ -93,7 +92,7 @@ uint8_t Arduino_ESP32_OTA::read_byte_from_network()
93
92
}
94
93
if (_client->available ()) {
95
94
const uint8_t data = _client->read ();
96
- _crc32 = crc_update (_crc32, & data, 1 );
95
+ crc32Update ( data);
97
96
return data;
98
97
}
99
98
}
@@ -263,10 +262,10 @@ int Arduino_ESP32_OTA::download(const char * ota_url)
263
262
264
263
Arduino_ESP32_OTA::Error Arduino_ESP32_OTA::update ()
265
264
{
266
- /* ... then finalise ... */
267
- _crc32 ^= 0xFFFFFFFF ;
265
+ /* ... then finalize ... */
266
+ crc32Finalize () ;
268
267
269
- if (_crc32 != _ota_header. header . crc32 ) {
268
+ if (! crc32Verify () ) {
270
269
DEBUG_ERROR (" %s: CRC32 mismatch" , __FUNCTION__);
271
270
return Error::OtaHeaderCrc;
272
271
}
@@ -283,3 +282,33 @@ void Arduino_ESP32_OTA::reset()
283
282
{
284
283
ESP.restart ();
285
284
}
285
+
286
+ /* *****************************************************************************
287
+ PROTECTED MEMBER FUNCTIONS
288
+ ******************************************************************************/
289
+
290
+ void Arduino_ESP32_OTA::otaInit ()
291
+ {
292
+ _ota_size = 0 ;
293
+ _ota_header = {0 };
294
+ }
295
+
296
+ void Arduino_ESP32_OTA::crc32Init ()
297
+ {
298
+ _crc32 = 0xFFFFFFFF ;
299
+ }
300
+
301
+ void Arduino_ESP32_OTA::crc32Update (const uint8_t data)
302
+ {
303
+ _crc32 = crc_update (_crc32, &data, 1 );
304
+ }
305
+
306
+ void Arduino_ESP32_OTA::crc32Finalize ()
307
+ {
308
+ _crc32 ^= 0xFFFFFFFF ;
309
+ }
310
+
311
+ bool Arduino_ESP32_OTA::crc32Verify ()
312
+ {
313
+ return (_crc32 == _ota_header.header .crc32 );
314
+ }
0 commit comments