X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmessage.cpp;h=2b3e40b539d9208138153d6401d453e17a590cee;hb=c8df43e7794dc82d5604dfa612e464bbc5ca3cdd;hp=f1e4c286bd13031c1918d21cebacec189200223c;hpb=c3bc44e20b80683ec1e8296a449804ff6c5f7aff;p=libs%2Fnet.git diff --git a/source/message.cpp b/source/message.cpp index f1e4c28..2b3e40b 100644 --- a/source/message.cpp +++ b/source/message.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #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)));