Comparing version 3.5.0 to 3.5.1
@@ -358,16 +358,29 @@ // This file was modified by Oracle on June 1, 2021. | ||
const verifyIdentity = this.config.ssl.verifyIdentity; | ||
const host = this.config.host; | ||
const servername = this.config.host; | ||
let secureEstablished = false; | ||
const secureSocket = new Tls.TLSSocket(this.stream, { | ||
rejectUnauthorized: rejectUnauthorized, | ||
requestCert: true, | ||
secureContext: secureContext, | ||
isServer: false | ||
this.stream.removeAllListeners('data'); | ||
const secureSocket = Tls.connect({ | ||
rejectUnauthorized, | ||
requestCert: rejectUnauthorized, | ||
secureContext, | ||
isServer: false, | ||
socket: this.stream, | ||
servername | ||
}, () => { | ||
secureEstablished = true; | ||
if (rejectUnauthorized) { | ||
if (typeof servername === 'string' && verifyIdentity) { | ||
const cert = secureSocket.getPeerCertificate(true); | ||
const serverIdentityCheckError = Tls.checkServerIdentity(servername, cert); | ||
if (serverIdentityCheckError) { | ||
onSecure(serverIdentityCheckError); | ||
return; | ||
} | ||
} | ||
} | ||
onSecure(); | ||
}); | ||
if (typeof host === 'string') { | ||
secureSocket.setServername(host); | ||
} | ||
// error handler for secure socket | ||
secureSocket.on('_tlsError', err => { | ||
secureSocket.on('error', err => { | ||
if (secureEstablished) { | ||
@@ -379,40 +392,8 @@ this._handleNetworkError(err); | ||
}); | ||
secureSocket.on('secure', () => { | ||
secureEstablished = true; | ||
let callbackValue = null; | ||
if (rejectUnauthorized) { | ||
callbackValue = secureSocket.ssl.verifyError() | ||
if (!callbackValue && typeof host === 'string' && verifyIdentity) { | ||
const cert = secureSocket.ssl.getPeerCertificate(true); | ||
callbackValue = Tls.checkServerIdentity(host, cert) | ||
} | ||
} | ||
onSecure(callbackValue); | ||
}); | ||
secureSocket.on('data', data => { | ||
this.packetParser.execute(data); | ||
}); | ||
this.write = buffer => { | ||
secureSocket.write(buffer); | ||
}; | ||
// start TLS communications | ||
secureSocket._start(); | ||
this.write = buffer => secureSocket.write(buffer); | ||
} | ||
pipe() { | ||
if (this.stream instanceof Net.Stream) { | ||
this.stream.ondata = (data, start, end) => { | ||
this.packetParser.execute(data, start, end); | ||
}; | ||
} else { | ||
this.stream.on('data', data => { | ||
this.packetParser.execute( | ||
data.parent, | ||
data.offset, | ||
data.offset + data.length | ||
); | ||
}); | ||
} | ||
} | ||
protocolError(message, code) { | ||
@@ -953,46 +934,2 @@ // Starting with MySQL 8.0.24, if the client closes the connection | ||
if (Tls.TLSSocket) { | ||
// not supported | ||
} else { | ||
Connection.prototype.startTLS = function _startTLS(onSecure) { | ||
if (this.config.debug) { | ||
// eslint-disable-next-line no-console | ||
console.log('Upgrading connection to TLS'); | ||
} | ||
const crypto = require('crypto'); | ||
const config = this.config; | ||
const stream = this.stream; | ||
const rejectUnauthorized = this.config.ssl.rejectUnauthorized; | ||
const credentials = crypto.createCredentials({ | ||
key: config.ssl.key, | ||
cert: config.ssl.cert, | ||
passphrase: config.ssl.passphrase, | ||
ca: config.ssl.ca, | ||
ciphers: config.ssl.ciphers | ||
}); | ||
const securePair = Tls.createSecurePair( | ||
credentials, | ||
false, | ||
true, | ||
rejectUnauthorized | ||
); | ||
if (stream.ondata) { | ||
stream.ondata = null; | ||
} | ||
stream.removeAllListeners('data'); | ||
stream.pipe(securePair.encrypted); | ||
securePair.encrypted.pipe(stream); | ||
securePair.cleartext.on('data', data => { | ||
this.packetParser.execute(data); | ||
}); | ||
this.write = function(buffer) { | ||
securePair.cleartext.write(buffer); | ||
}; | ||
securePair.on('secure', () => { | ||
onSecure(rejectUnauthorized ? securePair.ssl.verifyError() : null); | ||
}); | ||
}; | ||
} | ||
module.exports = Connection; |
@@ -97,2 +97,4 @@ 'use strict'; | ||
this.changedRows = parseInt(m[1], 10); | ||
} else { | ||
this.changedRows = 0; | ||
} | ||
@@ -99,0 +101,0 @@ } |
{ | ||
"name": "mysql2", | ||
"version": "3.5.0", | ||
"version": "3.5.1", | ||
"description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS", | ||
@@ -84,3 +84,3 @@ "main": "index.js", | ||
"portfinder": "^1.0.28", | ||
"prettier": "^2.4.1", | ||
"prettier": "^3.0.0", | ||
"progress": "^2.0.3", | ||
@@ -87,0 +87,0 @@ "typescript": "^5.0.2", |
@@ -56,2 +56,10 @@ ## MySQL 2 | ||
If you are using TypeScript, you will need to install `@types/node`. | ||
```bash | ||
npm install --save-dev @types/node | ||
``` | ||
> For TypeScript documentation and examples, see [here](./documentation/en/TypeScript-Examples.md). | ||
## First Query | ||
@@ -58,0 +66,0 @@ ```js |
@@ -0,1 +1,5 @@ | ||
/** | ||
* @deprecated | ||
* `OkPacket` is deprecated and might be removed in the future major release. Please use `ResultSetHeader` instead. | ||
*/ | ||
declare interface OkPacket { | ||
@@ -7,2 +11,6 @@ constructor: { | ||
affectedRows: number; | ||
/** | ||
* @deprecated | ||
* `changedRows` is deprecated and might be removed in the future major release. Please use `affectedRows` property instead. | ||
*/ | ||
changedRows: number; | ||
@@ -9,0 +17,0 @@ insertId: number; |
@@ -6,14 +6,9 @@ import { OkPacket } from './OkPacket.js'; | ||
declare type ProcedureCallPacket< | ||
T = RowDataPacket[] | RowDataPacket[][] | ResultSetHeader | ||
T = [RowDataPacket[], ResultSetHeader] | ResultSetHeader, | ||
> = T extends RowDataPacket[] | ||
? [...T, ResultSetHeader] | ||
: T extends RowDataPacket[][] | ||
? [...T, ResultSetHeader] | ||
: T extends ResultSetHeader | OkPacket | OkPacket[] | ||
? [T, ResultSetHeader] | ||
: T extends ResultSetHeader | OkPacket | ||
? ResultSetHeader | ||
: | ||
| [...RowDataPacket[], ResultSetHeader] | ||
| [...RowDataPacket[][], ResultSetHeader] | ||
| ResultSetHeader; | ||
: [RowDataPacket[], ResultSetHeader] | ResultSetHeader; | ||
export { ProcedureCallPacket }; |
@@ -11,5 +11,9 @@ declare interface ResultSetHeader { | ||
warningStatus: number; | ||
changedRows?: number; | ||
/** | ||
* @deprecated | ||
* `changedRows` is deprecated and might be removed in the future major release. Please use `affectedRows` property instead. | ||
*/ | ||
changedRows: number; | ||
} | ||
export { ResultSetHeader }; |
@@ -23,2 +23,3 @@ import { | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -38,2 +39,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -54,2 +56,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -69,2 +72,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -71,0 +75,0 @@ | RowDataPacket[][] |
@@ -18,2 +18,3 @@ import { | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -30,2 +31,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -43,2 +45,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -55,2 +58,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -57,0 +61,0 @@ | RowDataPacket[][] |
@@ -18,2 +18,3 @@ import { | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -30,2 +31,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -43,2 +45,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -55,2 +58,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -57,0 +61,0 @@ | RowDataPacket[][] |
@@ -23,2 +23,3 @@ import { | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -38,2 +39,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -54,2 +56,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -69,2 +72,3 @@ | RowDataPacket[][] | ||
| ResultSetHeader | ||
| ResultSetHeader[] | ||
| RowDataPacket[] | ||
@@ -71,0 +75,0 @@ | RowDataPacket[][] |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
294
605296
15030