HttpServer Library for "mbed-os" which added a snapshot handler.

Dependents:   GR-PEACH-webcam GR-Boards_WebCamera GR-Boards_WebCamera GR-Boards_WebCamera

Fork of HttpServer_snapshot by Renesas

Revision:
13:d3571c244759
Parent:
11:0700755d64ae
diff -r 95cc47e42b79 -r d3571c244759 HTTPRequestHandler.cpp
--- a/HTTPRequestHandler.cpp	Tue Jun 06 01:39:39 2017 +0000
+++ b/HTTPRequestHandler.cpp	Wed Jun 07 05:53:36 2017 +0000
@@ -27,10 +27,6 @@
 
 #define HTTP_REQUEST_TIMEOUT 5000
 
-//HTTPRequestHandler::HTTPRequestHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) : NetService(),
-//   m_pTCPSocket(pTCPSocket), m_reqHeaders(), m_respHeaders(),
-//   m_rootPath(rootPath), m_path(path), m_errc(200),
-//   m_watchdog(), m_timeout(0),**/ m_closed(false), m_headersSent(false) //OK
 HTTPRequestHandler::HTTPRequestHandler(const char* rootPath, const char* path, TCPSocket* pTCPSocket) :
     m_pTCPSocket(pTCPSocket), m_reqHeaders(), m_respHeaders(),
     m_rootPath(rootPath), m_path(path), m_errc(200), m_closed(false), m_headersSent(false)
@@ -40,8 +36,6 @@
 #endif
     //Read & parse headers
     readHeaders();
-//*  m_pTCPSocket->setOnEvent(this, &HTTPRequestHandler::onTCPSocketEvent);
-//*  setTimeout(HTTP_REQUEST_TIMEOUT);
 #ifdef _DEBUG_REQUEST_HANDLER
     printf("+++(HTTPRequestHandler) init end \r\n");
 #endif
@@ -65,12 +59,6 @@
     if(m_closed)
         return;
     m_closed = true; //Prevent recursive calling or calling on an object being destructed by someone else
-    /**  m_watchdog.detach(); **/
-//*  onClose();
-//*  m_pTCPSocket->resetOnEvent();
-//*  m_pTCPSocket->close();
-//*  delete m_pTCPSocket; //Can safely destroy socket
-//*  NetService::close();
 }
 
 map<string, string>& HTTPRequestHandler::reqHeaders() //const
@@ -128,20 +116,6 @@
     }
     return m_pTCPSocket->send((char *)buf, len);
 }
-/**
-void HTTPRequestHandler::setTimeout(int ms)
-{
-  m_timeout = 1000*ms;
-  resetTimeout();
-}
-**/
-/**
-void HTTPRequestHandler::resetTimeout()
-{
-  m_watchdog.detach();
-  m_watchdog.attach_us<HTTPRequestHandler>(this, &HTTPRequestHandler::onTimeout, m_timeout);
-}
-**/
 
 void HTTPRequestHandler::readHeaders()
 {
@@ -159,21 +133,21 @@
 
 void HTTPRequestHandler::writeHeaders() //Called at the first writeData call
 {
-    //Response line
-    sprintf(line, "HTTP/1.1 %d MbedInfo\r\n", m_errc); //Not a violation of the standard not to include the descriptive text
-    m_pTCPSocket->send(line, strlen(line));
+    int idx = 0;
+
+    idx += sprintf(&line[idx], "HTTP/1.1 %d MbedInfo\r\n", m_errc); //Not a violation of the standard not to include the descriptive text
 
     map<string,string>::iterator it;
     while( !m_respHeaders.empty() ) {
         it = m_respHeaders.begin();
-        sprintf(line, "%s: %s\r\n", (*it).first.c_str(), (*it).second.c_str() );
+        idx += sprintf(&line[idx], "%s: %s\r\n", (*it).first.c_str(), (*it).second.c_str() );
 #ifdef _DEBUG_REQUEST_HANDLER
-        printf("\r\n+++(HTTPRequestHandler)%s", line);
+        printf("\r\n+++(HTTPRequestHandler)%s", &line[idx]);
 #endif
-        m_pTCPSocket->send(line, strlen(line));
         m_respHeaders.erase(it);
     }
-    m_pTCPSocket->send("\r\n",2); //End of head
+    idx += sprintf(&line[idx], "\r\n"); //End of head
+    m_pTCPSocket->send(line, idx);
 }
 
 int HTTPRequestHandler::readLine(char* str, int maxLen)
@@ -199,36 +173,4 @@
     *str = 0;
     return len;
 }
-/**
-void HTTPRequestHandler::onTCPSocketEvent(TCPSocketEvent e)
-{
-  //printf("\r\nEvent %d in HTTPRequestHandler\r\n", e);
-  printf("\r\n+++(HTTPRequestHandler)Event in HTTPRequestHandler\r\n");
 
-  if(m_closed)
-  {
-    printf("\r\n+++(HTTPRequestHandler)WARN: Discarded\r\n");
-    return;
-  }
-
-  switch(e)
-  {
-        case TCPSOCKET_READABLE:
-    resetTimeout();
-   onReadable();
-    break;
-  case TCPSOCKET_WRITEABLE:
-    resetTimeout();
-    onWriteable();
-    break;
-  case TCPSOCKET_CONTIMEOUT:
-  case TCPSOCKET_CONRST:
-  case TCPSOCKET_CONABRT:
-  case TCPSOCKET_ERROR:
-  case TCPSOCKET_DISCONNECTED:
-    DBG("\r\nConnection error in handler\r\n");
-    close();
-    break;
-  }
-}
-**/
\ No newline at end of file