@@ -28,9 +28,10 @@ export const net = {
2828 const socket = {
2929 error,
3030 success,
31- readyState : 'closed ' ,
31+ readyState : 'open ' ,
3232 connect : ( port , hostname ) => {
3333 socket . raw = null
34+ socket . readyState = 'connecting'
3435 typeof port === 'string'
3536 ? Deno . connect ( { transport : 'unix' , path : socket . path = port } ) . then ( success , error )
3637 : Deno . connect ( { transport : 'tcp' , port : socket . port = port , hostname : socket . hostname = hostname || 'localhost' } ) . then ( success , error ) // eslint-disable-line
@@ -72,15 +73,21 @@ export const net = {
7273 return false
7374 } ,
7475 destroy : ( ) => close ( true ) ,
75- end : close
76+ end : ( x ) => {
77+ x && socket . write ( x )
78+ close ( )
79+ }
7680 }
7781
7882 return socket
7983
8084 async function success ( raw ) {
85+ if ( socket . readyState !== 'connecting' )
86+ return raw . close ( )
87+
8188 const encrypted = socket . encrypted
82- socket . readyState = 'open'
8389 socket . raw = raw
90+ socket . readyState = 'open'
8491 socket . encrypted
8592 ? call ( socket . events . secureConnect )
8693 : call ( socket . events . connect )
@@ -115,10 +122,10 @@ export const net = {
115122 }
116123
117124 function closed ( ) {
118- socket . break = socket . encrypted = false
119- if ( socket . readyState !== 'open' )
125+ if ( socket . readyState === 'closed' )
120126 return
121127
128+ socket . break = socket . encrypted = false
122129 call ( socket . events . close )
123130 socket . readyState = 'closed'
124131 }
@@ -139,6 +146,7 @@ export const net = {
139146export const tls = {
140147 connect ( { socket, ...options } ) {
141148 socket . encrypted = true
149+ socket . readyState = 'connecting'
142150 Deno . startTls ( socket . raw , { hostname : socket . hostname , ...options } )
143151 . then ( socket . success , socket . error )
144152 socket . raw = null
0 commit comments