fix ftp
This commit is contained in:
@@ -29,6 +29,9 @@ logger = logging.getLogger(__name__)
|
||||
class ASEHandler(FTPHandler):
|
||||
"""Custom FTP handler that extends FTPHandler with custom commands and file handling."""
|
||||
|
||||
# Permetti connessioni dati da indirizzi IP diversi (importante per NAT/proxy)
|
||||
permit_foreign_addresses = True
|
||||
|
||||
def __init__(self: object, conn: object, server: object, ioloop: object = None) -> None:
|
||||
"""Initializes the handler, adds custom commands, and sets up command permissions.
|
||||
|
||||
@@ -155,13 +158,27 @@ def main():
|
||||
handler = ASEHandler
|
||||
handler.cfg = cfg
|
||||
handler.authorizer = authorizer
|
||||
handler.masquerade_address = cfg.proxyaddr
|
||||
|
||||
# Set masquerade address only if configured (importante per HA con VIP)
|
||||
# Questo è l'IP che il server FTP pubblicherà ai client per le connessioni passive
|
||||
if cfg.proxyaddr and cfg.proxyaddr.strip():
|
||||
handler.masquerade_address = cfg.proxyaddr
|
||||
logger.info(f"FTP masquerade address configured: {cfg.proxyaddr}")
|
||||
else:
|
||||
logger.info("FTP masquerade address not configured - using server's default IP")
|
||||
|
||||
# Set the range of passive ports for the FTP server
|
||||
_range = list(range(cfg.firstport, cfg.firstport + cfg.portrangewidth))
|
||||
handler.passive_ports = _range
|
||||
passive_ports_range = list(range(cfg.firstport, cfg.firstport + cfg.portrangewidth))
|
||||
handler.passive_ports = passive_ports_range
|
||||
|
||||
# Log configuration
|
||||
logger.info(f"Starting FTP server on port {cfg.service_port} with DatabaseAuthorizer")
|
||||
logger.info(
|
||||
f"FTP passive ports configured: {cfg.firstport}-{cfg.firstport + cfg.portrangewidth - 1} "
|
||||
f"({len(passive_ports_range)} ports)"
|
||||
)
|
||||
logger.info(f"FTP permit_foreign_addresses: {handler.permit_foreign_addresses}")
|
||||
logger.info(f"Database connection: {cfg.dbuser}@{cfg.dbhost}:{cfg.dbport}/{cfg.dbname}")
|
||||
|
||||
# Create and start the FTP server
|
||||
server = FTPServer(("0.0.0.0", cfg.service_port), handler)
|
||||
|
||||
Reference in New Issue
Block a user