bug in asking password resolved.

This commit is contained in:
Daniel Tartavel 2023-04-26 17:30:38 +02:00
parent 659498c826
commit 975361c8c9
3 changed files with 127 additions and 91 deletions

View File

@ -1,4 +1,4 @@
QT += core gui concurrent
QT += core gui
QT += KItemViews
QT += KCompletion
QT += widgets

View File

@ -69,29 +69,24 @@
<context>
<name>LoginDialog</name>
<message>
<location filename="login.ui" line="17"/>
<source>RsyncUI request</source>
<translation>Requête RsyncUI</translation>
<translation type="vanished">Requête RsyncUI</translation>
</message>
<message>
<location filename="login.ui" line="51"/>
<source>Login name</source>
<translation>Identifiant</translation>
<translation type="vanished">Identifiant</translation>
</message>
<message>
<location filename="login.ui" line="79"/>
<source>Enter login</source>
<translation>Entrez votre identifiant</translation>
<translation type="vanished">Entrez votre identifiant</translation>
</message>
<message>
<location filename="login.ui" line="86"/>
<source>Password</source>
<translation>Mot de passe</translation>
<translation type="vanished">Mot de passe</translation>
</message>
<message>
<location filename="login.ui" line="102"/>
<source>Enter password</source>
<translation>Entrez votre mot de passe</translation>
<translation type="vanished">Entrez votre mot de passe</translation>
</message>
</context>
<context>
@ -221,32 +216,32 @@
<translation>Paramètres</translation>
</message>
<message>
<location filename="mainwindow.h" line="123"/>
<location filename="mainwindow.h" line="125"/>
<source>KB</source>
<translation>Ko</translation>
</message>
<message>
<location filename="mainwindow.h" line="124"/>
<location filename="mainwindow.h" line="126"/>
<source>MB</source>
<translation>Mo</translation>
</message>
<message>
<location filename="mainwindow.h" line="125"/>
<location filename="mainwindow.h" line="127"/>
<source>GB</source>
<translation>Go</translation>
</message>
<message>
<location filename="mainwindow.h" line="126"/>
<location filename="mainwindow.h" line="128"/>
<source>TB</source>
<translation>To</translation>
</message>
<message>
<location filename="mainwindow.h" line="127"/>
<location filename="mainwindow.h" line="129"/>
<source>PB</source>
<translation>Po</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="61"/>
<location filename="mainwindow.cpp" line="59"/>
<source>You click on file to enqueue it, and RyncUI Download one file a time</source>
<oldsource>Client for rsync server&lt;br&gt;&lt;br&gt;You click on file to enqueue it, and RyncUI Download one file a time</oldsource>
<translation>&lt;h3&gt;Utilisation&lt;/h3&gt;
@ -279,92 +274,97 @@ Cliquez sur un fichier pour le supprimer de la file et une fenêtre de confirmat
Permet de quitter le programme</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="78"/>
<location filename="mainwindow.cpp" line="75"/>
<source>Path</source>
<translation>Chemin</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="78"/>
<location filename="mainwindow.cpp" line="75"/>
<source>Size</source>
<translation>Taille</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="78"/>
<location filename="mainwindow.cpp" line="75"/>
<source>Type</source>
<translation>Type</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="78"/>
<location filename="mainwindow.cpp" line="75"/>
<source>Date</source>
<translation>Date</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="105"/>
<location filename="mainwindow.cpp" line="102"/>
<source>KB/s</source>
<translation>Ko/s</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="105"/>
<location filename="mainwindow.cpp" line="102"/>
<source>MB/s</source>
<translation>Mo/s</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="105"/>
<location filename="mainwindow.cpp" line="102"/>
<source>GB/s</source>
<translation>Go/s</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="105"/>
<location filename="mainwindow.cpp" line="102"/>
<source>TB/s</source>
<translation>To/s</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="105"/>
<location filename="mainwindow.cpp" line="102"/>
<source>PB/s</source>
<translation>Po/s</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="123"/>
<location filename="mainwindow.cpp" line="120"/>
<source>A list of interrupted downloads exists, do you want to continue downloading ? if not the list will be cleared</source>
<translation>Une liste de téléchargement existe, voulez-vous utiliser cette liste ? si non, elle sera effacée</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="152"/>
<location filename="mainwindow.cpp" line="149"/>
<source>&amp;Quit</source>
<translation>&amp;Quitter</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="209"/>
<location filename="mainwindow.cpp" line="206"/>
<source>Clicking Save button, You can save the list of downloads
</source>
<translation>Vous pouvez enregistrer la liste des téléchargements en cliquant sur &quot;enregister&quot;
</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="215"/>
<location filename="mainwindow.cpp" line="212"/>
<source>Exiting will stop downloading, and will clear the download queue.
Do you want to exit ?</source>
<translation>Si vous sortez, les téléchargements seront arrêter.
Voulez-vous vraiment sortir ?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="253"/>
<location filename="mainwindow.cpp" line="250"/>
<source>The program will keep running in the system tray. To terminate the program, choose &lt;b&gt;Quit&lt;/b&gt; in the context menu of the system tray entry.</source>
<translation>Le programme continue dans la boîte à miniatures. Pour quitter le programme cliquez sur l&apos;icône &lt;b&gt;Quitter&lt;/b&gt; ou dans les menu contextuel.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="513"/>
<location filename="mainwindow.cpp" line="551"/>
<source>Authentication failed</source>
<translation>Mauvais mot de passe ou utilisateur</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="604"/>
<source>The processus does&apos;nt respond: </source>
<translation>Le processus ne répond pas: </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="599"/>
<location filename="mainwindow.cpp" line="690"/>
<source>server does not exists</source>
<translation>Le serveur n&apos;existe pas</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="633"/>
<location filename="mainwindow.cpp" line="745"/>
<location filename="mainwindow.cpp" line="726"/>
<location filename="mainwindow.cpp" line="886"/>
<source>Dir</source>
<translation>dossier</translation>
</message>
@ -373,146 +373,161 @@ Voulez-vous vraiment sortir ?</translation>
<translation type="vanished">Doc</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="773"/>
<location filename="mainwindow.cpp" line="914"/>
<source>File is partially downloaded. Do you want to resume download ? if no, the file will be deleted from destination directory</source>
<translation>Le document est déjà partiellement téléchargé. Voulez vous continuer le téléchargemnt ? Si non, il sera supprimer du dossier de destination</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="790"/>
<location filename="mainwindow.cpp" line="931"/>
<source>File is already downloaded. Do you want to reload it ? The old file will be deleted</source>
<translation>Le document est déjà téléchargé. Voulez-vous le télécharger à nouveau ? L&apos;ancien fichier sera effacé</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="827"/>
<location filename="mainwindow.cpp" line="968"/>
<source>File is already downloading</source>
<translation>Le document est déjà en téléchargement</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="852"/>
<location filename="mainwindow.cpp" line="998"/>
<source>Starting downloading
</source>
<translation>Démarrage du téléchargement
</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="867"/>
<location filename="mainwindow.cpp" line="1013"/>
<source>finished</source>
<translation>Terminé</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="877"/>
<location filename="mainwindow.cpp" line="1023"/>
<source>Rsync process crashed</source>
<translation>Le processus rsync à planté</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="884"/>
<location filename="mainwindow.cpp" line="1030"/>
<source>stopped by user</source>
<translation>stoppé par l&apos;utilisateur</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="895"/>
<location filename="mainwindow.cpp" line="1041"/>
<source>
Do you want to retry?</source>
<translation>
Voulez-vous -essayer?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="904"/>
<location filename="mainwindow.cpp" line="1050"/>
<source>Download </source>
<translation>Téléchargement </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1257"/>
<source>RsyncUI Request</source>
<translation>Requête RsyncUI</translation>
<translation type="vanished">Requête RsyncUI</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1258"/>
<location filename="mainwindow.cpp" line="1391"/>
<source>Hidden service name</source>
<translation>Nom du servcice caché</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="56"/>
<location filename="mainwindow.cpp" line="54"/>
<source>Version</source>
<translation>Version</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="55"/>
<location filename="mainwindow.cpp" line="53"/>
<source>&lt;h2&gt;Client for rsync server&lt;/h2&gt;</source>
<translation>&lt;h2&gt;Client pour serveur rsync&lt;/h2&gt;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="57"/>
<location filename="mainwindow.cpp" line="55"/>
<source>Licence</source>
<translation>License</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="58"/>
<location filename="mainwindow.cpp" line="56"/>
<source>Author</source>
<translation>Auteur</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="59"/>
<location filename="mainwindow.cpp" line="57"/>
<source>EMail</source>
<translation>Courriel</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="60"/>
<location filename="mainwindow.cpp" line="58"/>
<source>Source code</source>
<translation>Code source</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1073"/>
<location filename="mainwindow.cpp" line="821"/>
<source>Select the user you want to connect with or enter a new one</source>
<translation>Choisissez l&apos;utilisateur avec lequel vous voulez vous connecter ou entrez en un nouveau</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="834"/>
<location filename="mainwindow.cpp" line="1390"/>
<source> Request</source>
<translation> Requête de mot de passe</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="835"/>
<source>Enter password</source>
<translation>Entrez votre mot de passe</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1225"/>
<source>Since the save path is linked to service, you need to select a service before you can select a folder</source>
<translation>Vous devez sélectionnez un service pour pouvoir sélectionnez un dossier par défaut</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="1078"/>
<location filename="mainwindow.cpp" line="1230"/>
<source>Choose folder where to save file</source>
<translation>Choisissez un dossier enregistrer le document</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="969"/>
<location filename="mainwindow.cpp" line="1121"/>
<source>Do you want to stop downloading and delete this file from download queue ?</source>
<translation>Voulez-vous arrêter le téléchargement et enlever ce fichier de la file de téléchargement ?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="983"/>
<location filename="mainwindow.cpp" line="1136"/>
<source>Do you want to delete this file from download queue ?</source>
<translation>Voulez-vous enlever ce fichier de la file de téléchargement ?</translation>
</message>
<message>
<location filename="mainwindow.h" line="122"/>
<location filename="mainwindow.h" line="124"/>
<source>B</source>
<translation>o</translation>
</message>
<message>
<location filename="mainwindow.h" line="139"/>
<location filename="mainwindow.h" line="141"/>
<source>The process failed to start. Either the invoked program is missing, or you may have insufficient permissions or resources to invoke the program.</source>
<translation>Le processus échoué, soit le programme est manquant, soit vous n&apos;avez pas l&apos;autorisation de l&apos;exécuter.</translation>
</message>
<message>
<location filename="mainwindow.h" line="140"/>
<location filename="mainwindow.h" line="142"/>
<source>The process crashed some time after starting successfully.</source>
<translation>Le processus à planté après avoir démarré avec succès.</translation>
</message>
<message>
<location filename="mainwindow.h" line="141"/>
<location filename="mainwindow.h" line="143"/>
<source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
<translation>La fonction waitFor...() a dépassé la limite de temps, you pouvez essayer de la relancer.</translation>
</message>
<message>
<location filename="mainwindow.h" line="142"/>
<location filename="mainwindow.h" line="144"/>
<source>An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.</source>
<translation>Une erreur est survenue lors de l&apos;envoi des données vers le processus. Le processus est peut être arrté ou il a fermé son canal d&apos;entrée.</translation>
</message>
<message>
<location filename="mainwindow.h" line="143"/>
<location filename="mainwindow.h" line="145"/>
<source>An error occurred when attempting to read from the process. For example, the process may not be running.</source>
<translation>Une erreur est survenue lors de la lecturee de données, le processus est probablement arrêté.</translation>
</message>
<message>
<location filename="mainwindow.h" line="144"/>
<location filename="mainwindow.h" line="146"/>
<source>An unknown error occurred. This is the default return value of error().</source>
<translation>Une erreur inconnue est survenue. C&apos;est la valeur de retour par défaut de error().</translation>
</message>
@ -520,87 +535,87 @@ Voulez-vous ré-essayer?</translation>
<context>
<name>QTranslator</name>
<message>
<location filename="mainwindow.cpp" line="12"/>
<location filename="mainwindow.cpp" line="13"/>
<source>Success. The rsync command completed successfully without any errors.</source>
<translation>Succès. La command rsync s&apos;est terminée sans erreurs.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="13"/>
<location filename="mainwindow.cpp" line="14"/>
<source>Syntax or usage error. There was a problem with the syntax of the rsync command or with the options specified.</source>
<translation>Erreur de syntaxe ou d&apos;usage. il y a un problème avec la synaxe de rsync ou avec les paramètres spécifiés.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="14"/>
<location filename="mainwindow.cpp" line="15"/>
<source>Protocol incompatibility. There was a problem with the protocol version or negotiation between the rsync client and server.</source>
<translation>Incompatibilité de protocole. Il y a eu un problème avec la version du protocole ou la négotiation avec le serveur rsync.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="15"/>
<location filename="mainwindow.cpp" line="16"/>
<source>Errors selecting input/output files, dirs. There was a problem with the source or destination file or directory specified in the rsync command.</source>
<translation>Erreurs dans la sélection des fichiers ou dossiers. il y a eu une problème avec le fichier/dossier source ou destination spécifié.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="16"/>
<location filename="mainwindow.cpp" line="17"/>
<source>Requested action not supported: An attempt was made to use an unsupported action or option.</source>
<translation>Action non suportée. Une tentative d&apos;utiliser une action, ou une option, non supportée à é faite.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="17"/>
<location filename="mainwindow.cpp" line="18"/>
<source>Error starting client-server protocol. There was an error starting the client-server protocol.</source>
<translation>Erreur de démarrage du protocole client-seveur. Il ya eu une erreur en démarrant le protocole slient-serveur.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="18"/>
<location filename="mainwindow.cpp" line="19"/>
<source>Daemon unable to append to log-file. The rsync daemon was unable to write to its log file.</source>
<translation>Le démon rsyncd n&apos;arrive pas écrire dans son fichier de log.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="19"/>
<location filename="mainwindow.cpp" line="20"/>
<source>Error in socket I/O. There was an error with the socket input/output.</source>
<translation>Erreur d&apos;entrée/sortie socket. Il y a eu une erreur d&apos;entrée/sortie sur le socket.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="20"/>
<location filename="mainwindow.cpp" line="21"/>
<source>Error in file I/O. There was an error reading or writing to a file.</source>
<translation>Erreur de &apos;entrée/sortie. Il y a eu une erreur de lecture/écriture sur un fichier.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="21"/>
<location filename="mainwindow.cpp" line="22"/>
<source>Error in rsync protocol data stream. There was an error in the rsync protocol data stream.</source>
<translation>Erreur dans le protocole de flux de données de rsync.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="22"/>
<location filename="mainwindow.cpp" line="23"/>
<source>Errors with program diagnostics. There was an error generating program diagnostics.</source>
<translation>Erreur avec les diagnostiques du programme.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="23"/>
<location filename="mainwindow.cpp" line="24"/>
<source>Error in IPC code. There was an error in the inter-process communication (IPC) code.</source>
<translation>Erreur dans le code IPC. IL y a eu une erreur dans la communication inter-processus.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="24"/>
<location filename="mainwindow.cpp" line="25"/>
<source>Received SIGUSR1 or SIGINT. The rsync process was interrupted by a signal.</source>
<translation>Reçu les signaux SIGUSR1 ou SIGINT. Le processus rsync a é interrompu par un signal.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="25"/>
<location filename="mainwindow.cpp" line="26"/>
<source>Some error returned by waitpid(). An error occurred while waiting for a child process to complete.</source>
<translation>Erreurs retournées par waitpid().Une erreur est survenue pendant l&apos;attente de la complétion du processus fils.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="26"/>
<location filename="mainwindow.cpp" line="27"/>
<source>Error allocating core memory buffers. There was an error allocating memory buffers.</source>
<translation>Erreur d&apos;allocation des buffers mémoire.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="27"/>
<location filename="mainwindow.cpp" line="28"/>
<source>Partial transfer due to error. The rsync command completed with an error, but some files may have been transferred successfully.</source>
<translation>Transfert partiel due à une erreur. La command rsync s&apos;est terminée avec une erreur, mais des fichiers on é transférés avec succès.</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="28"/>
<location filename="mainwindow.cpp" line="29"/>
<source>Partial transfer due to vanished source files. Some source files disappeared before they could be transferred.</source>
<translation>Transfert partiel à la disparition des fichiers source. Des fichiers source ont disparu avec d&apos;avoir é transférés.</translation>
</message>

