myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [SCM] GNU MyServer branch, master, updated. v0.9.2-463


From: Giuseppe Scrivano
Subject: [myserver-commit] [SCM] GNU MyServer branch, master, updated. v0.9.2-463-g5352cc5
Date: Thu, 21 Apr 2011 12:56:50 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU MyServer".

The branch, master has been updated
       via  5352cc50040b0108c1fa8cbe609a1050fbb3741a (commit)
       via  9c287473e334a716cd5d5be8a32c9eaa1e90d5ea (commit)
      from  4610bc1c88c48d4a096060685876ef7ae3f60035 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------


commit 5352cc50040b0108c1fa8cbe609a1050fbb3741a
Author: Giuseppe Scrivano <address@hidden>
Date:   Thu Apr 21 14:56:29 2011 +0200

    HttpThreadContext: remove some attributes and use size_t to store lengths.

diff --git a/myserver/include/protocol/http/http_headers.h 
b/myserver/include/protocol/http/http_headers.h
index 725f86c..d72a9a9 100644
--- a/myserver/include/protocol/http/http_headers.h
+++ b/myserver/include/protocol/http/http_headers.h
@@ -49,20 +49,20 @@ class HttpHeaders
 {
 public:
   static int buildHTTPRequestHeaderStruct (const char* input,
-                                           u_long inputSize,
-                                           u_long* nHeaderChars,
+                                           size_t inputSize,
+                                           size_t* headerSize,
                                            HttpRequestHeader *request,
                                            Connection* connection);
 
   static int buildHTTPResponseHeaderStruct (const char *input,
                                             HttpResponseHeader *response,
-                                            u_long* nbtr);
+                                            size_t* nbtr);
 
   static int sendHeader (HttpResponseHeader &response, Stream &stream,
                          MemBuf &memBuf, HttpThreadContext *ctx);
 
-  static int validHTTPRequest (const char*, u_long, u_long*, u_long*);
-  static int validHTTPResponse (const char*, u_long*, u_long*);
+  static int validHTTPRequest (const char *, size_t, size_t *, size_t *);
+  static int validHTTPResponse (const char *, size_t *, size_t *);
 
   static void resetHTTPRequest (HttpRequestHeader *request);
   static void resetHTTPResponse (HttpResponseHeader *response);
@@ -70,8 +70,8 @@ public:
   static void buildDefaultHTTPResponseHeader (HttpResponseHeader*);
   static void buildDefaultHTTPRequestHeader (HttpRequestHeader*);
 
