@@ -234,7 +234,7 @@ struct DataAndStatusCode
234234// **** WEB SERVER Overrides and Special Functionality ****
235235int set_file_data (fs_file* file, const DataAndStatusCode& dataAndStatusCode)
236236{
237- static string returnData;
237+ std:: string* returnData = new std::string () ;
238238
239239 const char * statusCodeStr = " " ;
240240 switch (dataAndStatusCode.statusCode )
@@ -244,25 +244,27 @@ int set_file_data(fs_file* file, const DataAndStatusCode& dataAndStatusCode)
244244 case HttpStatusCode::_500: statusCodeStr = " 500 Internal Server Error" ; break ;
245245 }
246246
247- returnData. clear ();
248- returnData. append (" HTTP/1.0 " );
249- returnData. append (statusCodeStr);
250- returnData. append (" \r\n " );
251- returnData. append (
247+ returnData-> clear ();
248+ returnData-> append (" HTTP/1.0 " );
249+ returnData-> append (statusCodeStr);
250+ returnData-> append (" \r\n " );
251+ returnData-> append (
252252 " Server: GP2040-CE " GP2040VERSION " \r\n "
253253 " Content-Type: application/json\r\n "
254254 " Access-Control-Allow-Origin: *\r\n "
255255 " Content-Length: "
256256 );
257- returnData.append (std::to_string (dataAndStatusCode.data .length ()));
258- returnData.append (" \r\n\r\n " );
259- returnData.append (dataAndStatusCode.data );
260257
261- file->data = returnData.c_str ();
262- file->len = returnData.size ();
258+ returnData->append (std::to_string (dataAndStatusCode.data .length ()));
259+ returnData->append (" \r\n\r\n " );
260+ returnData->append (dataAndStatusCode.data );
261+
262+ file->data = returnData->c_str ();
263+ file->len = returnData->size ();
263264 file->index = file->len ;
264- file->http_header_included = file->http_header_included ;
265- file->pextension = NULL ;
265+ file->http_header_included = true ;
266+ file->pextension = returnData; // store for cleanup
267+ file->is_custom_file = 1 ;
266268
267269 return 1 ;
268270}
@@ -2779,7 +2781,7 @@ void fs_close_custom(struct fs_file *file)
27792781{
27802782 if (file && file->is_custom_file && file->pextension )
27812783 {
2782- mem_free (file->pextension );
2784+ delete static_cast <std::string*> (file->pextension );
27832785 file->pextension = NULL ;
27842786 }
2785- }
2787+ }
0 commit comments