X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/42b850f2b94941066c36d85b4878d6a348260b4d..04d40897cf98469b39f1d97208a51deb65f70bc5:/Projects/Webserver/Lib/HTTPServerApp.c?ds=inline diff --git a/Projects/Webserver/Lib/HTTPServerApp.c b/Projects/Webserver/Lib/HTTPServerApp.c index b6277d3db..4e00952f3 100644 --- a/Projects/Webserver/Lib/HTTPServerApp.c +++ b/Projects/Webserver/Lib/HTTPServerApp.c @@ -100,13 +100,9 @@ void HTTPServerApp_Callback(void) if (uip_aborted() || uip_timedout() || uip_closed()) { - /* Connection is being terminated for some reason - close file handle */ - f_close(&AppState->HTTPServer.FileHandle); - AppState->HTTPServer.FileOpen = false; - /* Lock to the closed state so that no further processing will occur on the connection */ - AppState->HTTPServer.CurrentState = WEBSERVER_STATE_Closed; - AppState->HTTPServer.NextState = WEBSERVER_STATE_Closed; + AppState->HTTPServer.CurrentState = WEBSERVER_STATE_Closing; + AppState->HTTPServer.NextState = WEBSERVER_STATE_Closing; } if (uip_connected()) @@ -148,9 +144,15 @@ void HTTPServerApp_Callback(void) HTTPServerApp_SendData(); break; case WEBSERVER_STATE_Closing: + /* Connection is being terminated for some reason - close file handle */ + f_close(&AppState->HTTPServer.FileHandle); + AppState->HTTPServer.FileOpen = false; + + /* If connection is not already closed, close it */ uip_close(); - AppState->HTTPServer.NextState = WEBSERVER_STATE_Closed; + AppState->HTTPServer.CurrentState = WEBSERVER_STATE_Closed; + AppState->HTTPServer.NextState = WEBSERVER_STATE_Closed; break; } }