@@ -623,7 +623,8 @@ int Webserver::answerToConnection(void* cls, MHD_Connection* connection,
623623 string st_url = HttpUtils::standardizeUrl (url);
624624
625625 mr = (struct ModdedRequest *) *con_cls;
626- access_log (dws, *(mr->completeUri ) + " METHOD: " + method);
626+ if (mr->second == false )
627+ access_log (dws, *(mr->completeUri ) + " METHOD: " + method);
627628 mr->ws = dws;
628629 if (0 == strcmp (method, MHD_HTTP_METHOD_POST) || 0 == strcmp (method, MHD_HTTP_METHOD_PUT))
629630 {
@@ -712,9 +713,6 @@ int Webserver::answerToConnection(void* cls, MHD_Connection* connection,
712713 }
713714 HttpEndpoint endpoint = HttpEndpoint (st_url);
714715 HttpResponse dhrs;
715- void * page;
716- size_t size = 0 ;
717- bool to_free = false ;
718716 const HttpEndpoint* matchingEndpoint = 0x0 ;
719717 if (!(dws->registeredResources .count (endpoint) > 0 ))
720718 {
@@ -789,23 +787,22 @@ int Webserver::answerToConnection(void* cls, MHD_Connection* connection,
789787 }
790788 else if (dhrs.responseType == HttpResponse::SWITCH_PROTOCOL)
791789 {
792- response = MHD_create_response_for_upgrade (&upgrade_handler, (void *)dhrs.getSwitchCallback ());
790+ // response = MHD_create_response_for_upgrade(&upgrade_handler, (void*)dhrs.getSwitchCallback());
793791 }
794792 else
795793 {
796794 if (dhrs.content != " " )
797795 {
798796 vector<char > v_page (dhrs.content .begin (), dhrs.content .end ());
799- size = v_page.size ();
800- page = ( void *) malloc ( size* sizeof ( char )) ;
801- memcpy ( page, &v_page[0 ], sizeof ( char ) * size );
802- to_free = true ;
797+ size_t size = v_page.size ();
798+ char page[ size] ;
799+ memcpy ( ( char *) page, &v_page[0 ], sizeof ( char ) * size );
800+ response = MHD_create_response_from_buffer (size, page, MHD_RESPMEM_MUST_COPY) ;
803801 }
804802 else
805803 {
806- page = ( void *)" " ;
804+ response = MHD_create_response_from_buffer ( 0 , ( void *)" " , MHD_RESPMEM_MUST_COPY) ;
807805 }
808- response = MHD_create_response_from_buffer (size, page, MHD_RESPMEM_MUST_COPY);
809806 }
810807 vector<pair<string,string> > response_headers = dhrs.getHeaders ();
811808 vector<pair<string,string> > response_footers = dhrs.getFooters ();
@@ -829,8 +826,6 @@ int Webserver::answerToConnection(void* cls, MHD_Connection* connection,
829826 if (digestedUser != 0x0 )
830827 free (digestedUser);
831828 MHD_destroy_response (response);
832- if (to_free)
833- free (page);
834829 return to_ret;
835830}
836831
0 commit comments