summaryrefslogtreecommitdiff
path: root/s/d_logic.cpp
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-07-23 13:41:21 -0400
committerEliot Horowitz <eliot@10gen.com>2010-07-23 13:41:21 -0400
commit08b250630b1b97f05b6e2fa2c03440781de89b3b (patch)
tree048404e076b079212539c2a63dc5646fb21e79ad /s/d_logic.cpp
parent0d1975d0d446568a756141ca3be96f97f609a998 (diff)
downloadmongo-08b250630b1b97f05b6e2fa2c03440781de89b3b.tar.gz
make handlePossibleShardedMEssage finer grained and a bit more optimistic
Diffstat (limited to 's/d_logic.cpp')
-rw-r--r--s/d_logic.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/s/d_logic.cpp b/s/d_logic.cpp
index 1e373ec0f75..67e06e05c30 100644
--- a/s/d_logic.cpp
+++ b/s/d_logic.cpp
@@ -42,7 +42,7 @@ using namespace std;
namespace mongo {
- bool handlePossibleShardedMessage( Client& c, CurOp& curop , OpDebug& debug , Message &m, DbResponse &dbresponse ){
+ bool handlePossibleShardedMessage( Message &m, DbResponse* dbresponse ){
if ( ! shardingState.enabled() )
return false;
@@ -54,26 +54,18 @@ namespace mongo {
return false;
DbMessage d(m);
- if ( op == dbUpdate ){
- if ( d.getInt(0) & UpdateOption_Broadcast ){
- return false;
- }
- }
- else if ( op == dbDelete ){
- if ( d.getInt(0) & RemoveOption_Broadcast ){
- return false;
- }
- }
-
const char *ns = d.getns();
string errmsg;
if ( shardVersionOk( ns , errmsg ) ){
return false;
}
+
+ dbtempreleasecond unlock;
log() << "shardVersionOk failed ns:" << ns << " " << errmsg << endl;
if ( doesOpGetAResponse( op ) ){
+ assert( dbresponse );
BufBuilder b( 32768 );
b.skip( sizeof( QueryResult ) );
{
@@ -93,8 +85,8 @@ namespace mongo {
Message * resp = new Message();
resp->setData( qr , true );
- dbresponse.response = resp;
- dbresponse.responseTo = m.header()->id;
+ dbresponse->response = resp;
+ dbresponse->responseTo = m.header()->id;
return true;
}