""" Script di diagnostica TFTP client. Effettua upload di un file di test e logga dettagliatamente la risposta del server. """ import io import logging from target_simulator.utils.tftp_client import TFTPClient, TFTPError # Configurazione logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger("tftp_diag") def tftp_diagnose(ip, port, remote_filename="MON:diag_test.txt"): logger.info(f"[DIAG] Step 1: Creazione TFTPClient per {ip}:{port}") client = TFTPClient(ip, port) test_content = "diagnostic test\n" in_memory_file = io.StringIO(test_content) logger.info(f"[DIAG] Step 2: Upload di file di test '{remote_filename}'") try: success = client.upload(remote_filename, in_memory_file, mode="netascii") if success: logger.info(f"[DIAG] Step 3: Upload riuscito su '{remote_filename}'") return True else: logger.error(f"[DIAG] Step 3: Upload fallito senza eccezione.") return False except TFTPError as e: logger.error(f"[DIAG] Step 3: TFTPError: {e}") return False except Exception as e: logger.error(f"[DIAG] Step 3: Eccezione generica: {e}") import traceback logger.error(traceback.format_exc()) return False if __name__ == "__main__": # Sostituisci con IP e porta del tuo server TFTP ip = "127.0.0.1" port = 50069 tftp_diagnose(ip, port)