@@ -310,14 +310,14 @@ func (cmd commandEpsv) RequireAuth() bool {
310310}
311311
312312func (cmd commandEpsv ) Execute (conn * Conn , param string ) {
313- addr := conn .conn . LocalAddr ()
314- lastIdx := strings .LastIndex (addr . String () , ":" )
313+ addr := conn .passiveListenIP ()
314+ lastIdx := strings .LastIndex (addr , ":" )
315315 if lastIdx <= 0 {
316316 conn .writeMessage (425 , "Data connection failed" )
317317 return
318318 }
319319
320- socket , err := newPassiveSocket (addr . String () [:lastIdx ], conn .logger , conn .tlsConfig )
320+ socket , err := newPassiveSocket (addr [:lastIdx ], conn . PassivePort () , conn .logger , conn .tlsConfig )
321321 if err != nil {
322322 log .Error (err )
323323 conn .writeMessage (425 , "Data connection failed" )
@@ -367,7 +367,9 @@ func (cmd commandList) Execute(conn *Conn, param string) {
367367 conn .writeMessage (550 , err .Error ())
368368 return
369369 }
370+
370371 if ! info .IsDir () {
372+ conn .logger .Printf ("%s is not a dir.\n " , path )
371373 return
372374 }
373375 var files []FileInfo
@@ -592,23 +594,16 @@ func (cmd commandPasv) RequireAuth() bool {
592594}
593595
594596func (cmd commandPasv ) Execute (conn * Conn , param string ) {
595- addr := conn .conn .LocalAddr ()
596- parts := strings .Split (addr .String (), ":" )
597- if len (parts ) != 2 {
598- conn .writeMessage (425 , "Data connection failed" )
599- return
600- }
601- socket , err := newPassiveSocket (parts [0 ], conn .logger , conn .tlsConfig )
597+ listenIP := conn .passiveListenIP ()
598+ socket , err := newPassiveSocket (listenIP , conn .PassivePort (), conn .logger , conn .tlsConfig )
602599 if err != nil {
603600 conn .writeMessage (425 , "Data connection failed" )
604601 return
605602 }
606603 conn .dataConn = socket
607604 p1 := socket .Port () / 256
608605 p2 := socket .Port () - (p1 * 256 )
609- host := socket .Host ()
610-
611- quads := strings .Split (host , "." )
606+ quads := strings .Split (listenIP , "." )
612607 target := fmt .Sprintf ("(%s,%s,%s,%s,%d,%d)" , quads [0 ], quads [1 ], quads [2 ], quads [3 ], p1 , p2 )
613608 msg := "Entering Passive Mode " + target
614609 conn .writeMessage (227 , msg )
0 commit comments