|
1 | | -var Sequence = require('./Sequence'); |
2 | | -var Util = require('util'); |
3 | | -var Packets = require('../packets'); |
4 | | -var ResultSet = require('../ResultSet'); |
5 | | -var ServerStatus = require('../constants/server_status'); |
6 | | -var fs = require('fs'); |
7 | | -var Readable = require('readable-stream'); |
| 1 | +var ClientConstants = require('../constants/client'); |
| 2 | +var fs = require('fs'); |
| 3 | +var Packets = require('../packets'); |
| 4 | +var ResultSet = require('../ResultSet'); |
| 5 | +var Sequence = require('./Sequence'); |
| 6 | +var ServerStatus = require('../constants/server_status'); |
| 7 | +var Readable = require('readable-stream'); |
| 8 | +var Util = require('util'); |
8 | 9 |
|
9 | 10 | module.exports = Query; |
10 | 11 | Util.inherits(Query, Sequence); |
@@ -35,6 +36,7 @@ Query.prototype.determinePacket = function determinePacket(byte, parser) { |
35 | 36 | if (!resultSet) { |
36 | 37 | switch (byte) { |
37 | 38 | case 0x00: return Packets.OkPacket; |
| 39 | + case 0xfb: return Packets.LocalInfileRequestPacket; |
38 | 40 | case 0xff: return Packets.ErrorPacket; |
39 | 41 | default: return Packets.ResultSetHeaderPacket; |
40 | 42 | } |
@@ -90,14 +92,22 @@ Query.prototype['ErrorPacket'] = function(packet) { |
90 | 92 | this.end(err, results, fields); |
91 | 93 | }; |
92 | 94 |
|
93 | | -Query.prototype['ResultSetHeaderPacket'] = function(packet) { |
94 | | - if (packet.fieldCount === null) { |
95 | | - this._sendLocalDataFile(packet.extra); |
| 95 | +Query.prototype['LocalInfileRequestPacket'] = function(packet) { |
| 96 | + if (this._connection.config.clientFlags & ClientConstants.CLIENT_LOCAL_FILES) { |
| 97 | + this._sendLocalDataFile(packet.filename); |
96 | 98 | } else { |
97 | | - this._resultSet = new ResultSet(packet); |
| 99 | + this._loadError = new Error('Load local files command is disabled'); |
| 100 | + this._loadError.code = 'LOCAL_FILES_DISABLED'; |
| 101 | + this._loadError.fatal = false; |
| 102 | + |
| 103 | + this.emit('packet', new Packets.EmptyPacket()); |
98 | 104 | } |
99 | 105 | }; |
100 | 106 |
|
| 107 | +Query.prototype['ResultSetHeaderPacket'] = function(packet) { |
| 108 | + this._resultSet = new ResultSet(packet); |
| 109 | +}; |
| 110 | + |
101 | 111 | Query.prototype['FieldPacket'] = function(packet) { |
102 | 112 | this._resultSet.fieldPackets.push(packet); |
103 | 113 | }; |
|
0 commit comments