author | josef <josef> | 2002-10-20 19:22:38 (UTC) |
---|---|---|
committer | josef <josef> | 2002-10-20 19:22:38 (UTC) |
commit | d5433091ba9741f0fae104d038b906e353065e2d (patch) (side-by-side diff) | |
tree | 70def8957a6b38f8b6cfb45fa352b5a77f2298a1 | |
parent | 557c615b4b07adb798283981f3769dd817a80bf1 (diff) | |
download | opie-d5433091ba9741f0fae104d038b906e353065e2d.zip opie-d5433091ba9741f0fae104d038b906e353065e2d.tar.gz opie-d5433091ba9741f0fae104d038b906e353065e2d.tar.bz2 |
Some fixes for receiving files via {x,y,z}modem:
- let transfer dialog reset progress bar when finished
- typo: s/Sent/Received in received confirmation dialog
- specify filename for xmodem (the man page is not very clear about this, but
it doesn't work without filename!)
- add --overwrite
Here's the big problem:
For user security, I'd rather use --rename than --overwrite (or make it
configurable).
But:
* --rename is not supported at all by rx/rz/...
* --overwrite is not supported by ymodem
* --overwrite is always used by xmodem even if not used
I want to kick the authors of rz now...
Anybody knows a solution?
-rw-r--r-- | noncore/apps/opie-console/filereceive.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/opie-console/transferdialog.cpp | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/noncore/apps/opie-console/filereceive.cpp b/noncore/apps/opie-console/filereceive.cpp index e517862..e387273 100644 --- a/noncore/apps/opie-console/filereceive.cpp +++ b/noncore/apps/opie-console/filereceive.cpp @@ -44,25 +44,30 @@ void FileReceive::receive( const QString& dir ) { switch(m_type ) { case SZ: break; case SX: typus = "-X"; break; case SY: typus = "--ymodem"; break; } /* we should never return from here */ - execlp("rz", "rz", typus, NULL ); + if( m_type == SX ) + // FIXME: file name should be configurable - currently we ensure it + // doesn't get overwritten by -E (--rename) + execlp("rz", "rz", typus, "--overwrite", QObject::tr("SynchronizedFile").latin1(), NULL ); + else + execlp("rz", "rz", typus, "--overwrite", NULL ); char resultByte = 1; if (m_info[1] ) ::write(m_info[1], &resultByte, 1 ); _exit( -1 ); break; } default: { if ( m_info[1] ) close( m_info[1] ); diff --git a/noncore/apps/opie-console/transferdialog.cpp b/noncore/apps/opie-console/transferdialog.cpp index ac5b1d0..f89723c 100644 --- a/noncore/apps/opie-console/transferdialog.cpp +++ b/noncore/apps/opie-console/transferdialog.cpp @@ -221,34 +221,39 @@ void TransferDialog::slotError(int error, const QString& message) default: QMessageBox::critical(this, QObject::tr("Error"), QObject::tr("Unknown error occured.")); break; } m_autocleanup = 1; } void TransferDialog::slotSent() { + progressbar->setProgress(100); QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been sent.")); ok->setEnabled(true); + progressbar->setProgress(0); statusbar->setText(QObject::tr("Ready")); m_autocleanup = 1; } void TransferDialog::slotReceived(const QString& file) { - QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been received as %1.").arg(file)); + progressbar->setProgress(100); + QMessageBox::information(this, QObject::tr("Received"), QObject::tr("File has been received.")); + //QMessageBox::information(this, QObject::tr("Sent"), QObject::tr("File has been received as %1.").arg(file)); ok->setEnabled(true); + progressbar->setProgress(0); statusbar->setText(QObject::tr("Ready")); m_autocleanup = 1; } void TransferDialog::slotMode(int id) { if(id == id_send) { selector->setEnabled(true); filename->setEnabled(true); } else |