X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c b/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c index 51a9fadec..7bd083d85 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c +++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c @@ -1,21 +1,21 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. - + Copyright (C) Dean Camera, 2011. + dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -43,7 +43,7 @@ char PROGMEM HTTP200Header[] = "HTTP/1.1 200 OK\r\n" "Server: LUFA RNDIS\r\n" "Content-type: text/html\r\n" "Connection: close\r\n\r\n"; - + /** HTTP server response header, for transmission before a resource not found error. This indicates to the host that the given * given URL is invalid, and gives extra error information. */ @@ -54,7 +54,7 @@ char PROGMEM HTTP404Header[] = "HTTP/1.1 404 Not Found\r\n" /** HTTP page to serve to the host when a HTTP request is made. This page is too long for a single response, thus it is automatically * broken up into smaller blocks and sent as a series of packets each time the webserver application callback is run. */ -char PROGMEM HTTPPage[] = +char PROGMEM HTTPPage[] = "" " " " " @@ -66,7 +66,7 @@ char PROGMEM HTTPPage[] = " <p>" " Hello! Welcome to the LUFA RNDIS Demo Webserver test page, running on your USB AVR via the LUFA library. This demonstrates the HTTP webserver, TCP/IP stack and RNDIS demo all running atop the LUFA USB stack." " <br /><br />" - " <small>Project Information: <a href=\"http://www.fourwalledcubicle.com/LUFA.php\">http://www.fourwalledcubicle.com/LUFA.php</a>.</small>" + " <small>Project Information: <a href=\"http://www.lufa-lib.org\">http://www.lufa-lib.org</a>.</small>" " <hr />" " <i>LUFA Version: </i>" LUFA_VERSION_STRING " </p>" @@ -90,7 +90,8 @@ void Webserver_Init(void) * * \return Boolean true if the command matches the request, false otherwise */ -static bool IsHTTPCommand(uint8_t* RequestHeader, char* Command) +static bool IsHTTPCommand(uint8_t* RequestHeader, + char* Command) { /* Returns true if the non null terminated string in RequestHeader matches the null terminated string Command */ return (strncmp((char*)RequestHeader, Command, strlen(Command)) == 0); @@ -102,11 +103,12 @@ static bool IsHTTPCommand(uint8_t* RequestHeader, char* Command) * \param[in] ConnectionState Pointer to a TCP Connection State structure giving connection information * \param[in,out] Buffer Pointer to the application's send/receive packet buffer */ -void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_ConnectionBuffer_t* Buffer) +void Webserver_ApplicationCallback(TCP_ConnectionState_t* const ConnectionState, + TCP_ConnectionBuffer_t* const Buffer) { char* BufferDataStr = (char*)Buffer->Data; static uint8_t PageBlock = 0; - + /* Check to see if a packet has been received on the HTTP port from a remote host */ if (TCP_APP_HAS_RECEIVED_PACKET(Buffer)) { @@ -118,7 +120,7 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C /* Copy the HTTP 200 response header into the packet buffer */ strcpy_P(BufferDataStr, HTTP200Header); - + /* Send the buffer contents to the host */ TCP_APP_SEND_BUFFER(Buffer, strlen(BufferDataStr)); @@ -129,10 +131,10 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C { /* Copy the HTTP 404 response header into the packet buffer */ strcpy_P(BufferDataStr, HTTP404Header); - + /* Send the buffer contents to the host */ TCP_APP_SEND_BUFFER(Buffer, strlen(BufferDataStr)); - + /* All data sent, close the connection */ TCP_APP_CLOSECONNECTION(ConnectionState); } @@ -153,9 +155,9 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C strcpy_P(BufferDataStr, HTTP404Header); /* Send the buffer contents to the host */ - TCP_APP_SEND_BUFFER(Buffer, strlen(BufferDataStr)); + TCP_APP_SEND_BUFFER(Buffer, strlen(BufferDataStr)); } - + /* All data sent, close the connection */ TCP_APP_CLOSECONNECTION(ConnectionState); } @@ -163,7 +165,7 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C { /* Echo the host's query back to the host */ TCP_APP_SEND_BUFFER(Buffer, Buffer->Length); - + /* All data sent, close the connection */ TCP_APP_CLOSECONNECTION(ConnectionState); } @@ -177,13 +179,13 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C { uint16_t RemLength = strlen_P(&HTTPPage[PageBlock * HTTP_REPLY_BLOCK_SIZE]); uint16_t Length; - + /* Determine the length of the loaded block */ - Length = ((RemLength > HTTP_REPLY_BLOCK_SIZE) ? HTTP_REPLY_BLOCK_SIZE : RemLength); + Length = MIN(RemLength, HTTP_REPLY_BLOCK_SIZE); /* Copy the next buffer sized block of the page to the packet buffer */ strncpy_P(BufferDataStr, &HTTPPage[PageBlock * HTTP_REPLY_BLOCK_SIZE], Length); - + /* Send the buffer contents to the host */ TCP_APP_SEND_BUFFER(Buffer, Length); @@ -192,9 +194,10 @@ void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_C { /* Unlock the buffer so that the host can fill it with future packets */ TCP_APP_RELEASE_BUFFER(Buffer); - + /* Close the connection to the host */ TCP_APP_CLOSECONNECTION(ConnectionState); } } } +