@@ -125,6 +125,9 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
125
125
.crt_bundle_attach = esp_crt_bundle_attach,
126
126
.keep_alive_enable = true ,
127
127
};
128
+ if (mHttpDownloader ) {
129
+ http_downloader_abort (mHttpDownloader );
130
+ }
128
131
if (http_downloader_start (&config, &mHttpDownloader ) != ESP_OK) {
129
132
mTransfer .AbortTransfer (StatusCode::kUnknown );
130
133
}
@@ -140,7 +143,8 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
140
143
return ;
141
144
}
142
145
// Read http response
143
- int bytes_read = http_downloader_read (mHttpDownloader , reinterpret_cast <char *>(blockBuf->Start ()), bytesToRead);
146
+ int bytes_read =
147
+ http_downloader_read (mHttpDownloader , reinterpret_cast <char *>(blockBuf->Start ()), bytesToRead);
144
148
if (bytes_read < 0 ) {
145
149
ESP_LOGE (TAG, " http_downloader_read failed" );
146
150
mTransfer .AbortTransfer (StatusCode::kUnknown );
@@ -169,25 +173,22 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
169
173
case TransferSession::OutputEventType::kAckReceived :
170
174
break ;
171
175
case TransferSession::OutputEventType::kAckEOFReceived : {
172
- ESP_LOGD (TAG, " Transfer completed, got AckEOF" );
176
+ ESP_LOGI (TAG, " Transfer completed, got AckEOF" );
173
177
Reset ();
174
178
break ;
175
179
}
176
180
case TransferSession::OutputEventType::kStatusReceived : {
177
181
ESP_LOGE (TAG, " Got StatusReport %x" , static_cast <uint16_t >(event.statusData .statusCode ));
178
- http_downloader_abort (mHttpDownloader );
179
182
Reset ();
180
183
break ;
181
184
}
182
185
case TransferSession::OutputEventType::kInternalError : {
183
186
ESP_LOGE (TAG, " InternalError" );
184
- http_downloader_abort (mHttpDownloader );
185
187
Reset ();
186
188
break ;
187
189
}
188
190
case TransferSession::OutputEventType::kTransferTimeout : {
189
191
ESP_LOGE (TAG, " TransferTimeout" );
190
- http_downloader_abort (mHttpDownloader );
191
192
Reset ();
192
193
break ;
193
194
}
@@ -213,6 +214,10 @@ void OtaBdxSender::Reset()
213
214
mInitialized = false ;
214
215
mNumBytesSent = 0 ;
215
216
mOtaImageSize = 0 ;
217
+ if (mHttpDownloader ) {
218
+ // Release current http client
219
+ http_downloader_abort (mHttpDownloader );
220
+ }
216
221
mHttpDownloader = nullptr ;
217
222
memset (mOtaImageUrl , 0 , sizeof (mOtaImageUrl ));
218
223
}
0 commit comments