Merge pull request #191 from wavify/fix-pass-info

Pass response text code and message for tagged response in append and move
fork
Brian White 11 years ago
commit a31d7bdde9

@ -893,9 +893,9 @@ ImapConnection.prototype.append = function(data, options, cb) {
cmd += (Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data)); cmd += (Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data));
cmd += '}'; cmd += '}';
var self = this, step = 1; var self = this, step = 1;
this._send(cmd, function(err) { this._send(cmd, function(err, info) {
if (err || step++ === 2) if (err || step++ === 2)
return cb(err); return cb(err, info);
self._state.conn.write(data); self._state.conn.write(data);
self._state.conn.write(CRLF); self._state.conn.write(CRLF);
self.debug&&self.debug('\n==> ' + inspect(data.toString()) + '\n'); self.debug&&self.debug('\n==> ' + inspect(data.toString()) + '\n');
@ -1314,44 +1314,44 @@ ImapConnection.prototype._move = function(which, uids, boxTo, cb) {
throw new Error('Cannot move message: ' throw new Error('Cannot move message: '
+ 'server does not allow deletion of messages'); + 'server does not allow deletion of messages');
} else { } else {
this._copy(which, uids, boxTo, function ccb(err, reentryCount, deletedUIDs, this._copy(which, uids, boxTo, function ccb(err, info, reentryCount, deletedUIDs,
counter) { counter) {
if (err) if (err)
return cb(err); return cb(err, info);
counter = counter || 0; counter = counter || 0;
// Make sure we don't expunge any messages marked as Deleted except the // Make sure we don't expunge any messages marked as Deleted except the
// one we are moving // one we are moving
if (reentryCount === undefined) { if (reentryCount === undefined) {
self.search(['DELETED'], function(e, result) { self.search(['DELETED'], function(e, result) {
ccb(e, 1, result); ccb(e, info, 1, result);
}); });
} else if (reentryCount === 1) { } else if (reentryCount === 1) {
if (counter < deletedUIDs.length) { if (counter < deletedUIDs.length) {
self.delFlags(deletedUIDs[counter], 'Deleted', function(e) { self.delFlags(deletedUIDs[counter], 'Deleted', function(e) {
process.nextTick(function() { process.nextTick(function() {
ccb(e, reentryCount, deletedUIDs, counter + 1); ccb(e, info, reentryCount, deletedUIDs, counter + 1);
}); });
}); });
} else } else
ccb(err, reentryCount + 1, deletedUIDs); ccb(err, info, reentryCount + 1, deletedUIDs);
} else if (reentryCount === 2) { } else if (reentryCount === 2) {
self.addFlags(uids, 'Deleted', function(e) { self.addFlags(uids, 'Deleted', function(e) {
ccb(e, reentryCount + 1, deletedUIDs); ccb(e, info, reentryCount + 1, deletedUIDs);
}); });
} else if (reentryCount === 3) { } else if (reentryCount === 3) {
self.removeDeleted(function(e) { self.removeDeleted(function(e) {
ccb(e, reentryCount + 1, deletedUIDs); ccb(e, info, reentryCount + 1, deletedUIDs);
}); });
} else if (reentryCount === 4) { } else if (reentryCount === 4) {
if (counter < deletedUIDs.length) { if (counter < deletedUIDs.length) {
self.addFlags(deletedUIDs[counter], 'Deleted', function(e) { self.addFlags(deletedUIDs[counter], 'Deleted', function(e) {
process.nextTick(function() { process.nextTick(function() {
ccb(e, reentryCount, deletedUIDs, counter + 1); ccb(e, info, reentryCount, deletedUIDs, counter + 1);
}); });
}); });
} else } else
cb(); cb(err, info);
} }
}); });
} }

Loading…
Cancel
Save