Skip to content
This repository was archived by the owner on Feb 4, 2022. It is now read-only.

Commit c310a83

Browse files
daprahamianmbroadst
authored andcommitted
feat(OP_MSG): add in parsing of OP_MSG
1 parent 11e4132 commit c310a83

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

lib/connection/connection.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ var inherits = require('util').inherits,
1010
parseHeader = require('../wireprotocol/shared').parseHeader,
1111
decompress = require('../wireprotocol/compression').decompress,
1212
Response = require('./commands').Response,
13+
BinMsg = require('./msg').BinMsg,
1314
MongoNetworkError = require('../error').MongoNetworkError,
1415
Logger = require('./logger'),
1516
OP_COMPRESSED = require('../wireprotocol/shared').opcodes.OP_COMPRESSED,
17+
OP_MSG = require('../wireprotocol/shared').opcodes.OP_MSG,
1618
MESSAGE_HEADER_SIZE = require('../wireprotocol/shared').MESSAGE_HEADER_SIZE,
1719
Buffer = require('safe-buffer').Buffer;
1820

@@ -301,14 +303,22 @@ var emitMessageHandler = function(self, message) {
301303
'Decompressing a compressed message from the server failed. The message is corrupt.'
302304
);
303305
}
306+
const ResponseConstructor = msgHeader.opCode === OP_MSG ? BinMsg : Response;
304307
self.messageHandler(
305-
new Response(self.bson, message, msgHeader, decompressedMsgBody, self.responseOptions),
308+
new ResponseConstructor(
309+
self.bson,
310+
message,
311+
msgHeader,
312+
decompressedMsgBody,
313+
self.responseOptions
314+
),
306315
self
307316
);
308317
});
309318
} else {
319+
const ResponseConstructor = msgHeader.opCode === OP_MSG ? BinMsg : Response;
310320
self.messageHandler(
311-
new Response(
321+
new ResponseConstructor(
312322
self.bson,
313323
message,
314324
msgHeader,

0 commit comments

Comments
 (0)