@@ -182,11 +182,7 @@ void webserver::request_completed(void *cls, struct MHD_Connection *connection,
182182 std::ignore = connection;
183183 std::ignore = toe;
184184
185- details::modded_request* mr = static_cast <details::modded_request*>(*con_cls);
186- if (mr == nullptr ) return ;
187-
188- delete mr;
189- mr = nullptr ;
185+ delete static_cast <details::modded_request*>(*con_cls);
190186}
191187
192188bool webserver::register_resource (const std::string& resource, http_resource* hrm, bool family) {
@@ -422,10 +418,9 @@ void* uri_log(void* cls, const char* uri) {
422418 // Parameter needed to respect MHD interface, but not needed here.
423419 std::ignore = cls;
424420
425- struct details ::modded_request* mr = new details::modded_request ();
426- mr->complete_uri = new string (uri);
427- mr->second = false ;
428- return reinterpret_cast <void *>(mr);
421+ auto mr = std::make_unique<details::modded_request>();
422+ mr->complete_uri = std::make_unique<string>(uri);
423+ return reinterpret_cast <void *>(mr.release ());
429424}
430425
431426void error_log (void * cls, const char * fmt, va_list ap) {
@@ -521,8 +516,7 @@ MHD_Result webserver::post_iterator(void *cls, enum MHD_ValueKind kind,
521516 if (mr->upload_ostrm == nullptr || !mr->upload_ostrm ->is_open ()) {
522517 mr->upload_key = key;
523518 mr->upload_filename = filename;
524- delete mr->upload_ostrm ;
525- mr->upload_ostrm = new std::ofstream ();
519+ mr->upload_ostrm = std::make_unique<std::ofstream>();
526520 mr->upload_ostrm ->open (file.get_file_system_file_name (), std::ios::binary | std::ios::app);
527521 }
528522
@@ -550,29 +544,28 @@ std::shared_ptr<http_response> webserver::not_found_page(details::modded_request
550544 if (not_found_resource != nullptr ) {
551545 return not_found_resource (*mr->dhr );
552546 } else {
553- return std::shared_ptr<http_response>( new string_response ( NOT_FOUND_ERROR, http_utils::http_not_found) );
547+ return std::make_shared<string_response>( NOT_FOUND_ERROR, http_utils::http_not_found);
554548 }
555549}
556550
557551std::shared_ptr<http_response> webserver::method_not_allowed_page (details::modded_request* mr) const {
558552 if (method_not_allowed_resource != nullptr ) {
559553 return method_not_allowed_resource (*mr->dhr );
560554 } else {
561- return std::shared_ptr<http_response>( new string_response ( METHOD_ERROR, http_utils::http_method_not_allowed) );
555+ return std::make_shared<string_response>( METHOD_ERROR, http_utils::http_method_not_allowed);
562556 }
563557}
564558
565559std::shared_ptr<http_response> webserver::internal_error_page (details::modded_request* mr, bool force_our) const {
566560 if (internal_error_resource != nullptr && !force_our) {
567561 return internal_error_resource (*mr->dhr );
568562 } else {
569- return std::shared_ptr<http_response>( new string_response ( GENERIC_ERROR, http_utils::http_internal_server_error, " text/plain " ) );
563+ return std::make_shared<string_response>( GENERIC_ERROR, http_utils::http_internal_server_error);
570564 }
571565}
572566
573567MHD_Result webserver::requests_answer_first_step (MHD_Connection* connection, struct details ::modded_request* mr) {
574- mr->second = true ;
575- mr->dhr = new http_request (connection, unescaper);
568+ mr->dhr .reset (new http_request (connection, unescaper));
576569
577570 if (!mr->has_body ) {
578571 return MHD_YES;
@@ -748,7 +741,7 @@ MHD_Result webserver::answer_to_connection(void* cls, MHD_Connection* connection
748741 const char * version, const char * upload_data, size_t * upload_data_size, void ** con_cls) {
749742 struct details ::modded_request* mr = static_cast <struct details ::modded_request*>(*con_cls);
750743
751- if (mr->second != false ) {
744+ if (mr->dhr ) {
752745 return static_cast <webserver*>(cls)->requests_answer_second_step (connection, method, version, upload_data, upload_data_size, mr);
753746 }
754747
@@ -762,7 +755,7 @@ MHD_Result webserver::answer_to_connection(void* cls, MHD_Connection* connection
762755 std::string t_url = url;
763756
764757 base_unescaper (&t_url, static_cast <webserver*>(cls)->unescaper );
765- mr->standardized_url = new string (http_utils::standardize_url (t_url));
758+ mr->standardized_url = std::make_unique<std:: string> (http_utils::standardize_url (t_url));
766759
767760 mr->has_body = false ;
768761
0 commit comments