@@ -75,6 +75,7 @@ function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose
7575 , connectTimer = timer ( connectTimedOut , options . connect_timeout )
7676
7777 let socket = null
78+ , cancelMessage
7879 , result = new Result ( )
7980 , incoming = Buffer . alloc ( 0 )
8081 , needsTypes = options . fetch_types
@@ -139,16 +140,14 @@ function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose
139140 }
140141
141142 async function cancel ( { pid, secret } , resolve , reject ) {
142- socket || ( socket = await createSocket ( ) )
143- if ( ! socket )
144- return
145-
146- socket . removeAllListeners ( )
147- socket = net . Socket ( )
148- socket . on ( 'connect' , ( ) => socket . write ( b ( ) . i32 ( 16 ) . i32 ( 80877102 ) . i32 ( pid ) . i32 ( secret ) . end ( 16 ) ) )
149- socket . once ( 'error' , reject )
150- socket . once ( 'close' , resolve )
151- connect ( )
143+ try {
144+ cancelMessage = b ( ) . i32 ( 16 ) . i32 ( 80877102 ) . i32 ( pid ) . i32 ( secret ) . end ( 16 )
145+ await connect ( )
146+ socket . once ( 'error' , reject )
147+ socket . once ( 'close' , resolve )
148+ } catch ( error ) {
149+ reject ( error )
150+ }
152151 }
153152
154153 function execute ( q ) {
@@ -955,7 +954,7 @@ function Connection(options, queues = {}, { onopen = noop, onend = noop, onclose
955954 }
956955
957956 function StartupMessage ( ) {
958- return b ( ) . inc ( 4 ) . i16 ( 3 ) . z ( 2 ) . str (
957+ return cancelMessage || b ( ) . inc ( 4 ) . i16 ( 3 ) . z ( 2 ) . str (
959958 Object . entries ( Object . assign ( {
960959 user,
961960 database,
0 commit comments