Skip to content

Commit

Permalink
fix(SenderLink): update multi-part messages according to comments
Browse files Browse the repository at this point in the history
  • Loading branch information
mbroadst committed Nov 4, 2015
1 parent 11af098 commit b3d5fb9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
7 changes: 4 additions & 3 deletions lib/sender_link.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,16 +158,17 @@ SenderLink.prototype._sendMessage = function(message, options) {

// send the frame(s)
var maxFrameSize = this.session.connection._params.maxFrameSize;
var idealFrameSize = (maxFrameSize - (options.deliveryTag.length + TransferFrame.FRAME_OVERHEAD));
var approximateFrameSize =
messageBuffer.length + TransferFrame.FRAME_OVERHEAD + options.deliveryTag.length;
if (approximateFrameSize >= maxFrameSize) {
var messageCount = Math.ceil(approximateFrameSize / maxFrameSize);
var messageCount = Math.ceil(approximateFrameSize / idealFrameSize);
var bufferIdx = 0;
for (var i = 0; i < messageCount; ++i) {
transferOptions.more = (i !== messageCount - 1) ? true : false;
transferOptions.message = messageBuffer.slice(bufferIdx, bufferIdx + maxFrameSize);
transferOptions.message = messageBuffer.slice(bufferIdx, bufferIdx + idealFrameSize);
this.session.connection.sendFrame(new TransferFrame(transferOptions));
bufferIdx += maxFrameSize;
bufferIdx += idealFrameSize;
}
} else {
transferOptions.message = messageBuffer;
Expand Down
10 changes: 5 additions & 5 deletions test/unit/client.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,11 @@ describe('Client', function() {
var messageBuffer = codecBuffer.get();

var expected = [];
expected.push(messageBuffer.slice(0, 512));
expected.push(messageBuffer.slice(512, 1024));
expected.push(messageBuffer.slice(1024, 1536));
expected.push(messageBuffer.slice(1536, 2048));
expected.push(messageBuffer.slice(2048, 2063));
expected.push(messageBuffer.slice(0, 482));
expected.push(messageBuffer.slice(482, 964));
expected.push(messageBuffer.slice(964, 1446));
expected.push(messageBuffer.slice(1446, 1928));
expected.push(messageBuffer.slice(1928, 2410));

// 1. It is an error if the delivery-id on a continuation transfer differs
// from the delivery-id on the first transfer of a delivery.
Expand Down

0 comments on commit b3d5fb9

Please sign in to comment.