@@ -125,6 +125,9 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
125125 .crt_bundle_attach = esp_crt_bundle_attach,
126126 .keep_alive_enable = true ,
127127 };
128+ if (mHttpDownloader ) {
129+ http_downloader_abort (mHttpDownloader );
130+ }
128131 if (http_downloader_start (&config, &mHttpDownloader ) != ESP_OK) {
129132 mTransfer .AbortTransfer (StatusCode::kUnknown );
130133 }
@@ -140,7 +143,8 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
140143 return ;
141144 }
142145 // 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);
144148 if (bytes_read < 0 ) {
145149 ESP_LOGE (TAG, " http_downloader_read failed" );
146150 mTransfer .AbortTransfer (StatusCode::kUnknown );
@@ -169,25 +173,22 @@ void OtaBdxSender::HandleTransferSessionOutput(TransferSession::OutputEvent &eve
169173 case TransferSession::OutputEventType::kAckReceived :
170174 break ;
171175 case TransferSession::OutputEventType::kAckEOFReceived : {
172- ESP_LOGD (TAG, " Transfer completed, got AckEOF" );
176+ ESP_LOGI (TAG, " Transfer completed, got AckEOF" );
173177 Reset ();
174178 break ;
175179 }
176180 case TransferSession::OutputEventType::kStatusReceived : {
177181 ESP_LOGE (TAG, " Got StatusReport %x" , static_cast <uint16_t >(event.statusData .statusCode ));
178- http_downloader_abort (mHttpDownloader );
179182 Reset ();
180183 break ;
181184 }
182185 case TransferSession::OutputEventType::kInternalError : {
183186 ESP_LOGE (TAG, " InternalError" );
184- http_downloader_abort (mHttpDownloader );
185187 Reset ();
186188 break ;
187189 }
188190 case TransferSession::OutputEventType::kTransferTimeout : {
189191 ESP_LOGE (TAG, " TransferTimeout" );
190- http_downloader_abort (mHttpDownloader );
191192 Reset ();
192193 break ;
193194 }
@@ -213,6 +214,10 @@ void OtaBdxSender::Reset()
213214 mInitialized = false ;
214215 mNumBytesSent = 0 ;
215216 mOtaImageSize = 0 ;
217+ if (mHttpDownloader ) {
218+ // Release current http client
219+ http_downloader_abort (mHttpDownloader );
220+ }
216221 mHttpDownloader = nullptr ;
217222 memset (mOtaImageUrl , 0 , sizeof (mOtaImageUrl ));
218223}
0 commit comments