@@ -79,7 +79,7 @@ export function buildSocksServer(options: SocksServerOptions): SocksServer {
79
79
return net . createServer ( handleSocksConnect ) ;
80
80
81
81
82
- async function handleSocksConnect ( this : net . Server , socket : net . Socket ) {
82
+ async function handleSocksConnect ( this : net . Server , socket : net . Socket ) : Promise < void > {
83
83
const server = this ;
84
84
// Until we pass this socket onwards, we handle (and drop) any errors on it:
85
85
socket . on ( 'error' , ignoreError ) ;
@@ -88,18 +88,18 @@ export function buildSocksServer(options: SocksServerOptions): SocksServer {
88
88
const firstByte = await readBytes ( socket , 1 ) ; ;
89
89
const version = firstByte [ 0 ] ;
90
90
if ( version === 0x04 ) {
91
- return handleSocksV4 ( socket , ( address : SocksTcpAddress ) => {
91
+ await handleSocksV4 ( socket , ( address : SocksTcpAddress ) => {
92
92
socket . removeListener ( 'error' , ignoreError ) ;
93
93
server . emit ( 'socks-tcp-connect' , socket , address ) ;
94
94
} ) ;
95
95
} else if ( version === 0x05 ) {
96
- return handleSocksV5 ( socket , ( address : SocksTcpAddress ) => {
96
+ await handleSocksV5 ( socket , ( address : SocksTcpAddress ) => {
97
97
socket . removeListener ( 'error' , ignoreError ) ;
98
98
server . emit ( 'socks-tcp-connect' , socket , address ) ;
99
99
} ) ;
100
100
} else {
101
101
// Should never happen, since this is sniffed by Httpolyglot, but just in case:
102
- return resetOrDestroy ( socket ) ;
102
+ resetOrDestroy ( socket ) ;
103
103
}
104
104
} catch ( err ) {
105
105
// We log but otherwise ignore failures, e.g. if the client closes the
@@ -329,7 +329,7 @@ async function handleUsernamePasswordMetadata(socket: net.Socket) {
329
329
async function readBytes ( socket : net . Socket , length ?: number | undefined ) : Promise < Buffer > {
330
330
const buffer = socket . read ( length ) ;
331
331
if ( buffer === null ) {
332
- return new Promise ( ( resolve , reject ) => {
332
+ return new Promise < Buffer > ( ( resolve , reject ) => {
333
333
socket . once ( 'readable' , ( ) => resolve ( readBytes ( socket , length ) ) ) ;
334
334
socket . once ( 'close' , ( ) => reject ( new Error ( 'Socket closed' ) ) ) ;
335
335
socket . once ( 'error' , reject ) ;
0 commit comments