summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-console/filetransfer.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-console/filetransfer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-console/filetransfer.cpp55
1 files changed, 25 insertions, 30 deletions
diff --git a/noncore/apps/opie-console/filetransfer.cpp b/noncore/apps/opie-console/filetransfer.cpp
index 7fd9f37..97552fe 100644
--- a/noncore/apps/opie-console/filetransfer.cpp
+++ b/noncore/apps/opie-console/filetransfer.cpp
@@ -11,18 +11,5 @@
11 11
12#include "procctl.h"
12#include "filetransfer.h" 13#include "filetransfer.h"
13 14
14/**
15 *
16 *
17class FileTransferControl {
18public:
19 FileTransferControl();
20 ~FileTransferControl();
21
22
23};
24*/
25
26bool FileTransfer::terminate = false;
27pid_t FileTransfer::m_pid;
28 15
@@ -31,4 +18,5 @@ FileTransfer::FileTransfer( Type t, IOLayer* lay )
31 signal(SIGPIPE, SIG_IGN ); 18 signal(SIGPIPE, SIG_IGN );
32 signal( SIGCHLD, signal_handler ); 19
33 m_not = 0l; 20 m_not = 0l;
21 m_proc = 0l;
34} 22}
@@ -102,6 +90,3 @@ void FileTransfer::sendFile( const QString& file ) {
102 90
103 terminate = false; 91
104 fd_set fds;
105 struct timeval timeout;
106 int sel;
107 92
@@ -111,2 +96,10 @@ void FileTransfer::sendFile( const QString& file ) {
111 this, SLOT(slotRead() ) ); 96 this, SLOT(slotRead() ) );
97 if ( pipe(m_term) < 0 )
98 m_term[0] = m_term[1] = 0;
99
100 ProcCtl::self()->add(m_pid, m_term[1] );
101 m_proc = new QSocketNotifier(m_term[0], QSocketNotifier::Read );
102 connect(m_proc, SIGNAL(activated(int) ),
103 this, SLOT(slotExec() ) );
104
112 } 105 }
@@ -121,13 +114,2 @@ void FileTransfer::sendFile( const QFile& file ) {
121} 114}
122/*
123 * our signal handler to be replaced by
124 * a procctl thingie
125 */
126void FileTransfer::signal_handler(int ) {
127 qWarning("Terminated");
128 int status;
129 signal( SIGCHLD, signal_handler );
130 waitpid( m_pid, &status, WNOHANG );
131 terminate = true;
132}
133 115
@@ -177,2 +159,3 @@ void FileTransfer::slotRead() {
177 QString str( ar ); 159 QString str( ar );
160 qWarning(str.simplifyWhiteSpace() );
178 QStringList lis = QStringList::split(' ', str ); 161 QStringList lis = QStringList::split(' ', str );
@@ -242 +225,13 @@ void FileTransfer::cancel() {
242} 225}
226void FileTransfer::slotExec() {
227 qWarning("exited!");
228 char buf[2];
229 ::read(m_term[0], buf, 1 );
230 delete m_proc;
231 delete m_not;
232 close( m_term[0] );
233 close( m_term[1] );
234 close( m_comm[0] );
235 close( m_comm[1] );
236 emit sent();
237}