]> git.tdb.fi Git - libs/net.git/blobdiff - source/message.cpp
Use maputils.h
[libs/net.git] / source / message.cpp
index f1e4c286bd13031c1918d21cebacec189200223c..2b3e40b539d9208138153d6401d453e17a590cee 100644 (file)
@@ -1,4 +1,5 @@
 #include <cstdlib>
+#include <msp/core/maputils.h>
 #include <msp/strings/formatter.h>
 #include <msp/strings/utils.h>
 #include "message.h"
@@ -26,11 +27,7 @@ bool Message::has_header(const string &hdr) const
 
 const string &Message::get_header(const string &hdr) const
 {
-       HeaderMap::const_iterator i = headers.find(normalize_header_name(hdr));
-       if(i==headers.end())
-               throw KeyError("Undefined header", hdr);
-
-       return i->second;
+       return get_item(headers, normalize_header_name(hdr));
 }
 
 void Message::add_content(const string &d)
@@ -105,13 +102,13 @@ unsigned Message::parse_headers(const string &d)
        {
                unsigned lf = d.find('\n', start);
                if(lf==string::npos)
-                       throw InvalidParameterValue("Incomplete response");
+                       throw invalid_argument("Message::parse_headers");
                if(lf==start || (d[start]=='\r' && lf==start+1))
                        return lf+1;
 
                unsigned colon = d.find(':', start);
                if(colon>lf)
-                       throw InvalidParameterValue("No colon in header");
+                       throw invalid_argument("Message::parse_headers");
 
                set_header(d.substr(start, colon-start), strip(d.substr(colon+1, lf-colon-1)));