3333// To do extern "C" uint32_t _SPIFFS_end;
3434
3535HTTPUpdate::HTTPUpdate (void )
36- : _httpClientTimeout (8000 ), _ledPin(- 1 )
36+ : HTTPUpdate (8000 )
3737{
38- _followRedirects = HTTPC_DISABLE_FOLLOW_REDIRECTS;
3938}
4039
4140HTTPUpdate::HTTPUpdate (int httpClientTimeout)
4241 : _httpClientTimeout(httpClientTimeout), _ledPin(-1 )
4342{
4443 _followRedirects = HTTPC_DISABLE_FOLLOW_REDIRECTS;
44+ _md5Sum = String ();
45+ _user = String ();
46+ _password = String ();
47+ _auth = String ();
4548}
4649
4750HTTPUpdate::~HTTPUpdate (void )
@@ -220,6 +223,14 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient& http, const String& curren
220223 requestCB (&http);
221224 }
222225
226+ if (!_user.isEmpty () && !_password.isEmpty ()) {
227+ http.setAuthorization (_user.c_str (), _password.c_str ());
228+ }
229+
230+ if (!_auth.isEmpty ()) {
231+ http.setAuthorization (_auth.c_str ());
232+ }
233+
223234 const char * headerkeys[] = { " x-MD5" };
224235 size_t headerkeyssize = sizeof (headerkeys) / sizeof (char *);
225236
@@ -243,8 +254,14 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient& http, const String& curren
243254 log_d (" - code: %d\n " , code);
244255 log_d (" - len: %d\n " , len);
245256
246- if (http.hasHeader (" x-MD5" )) {
247- log_d (" - MD5: %s\n " , http.header (" x-MD5" ).c_str ());
257+ String md5;
258+ if (_md5Sum.length ()) {
259+ md5 = _md5Sum;
260+ } else if (http.hasHeader (" x-MD5" )) {
261+ md5 = http.header (" x-MD5" );
262+ }
263+ if (md5.length ()) {
264+ log_d (" - MD5: %s\n " ,md5.c_str ());
248265 }
249266
250267 log_d (" ESP32 info:\n " );
@@ -341,7 +358,7 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient& http, const String& curren
341358 }
342359*/
343360 }
344- if (runUpdate (*tcp, len, http. header ( " x-MD5 " ) , command)) {
361+ if (runUpdate (*tcp, len, md5 , command)) {
345362 ret = HTTP_UPDATE_OK;
346363 log_d (" Update ok\n " );
347364 http.end ();
0 commit comments