рд╕рдВрджрд░реНрдн: https://github.com/nodejs/node/pull/11349
рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:
tedious-1.14.0.tgz/lib/message-io.js:117: this.securePair = tls.createSecurePair(credentials);
#135 рднреА рджреЗрдЦреЗрдВред
рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ https://github.com/sidorares/node-mysql2/pull/367 ред
@ChALkeR рд╕реВрдЪрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬрдм рд╣рдо рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ рддреЛ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдкреНрд░реЗрд░рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ :-)
@tvrprasad : @ChALkeR Node.js рдЯреАрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдпрд╣ рдкреЛрд╕реНрдЯ рдЬреНрдпрд╛рджрд╛рддрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ tedious
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ
@ChALkeR : рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрд▓рдн рд╣реИрдВред рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ рд╣реИрдВ (рдЬреИрд╕реЗ node-mysql
рд▓рд┐рдП рдкреАрдЖрд░) "рд╕рд░рд▓" рдЯреАрдПрд▓рдПрд╕ рдЙрдиреНрдирдпрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЧреИрд░-рдЯреАрдПрд▓рдПрд╕ рд╕реЗ рдЯреАрдПрд▓рдПрд╕ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЯреАрдбреАрдПрд╕ рдореЗрдВ, рдЯреАрдПрд▓рдПрд╕ рдЕрдкрдЧреНрд░реЗрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рднреА рд╣реИрдВрдбрд╢реЗрдХрд┐рдВрдЧ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдЯреАрдбреАрдПрд╕ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЧреЗ рдХреЗ рд╕рднреА рдЯреАрдПрд▓рдПрд╕ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ tls.createSecurePair
рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ TLSSocket
рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЬрдорд╛рдпрд╛, рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдкрд░ рдирд╣реАрдВ рд▓рд╛ рд╕рдХрд╛ред рдореИрдВ
рдЬрдм рдореИрдВ рдЗрд╕ рдкрд░ рдкрд╣реБрдВрдЪреВрдВрдЧрд╛ рддреЛ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓рд╛ рд╣реИред
рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдореИрдВ рдореЗрдВ рднрд╛рдЧ рдХрд┐ рд╕реЗ рдПрдХ рд╕реЙрдХреЗрдЯ рд▓рдкреЗрдЯрдХрд░ рд╣реИ readable-stream
рдПрдХ рдореЗрдВ рдкреИрдХреЗрдЬ TLSSocket
Node.js рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ segfault (!) рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ
@arthurschreiber рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :-)
рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ TLSSocket рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдкрд░ рдирд╣реАрдВ рд▓рд╛ рд╕рдХрд╛ред
рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдЬреАрдердм рдкрд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рднреЗрдЬреЗрдВред рдореИрдВ рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред
@tvrprasad @arthurschreiber рдпрд╣рд╛рдВ https://nodejs.org/dist/latest-v6.x/docs/api/tls.html#tls_class_securepair
рдиреЛрдб v8.0.1 рдкрд░ рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░рд╛ рдРрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:
(node:6344) [DEP0064] DeprecationWarning: tls.createSecurePair() is deprecated. Please use tls.Socket instead.
рдореИрдВ рдЕрдкрдиреЗ Microsoft SQL рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП patriksimek/node-mssql
рдФрд░ tedious
рдбреНрд░рд╛рдЗрд╡рд░ ( node-mssql
рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреНрд░рд╛рдЗрд╡рд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдердХрд╛рдК рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рдиреЛрдб- mssql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
Listening on port 4000
(node:4402) [DEP0064] DeprecationWarning: tls.createSecurePair() is deprecated. Please use tls.Socket instead.
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЧрд▓рдд рди рд╕рдордЭреЗрдВ рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЛрдИ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдм рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдкреИрдХреЗрдЬ 'mssql' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
{
рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ: рд╕рдЪ
}
(рдиреЛрдб: 13508) [рдбреАрдИрдкреА0064] рдкрджрд╛рд╡рдирдд рдЪреЗрддрд╛рд╡рдиреА: tls.createSecurePair () рдкрджрд╛рд╡рдирдд рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп tls.Socket рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЬрдм рдиреЛрдб рдЯреАрдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рддреА рд╣реИ рддреЛ рдиреЛрдб рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рдордп рд╕реАрдорд╛ рдХреНрдпрд╛ рд╣реИ? рдмрд╕ рдЙрддреНрд╕реБрдХред
рд╕рдВрднрд╡рдд: рдиреЛрдб 9 рдпрд╛ 10 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо 4 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЙрдХ-рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред :-/ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рд╕рд╣рдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдордпрд░реЗрдЦрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдЗрд╕реЗ рдЖрдЬ рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдиреЛрдб 8.9.0 lts рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рджреЛ рднрд╛рд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рджреЛрдиреЛрдВ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВред
@Iiridayn рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!
рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрд╛ рдХрд┐ TLSSocket рд╕реЗ рд╣реИрдВрдбрд╢реЗрдХ рдкреИрдХреЗрдЯ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП, https://github.com/tediousjs/tedious/issues/515#issuecomment -283191248 рдХреЗ рд╕рдорд╛рди рдмрд┐рдВрджреБ рдкрд░ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реИ: рднреНрд░рдорд┐рдд:
рдпрд╣ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред
рдЙрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдореИрдВ Azure рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╕ рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдореБрдЭреЗ рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдХрд┐ рдРрдк рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд SQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдЧреНрд░рдВрде I рдкрдврд╝рд╛ рд╣реИ рдмрд╣реБрдд рд╡рд╛рдХреНрдкрдЯреБ рдирд╣реАрдВ рд╣реИрдВред
рдкрд╣рд▓реЗ рд╣реА, рдЖрдкрдХрд╛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
@ Jorgeee1 рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ, рдпрд╣ рдЖрдкрдХреА рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рднреА Azure DB рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдердХрд╛рдК рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдХрдЪреНрдЪреЗ рд╣реИрдВрдбрд╢реЗрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП createSecurePair
рдХреЛ TLSSocket
+ рдПрдХ TCP рд╕рд░реНрд╡рд░ рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдкреНрд░рдорд╛рдг рд▓рд┐рдЦрд╛ред рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рд╣реЛ рдЧрдПред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЙрдХреЗрдЯ рдЖрджрд┐ рдЦрд╛рдирд╛ рдареАрдХ рдирд╣реАрдВ рд╣реИ)ред рдпрд╣ рдПрдХ рдЪрд░реНрдЪрд╛ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдХреЗ рдЕрдзрд┐рдХ рд╣реИред https://github.com/nodejs/help/issues/1010 рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реБрдЭрд╛рд╡ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
@ joux3 рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдХреНрдпрд╛ рдЖрдк рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ? рд╡рд╣рд╛рдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
рднрд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрд╕рд╛рдиреА рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдПрдХ рддрд┐рд╣рд╛рдИ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдо MySQL рдореЗрдВ рднреА рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛ рдЧрдП рд╣реИрдВред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ - рдЖрдкрдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ :)ред
рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рд╣реИ
рд╣реЗ рдЖрдк рд╕рднреА,
рдореИрдВ рдпрд╣рд╛рдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрдкрдбреЗрдЯ рджреЗрддрд╛ рд╣реВрдВред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣рд┐рд╖реНрдХрд░рдг рд╕рдВрджреЗрд╢ рдПрдХ рдЙрдкрджреНрд░рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред tls.createSecurePair
рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдШреБ рдФрд░ рдордзреНрдпрдо рдЕрд╡рдзрд┐ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╣реАрдВ рдирд╣реАрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред https://github.com/nodejs/node/pull/17882 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рд╕рд╛рде рд╣реА, https://github.com/nodejs/node/pull/17882 рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЛрдб.рдЬреЗрдПрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ tls.createSecurePair
рдкреБрди: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ, рдПрдХ (рдЕрднреА рдХреЗ рд▓рд┐рдП) рдЖрдВрддрд░рд┐рдХ DuplexSocket
рд╡рд░реНрдЧред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдареАрдХ рд╡рд╣реА рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ tls.createSecurePair
рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдердХрд╛рдК рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рджрд┐рд▓рдЪрд╕реНрдк ЁЯШБ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИрдХ рдирд╣реАрдВ рдЬреИрд╕рд╛ рдХрд┐ @joux3 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЕрднреА рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ DuplexSocket
рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдердХрд╛рдК рдореЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдП рдХрд┐ tls.createSecurePair
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдм рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ .
рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ! рдореИрдВ
@arthurschreiber Fwiw, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЙрд╕ DuplexPair
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ https://www.npmjs.com/package/duplexpair рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ tls.createSecurePair()
рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛ?
@addaleax рд╕реНрд╡реАрдЯ! тЭдя╕П рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╣рдореЗрдВ tls.createSecurePair
рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВ! рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ
@arthurschreiber рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдЗрд╕ рддрд░рд╣ рд╕рд░рд▓ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
diff --git a/package.json b/package.json
index bca5b266849d..8cc0ed957577 100644
--- a/package.json
+++ b/package.json
@@ -43,6 +43,7 @@
"babel-runtime": "^6.26.0",
"big-number": "0.3.1",
"bl": "^1.2.0",
+ "duplexpair": "^1.0.1",
"iconv-lite": "^0.4.11",
"readable-stream": "^2.2.6",
"sprintf": "0.1.5"
diff --git a/src/message-io.js b/src/message-io.js
index 6c2a15c32a9f..a1de3a1e91c0 100644
--- a/src/message-io.js
+++ b/src/message-io.js
@@ -1,7 +1,9 @@
+'use strict';
const tls = require('tls');
const crypto = require('crypto');
const EventEmitter = require('events').EventEmitter;
const Transform = require('readable-stream').Transform;
+const DuplexPair = require('duplexpair');
const Packet = require('./packet').Packet;
const TYPE = require('./packet').TYPE;
@@ -84,10 +86,14 @@ module.exports = class MessageIO extends EventEmitter {
startTls(credentialsDetails, hostname, trustServerCertificate) {
const credentials = tls.createSecureContext ? tls.createSecureContext(credentialsDetails) : crypto.createCredentials(credentialsDetails);
- this.securePair = tls.createSecurePair(credentials);
+ const duplexpair = new DuplexPair();
+ this.securePair = {
+ cleartext: new tls.TLSSocket(duplexpair.socket1),
+ encrypted: duplexpair.socket2
+ };
this.tlsNegotiationComplete = false;
- this.securePair.on('secure', () => {
+ this.securePair.cleartext.on('secure', () => {
const cipher = this.securePair.cleartext.getCipher();
if (!trustServerCertificate) {
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдорд┐рдд рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИ ...
рдореИрдВрдиреЗ рд╕рд┐рдХреНрдпреЛрд░рдкреЗрдпрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╢реЙрдЯ рджрд┐рдпрд╛ред рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рдиреЛрдб 9 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред https://github.com/joux3/tedious/commit/6d255fbdaa2f9afd388617e6e34815cae95292a0
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд╡рд▓реЛрдХрди рд╣реИрдВ (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ?):
Assertion failed: (uv__stream_fd(stream) >= 0), function uv_read_start, file ../deps/uv/src/unix/stream.c, line 1517.
рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИclose
рд╣реИрдВрдбрд▓рд░ рд╣реИ)'рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП @addaleax рдХреЛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
@ joux3 рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдХрд╛рдВрдЯрд╛ рдиреЛрдб 8--рд╡рд░реНрддрдорд╛рди рдПрд▓рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ? рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рдирд╛ рд╣реИ? рдореИрдВ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ рдЗрд╕реЗ https://github.com/patriksimek/node-mssql/ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдирдХрд▓реА рдЯрд╛рдЗрдорд░ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛, рдирдХрд▓реА рдЯрд╛рдЗрдорд░ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдбреБрдкреНрд▓реЗрдХреНрд╕рдкреЗрдпрд░ рдХреЛ рддреЛрдбрд╝рдиреЗ рд▓рдЧрддрд╛ рд╣реИ
@ joux3 рд╡рд╣ рдХреМрди рд╕реА рдкрд░реАрдХреНрд╖рд╛ рд╣реЛрдЧреА? (рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рджреЗрдЦрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдкрд░реЗ рдореИрдВ рдЗрд╕ рдХреЛрдб рдЖрдзрд╛рд░ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ)
@addaleax , рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рд╣реИ https://github.com/tediousjs/tedious/blob/f5a0f95a5a522ad6a312170201b829e70c866976/test/integration/connection-retry-test.js#L73 -L104
рдЯрд╛рдЗрдорд░ рдХреЛ рдпрд╣рд╛рдВ рдЕрдХреНрд╖рдо рдХрд░рдирд╛: https://github.com/tediousjs/tedious/pull/689/files#diff -ed1dc3ba8a10a8fb4b18a528b35bad00ред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдирдХрд▓реА setTimeout
https://github.com/tediousjs/tedious/pull/689/commits/ff5d5eb1a3603db05266306a823fa49a98b50209 рджреНрд╡рд╛рд░рд╛ рдирдХрд▓реА рдЯрд╛рдЗрдорд░ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛
@jimmont , рдореИрдВрдиреЗ https://github.com/tediousjs/tedious/pull/689 рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рд╛ (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрд░ рдирд╛рдо рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖрдИрдбреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ ...) рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдиреЛрдб 8 рдкрд░ рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред
рдЗрд╕ ASAP рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП!
рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдкрдбреЗрдЯ рдорд┐рд▓ рд╕рдХреЗред
рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ #689 рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
рдРрд╕реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЬрд╣рд╛рдВ stdout рдХреЗ рдмрдЬрд╛рдп stderr рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИрдВред <fail/>
рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА?
рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдмрд╛рдж, рдпрд╣ рдЕрдВрддрддрдГ (рдФрд░ рдареАрдХ рд╕реЗ) https://github.com/tediousjs/tedious/pull/738 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ [email protected]
рдЕрдм npm рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ next
рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА latest
рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдкрдХреЗ рдзреИрд░реНрдп рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
738 рдореЗрдВ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реИ рдФрд░ @tediousjs/microsoft-contributors рдЯреАрдо рдХреЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдорд░реНрдЬ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред