summaryrefslogtreecommitdiff
path: root/util/net
diff options
context:
space:
mode:
authorAntonin Kral <a.kral@bobek.cz>2011-12-15 09:35:47 +0100
committerAntonin Kral <a.kral@bobek.cz>2011-12-15 09:35:47 +0100
commitf0d9a01bccdaeb466c12c92057914bbfef59526c (patch)
tree7679efa1f0daf7d1d906882a15dc77af6b7aef32 /util/net
parent5d342a758c6095b4d30aba0750b54f13b8916f51 (diff)
downloadmongodb-f0d9a01bccdaeb466c12c92057914bbfef59526c.tar.gz
Imported Upstream version 2.0.2
Diffstat (limited to 'util/net')
-rw-r--r--util/net/httpclient.h3
-rw-r--r--util/net/message_port.cpp1
-rw-r--r--util/net/message_server_port.cpp4
-rw-r--r--util/net/miniwebserver.cpp9
4 files changed, 13 insertions, 4 deletions
diff --git a/util/net/httpclient.h b/util/net/httpclient.h
index c3f8c82..126969f 100644
--- a/util/net/httpclient.h
+++ b/util/net/httpclient.h
@@ -35,7 +35,7 @@ namespace mongo {
return _entireResponse;
}
- const Headers getHeaders() const {
+ Headers getHeaders() const {
return _headers;
}
@@ -76,4 +76,3 @@ namespace mongo {
#endif
};
}
-
diff --git a/util/net/message_port.cpp b/util/net/message_port.cpp
index 9abfaf7..29764c3 100644
--- a/util/net/message_port.cpp
+++ b/util/net/message_port.cpp
@@ -139,6 +139,7 @@ namespace mongo {
MessagingPort::MessagingPort( Socket& sock )
: Socket( sock ) , piggyBackData( 0 ) {
+ ports.insert(this);
}
void MessagingPort::shutdown() {
diff --git a/util/net/message_server_port.cpp b/util/net/message_server_port.cpp
index ca0b13d..ac13712 100644
--- a/util/net/message_server_port.cpp
+++ b/util/net/message_server_port.cpp
@@ -87,6 +87,10 @@ namespace mongo {
log() << "ClockSkewException - shutting down" << endl;
exitCleanly( EXIT_CLOCK_SKEW );
}
+ catch ( const DBException& e ) { // must be right above std::exception to avoid catching subclasses
+ log() << "DBException handling request, closing client connection: " << e << endl;
+ p->shutdown();
+ }
catch ( std::exception &e ) {
error() << "Uncaught std::exception: " << e.what() << ", terminating" << endl;
dbexit( EXIT_UNCAUGHT );
diff --git a/util/net/miniwebserver.cpp b/util/net/miniwebserver.cpp
index 0793100..f0b5856 100644
--- a/util/net/miniwebserver.cpp
+++ b/util/net/miniwebserver.cpp
@@ -166,8 +166,13 @@ namespace mongo {
ss << responseMsg;
string response = ss.str();
- sock.send( response.c_str(), response.size() , "http response" );
- sock.close();
+ try {
+ sock.send( response.c_str(), response.size() , "http response" );
+ sock.close();
+ }
+ catch ( SocketException& e ) {
+ log(1) << "couldn't send data to http client: " << e << endl;
+ }
}
string MiniWebServer::getHeader( const char * req , string wanted ) {