summaryrefslogtreecommitdiff
path: root/src/HttpHeader.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-08-03 12:36:02 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-08-03 12:36:02 +0000
commit9251b47f6cccc7cd5175ab6858c3330eb0752061 (patch)
treeabc942ea6adea78fcb3b97d47df801b5232a74fa /src/HttpHeader.cc
parent928465b7bc638380004b39d6a5c6737f9f30faa0 (diff)
2006-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/Option.h (getAsBool): New function. * src/Option.cc (prefs.h): Included. (defined): 0-length value is now recognized as undefined. (getAsInt): Rewritten. (getAsLLInt): Rewritten. (getAsBool): New function. * src/FeatureConfig.h: Rewritten. * src/FeatureConfig.cc: Rewritten. * src/prefs.h (PREF_STDOUT_LOG): New definition. (PREF_LOG): New definition. (PREF_DIR): New definition. (PREF_OUT): New definition. (PREF_SPLIT): New definition. (PREF_DAEMON): New definition. (PREF_REFERER): New definition. (PREF_TORRENT_FILE): New definition. (PREF_LISTEN_PORT): New definition. (PREF_METALINK_FILE): New definition. (PREF_METALINK_VERSION): New definition. (PREF_METALINK_LANGUAGE): New definition. (PREF_METALINK_OS): New definition. (PREF_METALINK_SERVERS): New definition. * src/main.cc (main): Following command-line parameters are now put into Option class: stdoutLog, logfile, dir, ufilename, split, daemonMode, referer, torrentFile, metalinkFile, listenPort, metalinkVersion, metalinkLanguage, metalinkOs, metalinkServers To fix the bug that aria2 can not handle http response header properly. * src/HttpHeader.cc (put): Made name lowercased. (defined): Made name lowercased. (getFirst): Made name lowercased. (get): Made name lowercased. (getFirstAsInt): Rewritten. (getFirstAsLLInt): Rewritten.
Diffstat (limited to 'src/HttpHeader.cc')
-rw-r--r--src/HttpHeader.cc22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc
index fa61056c..8df150c9 100644
--- a/src/HttpHeader.cc
+++ b/src/HttpHeader.cc
@@ -20,18 +20,19 @@
*/
/* copyright --> */
#include "HttpHeader.h"
+#include "Util.h"
void HttpHeader::put(const string& name, const string& value) {
- multimap<string, string>::value_type vt(name, value);
+ multimap<string, string>::value_type vt(Util::toLower(name), value);
table.insert(vt);
}
bool HttpHeader::defined(const string& name) const {
- return table.count(name) == 1;
+ return table.count(Util::toLower(name)) >= 1;
}
string HttpHeader::getFirst(const string& name) const {
- multimap<string, string>::const_iterator itr = table.find(name);
+ multimap<string, string>::const_iterator itr = table.find(Util::toLower(name));
if(itr == table.end()) {
return "";
} else {
@@ -41,26 +42,21 @@ string HttpHeader::getFirst(const string& name) const {
Strings HttpHeader::get(const string& name) const {
Strings v;
- for(multimap<string, string>::const_iterator itr = table.find(name); itr != table.end(); itr++) {
+ for(multimap<string, string>::const_iterator itr = table.find(Util::toLower(name)); itr != table.end(); itr++) {
v.push_back((*itr).second);
}
return v;
}
int HttpHeader::getFirstAsInt(const string& name) const {
- multimap<string, string>::const_iterator itr = table.find(name);
- if(itr == table.end()) {
- return 0;
- } else {
- return (int)strtol((*itr).second.c_str(), NULL, 10);
- }
+ return (int)getFirstAsLLInt(name);
}
long long int HttpHeader::getFirstAsLLInt(const string& name) const {
- multimap<string, string>::const_iterator itr = table.find(name);
- if(itr == table.end()) {
+ string value = getFirst(name);
+ if(value == "") {
return 0;
} else {
- return strtoll((*itr).second.c_str(), NULL, 10);
+ return strtoll(value.c_str(), NULL, 10);
}
}