diff --git a/copyparty/ftpd.py b/copyparty/ftpd.py index e5d8ff9e..de0d07e3 100644 --- a/copyparty/ftpd.py +++ b/copyparty/ftpd.py @@ -590,6 +590,16 @@ try: class SftpHandler(FtpHandler, TLS_FTPHandler): pass + class FtpsImplicitHandler(FtpHandler, TLS_FTPHandler): + def handle(self): + self.secure_connection(self.ssl_context) + + def handle_ssl_established(self): + FtpHandler.handle(self) + + def ftp_AUTH(self, arg): + self.respond("550 not supposed to be used with implicit SSL.") + except: pass @@ -604,7 +614,7 @@ class Ftpd(object): hs.append([FtpHandler, self.args.ftp]) if self.args.ftps: try: - h1 = SftpHandler + h1 = FtpsImplicitHandler except: t = "\nftps requires pyopenssl;\nplease run the following:\n\n {} -m pip install --user pyopenssl\n" print(t.format(pybin))