@@ -10,6 +10,7 @@ module.exports = class DXCluster extends events.EventEmitter {
1010 this . status = {
1111 connected : false ,
1212 awaiting_login : false ,
13+ awaiting_password : false ,
1314 }
1415 this . regex = {
1516 deline : / ^ ( D X d e ) + ( [ A - Z 0 - 9 / \- # ] { 3 , } ) : ? * ( \d * .\d { 1 , 2 } ) * ( [ A - Z 0 - 9 / \- # ] { 3 , } ) + ( .* \S ) ? + ( \d { 4 } ) { 1 } Z * ( \w { 2 } \d { 2 } ) ? / g,
@@ -33,14 +34,16 @@ module.exports = class DXCluster extends events.EventEmitter {
3334 this . port = opts . port || 23
3435
3536 this . socket = net . createConnection ( {
36- host : this . host || 'w6cua.no-ip.org' ,
37+ host : this . host ,
3738 port : this . port || 7300
3839 } , ( ) => {
39- this . status . connected = this . status . awaiting_login = true
40+ this . status . connected = this . status . awaiting_login = true ;
41+ if ( ( opts . password || '' ) !== '' ) { this . status . awaiting_password = true ; }
4042 resolve ( this . socket ) ;
4143 } )
4244
43- let loginPrompt = opts . loginPrompt || 'Please enter your call:'
45+ let loginPrompt = opts . loginPrompt || 'Please enter your call:' ;
46+ let passPrompt = opts . passPrompt || 'password:' ;
4447
4548 this . socket . on ( 'data' , ( data ) => {
4649 if ( this . status . awaiting_login ) {
@@ -50,6 +53,13 @@ module.exports = class DXCluster extends events.EventEmitter {
5053 }
5154 }
5255 }
56+ if ( this . status . awaiting_password ) {
57+ if ( data . toString ( 'utf8' ) . indexOf ( passPrompt ) != - 1 ) {
58+ if ( this . write ( opts . password ) ) {
59+ this . status . awaiting_password = false
60+ }
61+ }
62+ }
5363 this . _parseDX ( data . toString ( 'utf8' ) )
5464 } )
5565
0 commit comments