summaryrefslogtreecommitdiff
authorzecke <zecke>2005-03-29 23:30:39 (UTC)
committer zecke <zecke>2005-03-29 23:30:39 (UTC)
commitdb876361603ccf1664698df926a3c61d32315101 (patch) (unidiff)
tree21425cbda11c9b8bbfa8a71d1b34c0479b3de284
parent6d8f326cb4429a45c417ecdc04f58e832017aa66 (diff)
downloadopie-db876361603ccf1664698df926a3c61d32315101.zip
opie-db876361603ccf1664698df926a3c61d32315101.tar.gz
opie-db876361603ccf1664698df926a3c61d32315101.tar.bz2
Beaming Fix:
Recievers couldn't handle paths inside the obex push. As a workaround we will change the working directory of the process and use the filename inside that directory.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obex.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/obex/obex.cc b/core/obex/obex.cc
index 5dfcfb5..36634ec 100644
--- a/core/obex/obex.cc
+++ b/core/obex/obex.cc
@@ -53,50 +53,52 @@ void Obex::receive() {
53void Obex::send( const QString& fileName) { // if currently receiving stop it send receive 53void Obex::send( const QString& fileName) { // if currently receiving stop it send receive
54 m_count = 0; 54 m_count = 0;
55 m_file = fileName; 55 m_file = fileName;
56 if (m_rec != 0 ) { 56 if (m_rec != 0 ) {
57 if (m_rec->isRunning() ) { 57 if (m_rec->isRunning() ) {
58 emit error(-1 ); 58 emit error(-1 );
59 delete m_rec; 59 delete m_rec;
60 m_rec = 0; 60 m_rec = 0;
61 61
62 }else{ 62 }else{
63 emit error( -1 ); // we did not delete yet but it's not running slotExited is pending 63 emit error( -1 ); // we did not delete yet but it's not running slotExited is pending
64 return; 64 return;
65 } 65 }
66 } 66 }
67 sendNow(); 67 sendNow();
68} 68}
69void Obex::sendNow(){ 69void Obex::sendNow(){
70 if ( m_count >= 25 ) { // could not send 70 if ( m_count >= 25 ) { // could not send
71 emit error(-1 ); 71 emit error(-1 );
72 emit sent(false); 72 emit sent(false);
73 return; 73 return;
74 } 74 }
75 // OProcess inititialisation 75 // OProcess inititialisation
76 m_send = new OProcess(); 76 m_send = new OProcess();
77 m_send->setWorkingDirectory( QFileInfo(m_file).dirPath(true) );
78
77 *m_send << "irobex_palm3"; 79 *m_send << "irobex_palm3";
78 *m_send << QFile::encodeName(m_file); 80 *m_send << QFile::encodeName(QFileInfo(m_file).fileName());
79 81
80 // connect to slots Exited and and StdOut 82 // connect to slots Exited and and StdOut
81 connect(m_send, SIGNAL(processExited(Opie::Core::OProcess*) ), 83 connect(m_send, SIGNAL(processExited(Opie::Core::OProcess*) ),
82 this, SLOT(slotExited(Opie::Core::OProcess*)) ); 84 this, SLOT(slotExited(Opie::Core::OProcess*)) );
83 connect(m_send, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int )), 85 connect(m_send, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int )),
84 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) ); 86 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) );
85 87
86 // now start it 88 // now start it
87 if (!m_send->start(/*OProcess::NotifyOnExit, OProcess::AllOutput*/ ) ) { 89 if (!m_send->start(/*OProcess::NotifyOnExit, OProcess::AllOutput*/ ) ) {
88 m_count = 25; 90 m_count = 25;
89 emit error(-1 ); 91 emit error(-1 );
90 delete m_send; 92 delete m_send;
91 m_send=0; 93 m_send=0;
92 } 94 }
93 // end 95 // end
94 m_count++; 96 m_count++;
95 emit currentTry( m_count ); 97 emit currentTry( m_count );
96} 98}
97 99
98void Obex::slotExited(OProcess* proc ){ 100void Obex::slotExited(OProcess* proc ){
99 if (proc == m_rec ) // receive process 101 if (proc == m_rec ) // receive process
100 received(); 102 received();
101 else if ( proc == m_send ) 103 else if ( proc == m_send )
102 sendEnd(); 104 sendEnd();