View File

@ -383,7 +383,8 @@ bool MainWindow::testServicePresence(QString service, bool askPassword)
QStringList v;
QProcess *myProcess;
bool returnValue = false;
QEventLoop loop;
int loop =0;
bool r = false;
cmd = "/usr/bin/rsync";
param << "--contimeout=10" << "-nq" << "--port=" + QString::number(this->connexion.port) << this->connexion.server + "::" + service;
@ -405,9 +406,10 @@ bool MainWindow::testServicePresence(QString service, bool askPassword)
}
if (line.contains("auth failed"))
{
if (askPassword)
if (askPassword == true and loop >=2 and r == true)
{
getUserPassword(&this->connexion);
r = getUserPassword(&this->connexion);
loop++;
}
returnValue = true;
}
@ -487,6 +489,8 @@ bool MainWindow::scanDir(QString server, int portN, QTreeWidgetItem *parent, QSt
bool readOk = false;
bool passwdOk = false;
int nChild = 0;
bool r;
static uint looping;
myProcess = new QProcess(this);
myProcess->setProcessChannelMode(QProcess::MergedChannels);
@ -532,8 +536,22 @@ bool MainWindow::scanDir(QString server, int portN, QTreeWidgetItem *parent, QSt
if (line.contains("auth failed"))
{
myProcess->readAllStandardOutput();
getUserPassword(&this->connexion);
return 0;
r = getUserPassword(&this->connexion);
if (looping <= 1)
{
this->rescan = true;
looping++;
}else
{
this->rescan = false;
looping = 0;
QMessageBox::warning(
this,
a.applicationName(),
tr("Authentication failed" )
);
}
return false;
}
// extracting name, size and if is dir/file
@ -593,7 +611,7 @@ bool MainWindow::scanDir(QString server, int portN, QTreeWidgetItem *parent, QSt
testRsyncReturn(this, myProcess);
myProcess->close();
}
return 0;
return false;
}
// Verify if server address is IP address
@ -609,7 +627,7 @@ bool MainWindow::isIpAddress(QString server)
for (auto element : r)
{
elementN = element.toInt(&ok);
if (elementN < 0 or elementN > 255 or ok == false)
if ((elementN < 0) or (elementN > 255) or ok == false)
{
return false;
}
@ -777,8 +795,8 @@ void MainWindow::preparePopulateTree()
bool MainWindow::getUserPassword(Connexion * object)
{
QStringList logins;
QString login;
QString password;
QString login = "";
QString password = "";
QString server;
QString service;
int c;
@ -820,10 +838,12 @@ bool MainWindow::getUserPassword(Connexion * object)
if (!ok or password.isEmpty())
{
password = "";
returnValue = false;
}
}else
{
password = getPassword(login);
returnValue = true;
}
object->user = login;
object->password = password;
@ -955,6 +975,7 @@ void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem *item, bool downloadD
{
scanDir(this->connexion.server, this->connexion.port, item, this->connexion.service + "/" + path +"/");
item->setExpanded(true);
}
}