-  static u_long buildHTTPResponseHeader (char*, HttpResponseHeader*);
-  static u_long buildHTTPRequestHeader (char*, HttpRequestHeader*);
+  static size_t buildHTTPResponseHeader (char *, HttpResponseHeader*);
+  static size_t buildHTTPRequestHeader (char *, HttpRequestHeader*);
 
 protected:
   static int readReqAuthLine (HttpRequestHeader *request,
diff --git a/myserver/include/protocol/http/http_thread_context.h 
b/myserver/include/protocol/http/http_thread_context.h
index a72fccf..1a87cf9 100644
--- a/myserver/include/protocol/http/http_thread_context.h
+++ b/myserver/include/protocol/http/http_thread_context.h
@@ -59,13 +59,14 @@ struct HttpThreadContext
   /*! Was the HTTP header already flushed to the client?  */
   bool headerSent;
 
+  /*! Size of the request header in `buffer'. */
+  size_t headerSize;
+
   ConnectionPtr connection;
   MemBuf *buffer;
   MemBuf *auxiliaryBuffer;
-  u_long buffersize;
   u_long id;
-  u_long nBytesToRead;
-  u_long nHeaderChars;
+  size_t nBytesToRead;
   HttpResponseHeader response;
   HttpRequestHeader request;
   string filenamePath;
diff --git a/myserver/src/http_handler/proxy/proxy.cpp 
b/myserver/src/http_handler/proxy/proxy.cpp
index b48f306..e9ca531 100644
--- a/myserver/src/http_handler/proxy/proxy.cpp
+++ b/myserver/src/http_handler/proxy/proxy.cpp
@@ -162,8 +162,8 @@ int Proxy::send (HttpThreadContext *td, const char* 
scriptpath,
 int Proxy::flushToClient (HttpThreadContext* td, Socket& client,
                           FiltersChain &out, bool onlyHeader, bool *kaClient)
 {
-  u_long read = 0;
-  u_long headerLength;
+  size_t read = 0;
+  size_t headerLength;
   int ret;
   size_t nbw;
   bool useChunks = false;
@@ -276,7 +276,6 @@ int Proxy::readPayLoad (HttpThreadContext* td,
   size_t contentLength = 0;
 
   size_t nbr = 0, nbw = 0, length = 0, inPos = 0;
-  u_long bufferDataSize = 0;
 
   /* Only the chunked transfer encoding is supported.  */
   if (serverTransferEncoding && serverTransferEncoding->compare ("chunked"))
@@ -291,10 +290,6 @@ int Proxy::readPayLoad (HttpThreadContext* td,
 
   length = contentLength;
 
-  bufferDataSize = (td->nBytesToRead < td->buffer->getRealLength () - 1
-                    ? td->nBytesToRead
-                    : td->buffer->getRealLength () - 1 ) - td->nHeaderChars;
-
   /* If it is specified a transfer encoding read data using it.  */
   if (serverTransferEncoding)
     {
diff --git a/myserver/src/protocol/http/http.cpp 
b/myserver/src/protocol/http/http.cpp
index 8b17b16..df48dea 100644
--- a/myserver/src/protocol/http/http.cpp
+++ b/myserver/src/protocol/http/http.cpp
@@ -144,7 +144,7 @@ int Http::traceHTTPRESOURCE (string& filename, bool mapped)
 {
   int ret;
   char tmpStr[12];
-  int contentLength = (int) td->nHeaderChars;
+  int contentLength = (int) td->headerSize;
   string time;
   int permissions;
   try
@@ -843,7 +843,6 @@ int Http::controlConnection (ConnectionPtr a, char*, char*, 
u_long, u_long,
     {
       td->buffer = a->getActiveThread ()->getBuffer ();
       td->auxiliaryBuffer = a->getActiveThread ()->getAuxiliaryBuffer ();
-      td->buffersize = a->getActiveThread ()->getBufferSize ();
       td->nBytesToRead = nbtr;
       td->connection = a;
       td->id = id;
@@ -892,7 +891,7 @@ int Http::controlConnection (ConnectionPtr a, char*, char*, 
u_long, u_long,
       validRequest =
         HttpHeaders::buildHTTPRequestHeaderStruct (td->buffer->getBuffer (),
                                                    td->buffer->getRealLength 
(),
-                                                   &(td->nHeaderChars),
+                                                   &(td->headerSize),
                                                    &(td->request),
                                                    td->connection);
 
@@ -937,7 +936,7 @@ int Http::controlConnection (ConnectionPtr a, char*, char*, 
u_long, u_long,
           int httpErrorCode;
           int readPostRet;
           /* Be sure that the client can handle the 100 status code.  */
-          if (nbtr == td->nHeaderChars && td->request.contentLength.compare 
("0")
+          if (nbtr == td->headerSize && td->request.contentLength.compare ("0")
               && td->request.ver.compare ("HTTP/1.0"))
             {
               const char* msg = "HTTP/1.1 100 Continue\r\n\r\n";
@@ -1060,16 +1059,16 @@ int Http::controlConnection (ConnectionPtr a, char*, 
char*, u_long, u_long,
               u_long bufferStrLen = strlen (td->buffer->getBuffer ());
               u_long remainingData = 0;
 
-              if (bufferStrLen - td->nHeaderChars >= MYSERVER_KB (8))
+              if (bufferStrLen - td->headerSize >= MYSERVER_KB (8))
                 remainingData = MYSERVER_KB (8);
               else
-                remainingData = bufferStrLen - td->nHeaderChars;
+                remainingData = bufferStrLen - td->headerSize;
 
               if (remainingData)
                 {
                   const char *data = (td->buffer->getBuffer ()
-                                      + td->nHeaderChars);
-                  u_long toCopy = nbtr - td->nHeaderChars;
+                                      + td->headerSize);
+                  u_long toCopy = nbtr - td->headerSize;
 
                   a->getConnectionBuffer ()->setBuffer (data, toCopy);
                   pipelineData = true;
diff --git a/myserver/src/protocol/http/http_data_read.cpp 
b/myserver/src/protocol/http/http_data_read.cpp
index a381cf4..2a7289f 100644
--- a/myserver/src/protocol/http/http_data_read.cpp
+++ b/myserver/src/protocol/http/http_data_read.cpp
@@ -265,7 +265,7 @@ int HttpDataRead::readPostData (HttpThreadContext* td, int* 
httpRetCode)
   else if (contentType->value.length () == 0)
     contentType->value.assign ("application/x-www-form-urlencoded");
 
-  td->request.uriOptsPtr = &(td->buffer->getBuffer ())[td->nHeaderChars];
+  td->request.uriOptsPtr = &(td->buffer->getBuffer ())[td->headerSize];
   td->buffer->getBuffer ()[td->nBytesToRead < td->buffer->getRealLength () - 1
                            ? td->nBytesToRead : td->buffer->getRealLength 
()-1] = '\0';
 
@@ -314,7 +314,7 @@ int HttpDataRead::readPostData (HttpThreadContext* td, int* 
httpRetCode)
 
   bufferDataSize = (td->nBytesToRead < td->buffer->getRealLength () - 1
                     ? td->nBytesToRead
-                    : td->buffer->getRealLength () - 1 ) - td->nHeaderChars;
+                    : td->buffer->getRealLength () - 1 ) - td->headerSize;
 
   /* If it is specified a transfer encoding read data using it.  */
   if (encoding)
diff --git a/myserver/src/protocol/http/http_headers.cpp 
b/myserver/src/protocol/http/http_headers.cpp
index 375f74c..4198769 100644
--- a/myserver/src/protocol/http/http_headers.cpp
+++ b/myserver/src/protocol/http/http_headers.cpp
@@ -44,7 +44,7 @@
 
   \return The number of bytes written to STR.
  */
-u_long HttpHeaders::buildHTTPResponseHeader (char *str,
+size_t HttpHeaders::buildHTTPResponseHeader (char *str,
                                              HttpResponseHeader* response)
 {
   /*
@@ -116,7 +116,7 @@ u_long HttpHeaders::buildHTTPResponseHeader (char *str,
 
   \return The number of bytes written to STR.
  */
-u_long HttpHeaders::buildHTTPRequestHeader (char * str,
+size_t HttpHeaders::buildHTTPRequestHeader (char * str,
                                             HttpRequestHeader* request)
 {
   char *pos = str;
@@ -259,12 +259,12 @@ void HttpHeaders::resetHTTPResponse (HttpResponseHeader 
*response)
   \param nLinesptr is a value of the lines number in the HEADER.
   \param ncharsptr is a value of the characters number in the HEADER.
  */
-int HttpHeaders::validHTTPResponse (const char *res, u_long *nLinesptr,
-                                    u_long *ncharsptr)
+int HttpHeaders::validHTTPResponse (const char *res, size_t *nLinesptr,
+                                    size_t *ncharsptr)
 {
-  u_long i;
-  u_long nLinechars = 0;
-  u_long nLines = 0;
+  size_t i;
+  size_t nLinechars = 0;
+  size_t nLines = 0;
 
   if (res == 0)
     return 0;
@@ -312,13 +312,13 @@ int HttpHeaders::validHTTPResponse (const char *res, 
u_long *nLinesptr,
   Any other returned value is the HTTP error.
   \param input buffer with the HTTP header.
   \param inputSize Size of the buffer
-  \param nHeaderChars Real size of the header.
+  \param headerSize Real size of the header.
   \param request HTTP request structure to fullfill with data.
   \param connection The current connection.
 */
 int HttpHeaders::buildHTTPRequestHeaderStruct (const char *input,
-                                               u_long inputSize,
-                                               u_long *nHeaderChars,
+                                               size_t inputSize,
+                                               size_t *headerSize,
                                                HttpRequestHeader *request,
                                                Connection *connection)
 {
@@ -333,9 +333,9 @@ int HttpHeaders::buildHTTPRequestHeaderStruct (const char 
*input,
     control if this is a regular request.
     The HTTP header ends with a \r\n\r\n sequence.
    */
-  u_long i = 0,j = 0;
+  size_t i = 0,j = 0;
   int max = 0;
-  u_long nLines, maxTotchars;
+  size_t nLines, maxTotchars;
   int validRequest;
   const int commandSize = 96;
   const int maxUri = HTTP_REQUEST_URI_DIM + 200 ;
@@ -404,7 +404,7 @@ int HttpHeaders::buildHTTPRequestHeaderStruct (const char 
*input,
       if (nLineControlled == 1)
         {
           int containOpts = 0;
-          u_long lenToken = tokenOff;
+          size_t lenToken = tokenOff;
           /*
             The first line has the form:
             GET /index.html HTTP/1.1
@@ -604,9 +604,9 @@ int HttpHeaders::buildHTTPRequestHeaderStruct (const char 
*input,
       token += tokenOff + 2;
       tokenOff = getCharInString (token, ":", maxTotchars);
     }
-  while (((u_long) (token - input) < maxTotchars) && token[0] != '\r');
+  while (((size_t) (token - input) < maxTotchars) && token[0] != '\r');
 
-  *nHeaderChars = maxTotchars;
+  *headerSize = maxTotchars;
   return 200;
 }
 
@@ -719,7 +719,7 @@ int HttpHeaders::readReqAuthLine (HttpRequestHeader 
*request,
 
   if (! request->auth.compare ("Basic"))
     {
-      u_long i;
+      size_t i;
       const char *base64 = &token[6];
       int len = getEndLine (base64, 64);
       const char *tmp = base64 + len - 1;
@@ -904,7 +904,7 @@ int HttpHeaders::sendHeader (HttpResponseHeader &response, 
Stream &stream,
   if (ctx == NULL || (!ctx->headerSent))
     {
       size_t nbw;
-      u_long len = buildHTTPResponseHeader (memBuf.getBuffer (), &response);
+      size_t len = buildHTTPResponseHeader (memBuf.getBuffer (), &response);
       ret = stream.write (memBuf.getBuffer (), len, &nbw);
 
       if (ctx)
@@ -926,7 +926,7 @@ int HttpHeaders::sendHeader (HttpResponseHeader &response, 
Stream &stream,
 */
 int HttpHeaders::buildHTTPResponseHeaderStruct (const char *input,
                                                 HttpResponseHeader *response,
-                                                u_long *nbtr)
+                                                size_t *nbtr)
 {
   /*
     Brief description.
@@ -940,8 +940,8 @@ int HttpHeaders::buildHTTPResponseHeaderStruct (const char 
*input,
     control if this is a regular response.
    */
   char *newInput;
-  u_long nLines,maxTotchars;
-  u_long validResponse;
+  size_t nLines,maxTotchars;
+  size_t validResponse;
   const char cmdSeps[]   = ": ,\t\n\r\0";
 
   int containStatusLine=0;
@@ -1084,7 +1084,7 @@ int HttpHeaders::buildHTTPResponseHeaderStruct (const 
char *input,
       }
     token = strtok (NULL, cmdSeps);
   }
-  while (token && ((u_long)(token - input) < maxTotchars));
+  while (token && ((size_t)(token - input) < maxTotchars));
 
   *nbtr = maxTotchars;
   delete [] input;
@@ -1101,13 +1101,13 @@ int HttpHeaders::buildHTTPResponseHeaderStruct (const 
char *input,
   \param nLinesptr Lines in the header.
   \param ncharsptr Characters in the header.
  */
-int HttpHeaders::validHTTPRequest (const char *req, u_long size,
-                                  u_long* nLinesptr, u_long* ncharsptr)
+int HttpHeaders::validHTTPRequest (const char *req, size_t size,
+                                  size_t* nLinesptr, size_t* ncharsptr)
 {
-  u_long i = 0;
-  u_long nLinechars = 0;
+  size_t i = 0;
+  size_t nLinechars = 0;
   nLinechars = 0;
-  u_long nLines = 0;
+  size_t nLines = 0;
 
   if (req == 0)
     return 400;
diff --git a/myserver/src/protocol/http/http_thread_context.cpp 
b/myserver/src/protocol/http/http_thread_context.cpp
index 24b6313..dd62990 100644
--- a/myserver/src/protocol/http/http_thread_context.cpp
+++ b/myserver/src/protocol/http/http_thread_context.cpp
@@ -29,14 +29,14 @@
  */
 const char* HttpThreadContext::getData (const char *name)
 {
-  Vhost *vh = (Vhost*)connection->host;
-
   string *ret = other.get (string (name));
-
   if (ret)
     return ret->c_str ();
-  else
-    return vh ? vh->getData (name) : NULL;
+
+  if (connection->host)
+    return connection->host->getData (name);
+
+  return NULL;
 }
 
 /*!
diff --git a/myserver/tests/test_http_request.cpp 
b/myserver/tests/test_http_request.cpp
index c1a7bcc..53e191b 100644
--- a/myserver/tests/test_http_request.cpp
+++ b/myserver/tests/test_http_request.cpp
@@ -63,7 +63,7 @@ public:
   {
     HttpRequestHeader header;
     Connection connection;
-    u_long requestLength;
+    size_t requestLength;
     const char * requestStr;
     int ret;
 #define BUILD_KEEPALIVE_REQ(X) "GET / HTTP/1.1\r\n" \
@@ -108,8 +108,8 @@ public:
     HttpRequestHeader header;
     Connection connection;
     const char * requestStr = "GET /resource?args HTTP/1.1\r\nHost: 
localhost\r\n\r\n";
-    u_long  bufferLength = strlen (requestStr);
-    u_long requestLength;
+    size_t  bufferLength = strlen (requestStr);
+    size_t requestLength;
     int ret = HttpHeaders::buildHTTPRequestHeaderStruct (requestStr,
                                                         bufferLength,
                                                         &requestLength,
@@ -132,8 +132,8 @@ public:
     HttpRequestHeader header;
     Connection connection;
     const char * requestStr;
-    u_long  bufferLength;
-    u_long requestLength;
+    size_t  bufferLength;
+    size_t requestLength;
     int ret;
 
     requestStr = "GET /resource HTTP/1.1\r\nHost: localhost\r\nRange: 
bytes=10-20\r\n\r\n";
@@ -172,8 +172,8 @@ public:
   {
     const char *request = "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n";
     int ret;
-    u_long nLines;
-    u_long nChars;
+    size_t nLines;
+    size_t nChars;
     ret = HttpHeaders::validHTTPRequest (request,
                                         strlen (request),
                                         &nLines,
@@ -186,8 +186,8 @@ public:
   {
     const char *incompleteRequest = "GET / HTTP/1.1\r\nHost: localhost";
     int ret;
-    u_long nLines;
-    u_long nChars;
+    size_t nLines;
+    size_t nChars;
     ret = HttpHeaders::validHTTPRequest (incompleteRequest,
                                         strlen (incompleteRequest),
                                         &nLines,
@@ -202,8 +202,8 @@ public:
     HttpRequestHeader header;
     Connection connection;
     const char *requestStr;
-    u_long  bufferLength;
-    u_long requestLength;
+    size_t  bufferLength;
+    size_t requestLength;
     int ret;
 
     requestStr = "GET /resource HTTP/1.1\r\nHost: localhost\r\n" \
@@ -240,8 +240,8 @@ public:
     HttpRequestHeader header;
     Connection connection;
     const char *requestStr;
-    u_long  bufferLength;
-    u_long requestLength;
+    size_t  bufferLength;
+    size_t requestLength;
     int ret;
 
     requestStr = "GET /resource HTTP/1.1\r\nHost: localhost\r\n" \
diff --git a/myserver/tests/test_http_response.cpp 
b/myserver/tests/test_http_response.cpp
index 9123efd..fa95687 100644
--- a/myserver/tests/test_http_response.cpp
+++ b/myserver/tests/test_http_response.cpp
@@ -58,7 +58,7 @@ public:
   {
     HttpResponseHeader header;
     const char * responseStr = "HTTP/1.1 200 Success\r\nContent-Length: 
0\r\n\r\n";
-    u_long nbtr;
+    size_t nbtr;
     int ret = HttpHeaders::buildHTTPResponseHeaderStruct (responseStr,
                                                          &header,
                                                          &nbtr);
@@ -71,7 +71,7 @@ public:
   void testJoinField ()
   {
     HttpResponseHeader header;
-    u_long nbtr;
+    size_t nbtr;
     const char * responseStr =
       "HTTP/1.1 200 Success\r\n\
 Content-Length: 0\r\n\
@@ -94,8 +94,8 @@ ToJoin: b\r\n";
   {
     HttpResponseHeader header;
     const char * responseStr = "HTTP/1.1 200 Success\r\nContent-Length: 
0\r\n\r\n";
-    u_long nLinesptr;
-    u_long ncharsptr;
+    size_t nLinesptr;
+    size_t ncharsptr;
 
     int ret = HttpHeaders::validHTTPResponse (responseStr,
                                              &nLinesptr,
@@ -108,8 +108,8 @@ ToJoin: b\r\n";
   {
     HttpResponseHeader header;
     const char * responseStr = "Not really HTTP response";
-    u_long nLinesptr;
-    u_long ncharsptr;
+    size_t nLinesptr;
+    size_t ncharsptr;
     int ret;
 
     ret = HttpHeaders::validHTTPResponse (responseStr,
@@ -160,8 +160,8 @@ ToJoin: b\r\n";
     HttpResponseHeader response;
     response.setValue ("foo", "bar");
     response.setValue ("baz", "foo");
-    u_long len = HttpHeaders::buildHTTPResponseHeader (buffer, &response);
-    CPPUNIT_ASSERT_EQUAL (len, (u_long) strlen (buffer));
+    size_t len = HttpHeaders::buildHTTPResponseHeader (buffer, &response);
+    CPPUNIT_ASSERT_EQUAL (len, strlen (buffer));
   }
 };
 



commit 9c287473e334a716cd5d5be8a32c9eaa1e90d5ea
Author: Giuseppe Scrivano <address@hidden>
Date:   Thu Apr 21 14:54:12 2011 +0200

    SslSocket: ensure the wrapped socket is properly `close'd.

diff --git a/myserver/src/base/socket/ssl_socket.cpp 
b/myserver/src/base/socket/ssl_socket.cpp
index 36369cf..69a0082 100644
--- a/myserver/src/base/socket/ssl_socket.cpp
+++ b/myserver/src/base/socket/ssl_socket.cpp
@@ -78,7 +78,6 @@ SslSocket::SslSocket ()
 SslSocket::~SslSocket ()
 {
   freeSSL ();
-  fd = -1;
 }
 
 /*!
@@ -86,7 +85,14 @@ SslSocket::~SslSocket ()
  */
 int SslSocket::close ()
 {
-  return Socket::close ();
+  int ret;
+  if (sock)
+    ret = sock->close ();
+  else
+    ret = Socket::close ();
+
+  this->fd = -1;
+  return ret;
 }
 
 /*!

-----------------------------------------------------------------------

Summary of changes:
 myserver/include/protocol/http/http_headers.h      |   14 +++---
 .../include/protocol/http/http_thread_context.h    |    7 ++-
 myserver/src/base/socket/ssl_socket.cpp            |   10 +++-
 myserver/src/http_handler/proxy/proxy.cpp          |    9 +---
 myserver/src/protocol/http/http.cpp                |   15 +++---
 myserver/src/protocol/http/http_data_read.cpp      |    4 +-
 myserver/src/protocol/http/http_headers.cpp        |   52 ++++++++++----------
 myserver/src/protocol/http/http_thread_context.cpp |   10 ++--
 myserver/tests/test_http_request.cpp               |   26 +++++-----
 myserver/tests/test_http_response.cpp              |   16 +++---
 10 files changed, 82 insertions(+), 81 deletions(-)


hooks/post-receive
-- 
GNU MyServer



reply via email to

[Prev in Thread] Current Thread [Next in Thread]