summaryrefslogtreecommitdiff
path: root/src/HttpConnection.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-03-26 12:16:57 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-03-26 12:16:57 +0000
commit9b73454b07dc23e2aaf08baf6eff1643590e30f3 (patch)
tree775c1b69f6f00670d932bc4880c269da84930685 /src/HttpConnection.cc
parent228ed66f73ada0db6bcec7fd5aa7462a3c3f3900 (diff)
2007-03-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To the ability to read options from a config file: * src/main.cc: Command-line parameter validation is delegated to OptionHandler class. * src/OptionHandlerFactory.h, src/OptionHandlerFactory.cc: New class. * src/Option.h, src/Option.cc (clear): New function. * src/OptionParser.h, src/OptionParser.cc: New class. * src/OptionHandler.h: New class. * src/NameMatchOptionHandler.h: New class. * src/OptionHandlerImpl.h: New classes. * src/prefs.h: '_' -> '-' (FTP_PASV_ENABLED): Renamed to FTP_PASV. (FTP_PASV): New definition. * src/Util.h, src/Util.cc (getRealSize): New function. To disable netrc support if .netrc file does not have correct permissions: * src/File.h, src/File.cc (mode): New function. To prevent confidential information to be logged: * src/HttpConnection.h, src/HttpConnection.cc (eraseConfidentialInfo): New function. (sendRequest): Call eraseConfidentialInfo(). (sendProxyRequest): Call eraseConfidentialInfo(). * src/main.cc: Validate permissions of .netrc file. To add --user-agent command-line option: * src/main.cc: Added new command line option: --user-agent * src/prefs.h (PREF_USER_AGENT): New definition. * src/HttpRequestCommand.cc (executeInternal): Set user-agent option parameter to HttpRequest object. Marged the patches from Dan Fandrich.
Diffstat (limited to 'src/HttpConnection.cc')
-rw-r--r--src/HttpConnection.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc
index 40de31be..c35273ed 100644
--- a/src/HttpConnection.cc
+++ b/src/HttpConnection.cc
@@ -39,6 +39,7 @@
#include "message.h"
#include "prefs.h"
#include "LogFactory.h"
+#include <sstream>
HttpConnection::HttpConnection(int cuid,
const SocketHandle& socket,
@@ -47,10 +48,27 @@ HttpConnection::HttpConnection(int cuid,
logger = LogFactory::getInstance();
}
+string HttpConnection::eraseConfidentialInfo(const string& request)
+{
+ istringstream istr(request);
+ ostringstream ostr;
+ string line;
+ while(getline(istr, line)) {
+ if(Util::startsWith(line, "Authorization: Basic")) {
+ ostr << "Authorization: Basic ********\n";
+ } else if(Util::startsWith(line, "Proxy-Authorization: Basic")) {
+ ostr << "Proxy-Authorization: Basic ********\n";
+ } else {
+ ostr << line << "\n";
+ }
+ }
+ return ostr.str();
+}
+
void HttpConnection::sendRequest(const HttpRequestHandle& httpRequest)
{
string request = httpRequest->createRequest();
- logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
+ logger->info(MSG_SENDING_REQUEST, cuid, eraseConfidentialInfo(request).c_str());
socket->writeData(request.c_str(), request.size());
outstandingHttpRequests.push_back(httpRequest);
}
@@ -58,7 +76,7 @@ void HttpConnection::sendRequest(const HttpRequestHandle& httpRequest)
void HttpConnection::sendProxyRequest(const HttpRequestHandle& httpRequest)
{
string request = httpRequest->createProxyRequest();
- logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
+ logger->info(MSG_SENDING_REQUEST, cuid, eraseConfidentialInfo(request).c_str());
socket->writeData(request.c_str(), request.size());
outstandingHttpRequests.push_back(httpRequest);
}