Diffstat (limited to 'noncore/net/opietooth/lib/startpanconnection.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opietooth/lib/startpanconnection.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/noncore/net/opietooth/lib/startpanconnection.cpp b/noncore/net/opietooth/lib/startpanconnection.cpp index e7deede..6e0ab7e 100644 --- a/noncore/net/opietooth/lib/startpanconnection.cpp +++ b/noncore/net/opietooth/lib/startpanconnection.cpp @@ -32,37 +32,51 @@ void StartPanConnection::setConnectionType() { } StartConnection::ConnectionType StartPanConnection::type() { return m_connectionType; } void StartPanConnection::start() { m_panConnect = new OProcess(); qDebug( "IM START " + m_mac ); *m_panConnect << "pand" << "--connect" << m_mac; connect( m_panConnect, SIGNAL( processExited( OProcess* ) ) , this, SLOT( slotExited( OProcess* ) ) ); connect( m_panConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), this, SLOT( slotStdOut( OProcess*, char*, int ) ) ); if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { qWarning( "could not start" ); delete m_panConnect; } } void StartPanConnection::slotExited( OProcess* proc ) { delete m_panConnect; + m_panConnect = 0l; } void StartPanConnection::slotStdOut(OProcess* proc, char* chars, int len) {} void StartPanConnection::stop() { if ( m_panConnect ) { delete m_panConnect; m_panConnect = 0l; } + m_panConnect = new OProcess(); + qDebug("IM STOP " + m_mac); + + *m_panConnect << "pand" << "--kill" << m_mac; + + connect( m_panConnect, SIGNAL( processExited( OProcess* ) ) , + this, SLOT( slotExited( OProcess* ) ) ); + connect( m_panConnect, SIGNAL( receivedStdout( OProcess*, char*, int ) ), + this, SLOT( slotStdOut( OProcess*, char*, int ) ) ); + if (!m_panConnect->start( OProcess::NotifyOnExit, OProcess::AllOutput) ) { + qWarning( "could not stop" ); + delete m_panConnect; + } } |