]> git.tdb.fi Git - libs/net.git/blobdiff - source/http/message.cpp
Add a dynamic receiver class for more flexible packet handling
[libs/net.git] / source / http / message.cpp
index 92321e8a87bd4c953f039141724c621c2d977ac2..a6ab4653de9dec58c7c186ea5ecd5c6138545102 100644 (file)
@@ -1,20 +1,14 @@
+#include "message.h"
 #include <cstdlib>
 #include <msp/core/maputils.h>
 #include <msp/strings/format.h>
 #include <msp/strings/utils.h>
-#include "message.h"
 
 using namespace std;
 
 namespace Msp {
 namespace Http {
 
-Message::Message():
-       http_version(0x11),
-       chunk_length(0),
-       complete(false)
-{ }
-
 void Message::set_header(const string &hdr, const string &val)
 {
        headers[normalize_header_name(hdr)] = val;
@@ -48,7 +42,7 @@ unsigned Message::parse_content(const string &d)
        if(complete)
                return 0;
 
-       HeaderMap::const_iterator i = headers.find("Content-Length");
+       auto i = headers.find("Content-Length");
        if(i!=headers.end())
        {
                string::size_type needed = lexical_cast<string::size_type>(i->second)-content.size();
@@ -120,9 +114,9 @@ string Message::str_common() const
 {
        string result;
 
-       for(HeaderMap::const_iterator i=headers.begin(); i!=headers.end(); ++i)
-               if(i->first[0]!='-')
-                       result += format("%s: %s\r\n", i->first, i->second);
+       for(auto &kvp: headers)
+               if(kvp.first[0]!='-')
+                       result += format("%s: %s\r\n", kvp.first, kvp.second);
        result += "\r\n";
        result += content;
 
@@ -133,17 +127,17 @@ string Message::normalize_header_name(const string &hdr) const
 {
        string result = hdr;
        bool upper = true;
-       for(string::iterator i=result.begin(); i!=result.end(); ++i)
+       for(char &c: result)
        {
-               if(upper)
+               if(c=='-')
+                       upper = true;
+               else if(upper)
                {
-                       *i = toupper(*i);
+                       c = toupper(static_cast<unsigned char>(c));
                        upper = false;
                }
-               else if(*i=='-')
-                       upper = true;
                else
-                       *i = tolower(*i);
+                       c = tolower(static_cast<unsigned char>(c));
        }
        return result;
 }