From f70e09eda7bcfc56155c3a3a30e1dd0dee4f8f32 Mon Sep 17 00:00:00 2001 From: jfmartel Date: Thu, 30 Nov 2023 14:26:40 -0500 Subject: [PATCH] =?UTF-8?q?Modifications=20=C3=A0=20SFTP=20suite=20aux=20e?= =?UTF-8?q?ssais=20=C3=A0=20Angrignon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Configuration/ZT.cfg | 5 +++-- password | 1 + sftpbatch | 6 +++--- sources/SFTPServerManager.cpp | 17 +++++++++++++++-- sources/SFTPServerManager.h | 2 +- 5 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 password diff --git a/Configuration/ZT.cfg b/Configuration/ZT.cfg index 39e3e22..03601ef 100644 --- a/Configuration/ZT.cfg +++ b/Configuration/ZT.cfg @@ -117,6 +117,7 @@ NETWORK_SHARE_DOMAIN=metro #Adresse du serveur #SFTP_SERVER_ADDRESS=127.0.0.1 #Répertoire de destination sur le serveur (doit finir par un "/") +#SFTP_DESTINATION= #SFTP_DESTINATION=/Transfert$/vers_corpo/CT/ #---------------------------------- @@ -129,6 +130,6 @@ SFTP_LOGIN=zonetest SFTP_PASSWORD=zonetest #Adresse du serveur SFTP_SERVER_ADDRESS=127.0.0.1 -#Répertoire de destination sur le serveur (doit finir par un "/") -SFTP_DESTINATION=/home/zonetest/DevZT/test/ +#Répertoire de destination sur le serveur. Doit être vide pour le client SFTP. +SFTP_DESTINATION= diff --git a/password b/password new file mode 100644 index 0000000..6232ece --- /dev/null +++ b/password @@ -0,0 +1 @@ +zonetest \ No newline at end of file diff --git a/sftpbatch b/sftpbatch index 4ce8917..da414bb 100644 --- a/sftpbatch +++ b/sftpbatch @@ -1,3 +1,3 @@ -put ./Trains/LOGZT1_2023-11-27-07-28-45-323.bin /home/zonetest/DevZT/test/CVRT-D-LOGZT1_2023-11-27-07-28-45-323.bin -put ./LOG/LogZT.txt /home/zonetest/DevZT/test/CVRT-LogZT.txt -put ./ING/IngLog.txt /home/zonetest/DevZT/test/CVRT-IngLog.txt \ No newline at end of file +put ./Trains/LOGZT1_2023-11-30-14-20-10-677.bin CVRT-D-LOGZT1_2023-11-30-14-20-10-677.bin +put ./LOG/LogZT.txt CVRT-LogZT.txt +put ./ING/IngLog.txt CVRT-IngLog.txt \ No newline at end of file diff --git a/sources/SFTPServerManager.cpp b/sources/SFTPServerManager.cpp index e5713e7..589f972 100644 --- a/sources/SFTPServerManager.cpp +++ b/sources/SFTPServerManager.cpp @@ -32,6 +32,18 @@ int CSFTPServerManager::InitFTPServerManager(bool EnableSFTPClient, QString SFTP mTransferProcess = new QProcess(this); connect(mTransferProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(ProcessFinished(int,QProcess::ExitStatus))); + QFile *PWDFile = new QFile("./password"); + if(PWDFile->open(QFile::ReadWrite | QFile::Truncate | QFile::Text | QFile::Unbuffered) == false) + { + qDebug("Imposible d'ouvrir le fichier password"); + PWDFile->close(); + delete PWDFile; + } + + PWDFile->write(qPrintable(SFTPPassword)); + PWDFile->close(); + delete PWDFile; + return RET_OK; } @@ -97,7 +109,7 @@ int CSFTPServerManager::TransferTrainLogToSFTPServer(QString FileName, bool Dete SFTPBatchFile->close(); delete SFTPBatchFile; - Cmd = QString ("sshpass -p \"%1\" sftp -oBatchMode=no -b ./sftpbatch %2@%3").arg(mSFTPPassword).arg(mSFTPLogin).arg(mSFTPServerAddress); + Cmd = QString ("sshpass -f ./password sftp -oBatchMode=no -b ./sftpbatch %1@%2").arg(mSFTPLogin).arg(mSFTPServerAddress); #endif @@ -124,7 +136,8 @@ void CSFTPServerManager::NewTrainFileSaved(QString Filename, bool Detection) void CSFTPServerManager::ProcessFinished(int ExitCode, QProcess::ExitStatus ExitStatus) { CEngLog::instance()->AddLogString(QString("Process SFTP terminé. Exit code: %1 || Exit status: %2 || Output: %3 || Erreur: %4 || stdout: %5").arg(ExitCode).arg(ExitStatus).arg(qPrintable(mTransferProcess->readAllStandardOutput())).arg(qPrintable(mTransferProcess->readAllStandardError())).arg(qPrintable(mTransferProcess->readAll()))); - // qDebug("stdout: %s",qPrintable(mTransferProcess->readAll())); + mProcessTimer->stop(); + // qDebug("stdout: %s",qPrintable(mTransferProcess->readAll())); } void CSFTPServerManager::ProcessTimerExpired() diff --git a/sources/SFTPServerManager.h b/sources/SFTPServerManager.h index 86aee58..98d6fe3 100644 --- a/sources/SFTPServerManager.h +++ b/sources/SFTPServerManager.h @@ -6,7 +6,7 @@ #include //#define USE_SCP -#define SFTP_PROCESS_TIMEOUT 2000 //millisecs +#define SFTP_PROCESS_TIMEOUT 60000 //60s -- Le délai typique est de 45 secondes pour compléter le transfert. class CSFTPServerManager : public QObject {