diff options
author | Antonin Kral <a.kral@bobek.cz> | 2011-12-15 09:35:47 +0100 |
---|---|---|
committer | Antonin Kral <a.kral@bobek.cz> | 2011-12-15 09:35:47 +0100 |
commit | f0d9a01bccdaeb466c12c92057914bbfef59526c (patch) | |
tree | 7679efa1f0daf7d1d906882a15dc77af6b7aef32 /util/net | |
parent | 5d342a758c6095b4d30aba0750b54f13b8916f51 (diff) | |
download | mongodb-f0d9a01bccdaeb466c12c92057914bbfef59526c.tar.gz |
Imported Upstream version 2.0.2
Diffstat (limited to 'util/net')
-rw-r--r-- | util/net/httpclient.h | 3 | ||||
-rw-r--r-- | util/net/message_port.cpp | 1 | ||||
-rw-r--r-- | util/net/message_server_port.cpp | 4 | ||||
-rw-r--r-- | util/net/miniwebserver.cpp | 9 |
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 ) { |