-rw-r--r-- | noncore/net/opietooth/lib/device.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/noncore/net/opietooth/lib/device.cc b/noncore/net/opietooth/lib/device.cc index 0c552ea..468f191 100644 --- a/noncore/net/opietooth/lib/device.cc +++ b/noncore/net/opietooth/lib/device.cc @@ -1,13 +1,15 @@ +#include <signal.h> + #include "kprocess.h" #include "device.h" using namespace OpieTooth; Device::Device(const QString &device, const QString &mode ) : QObject(0, "device" ) { m_hci = 0; m_process = 0; m_attached = false; m_device = device; @@ -32,25 +34,25 @@ void Device::attach(){ if(!m_process->start(KProcess::NotifyOnExit, KProcess::AllOutput ) ){ delete m_process; m_process = 0; } }; } void Device::detach(){ delete m_hci; delete m_process; // kill the pid we got if(m_attached ) //kill the pid - ; + kill(pid, 9); } bool Device::isLoaded()const{ return m_attached; } QString Device::devName()const { return QString::fromLatin1("hci0"); }; void Device::slotExited( KProcess* proc) { if(proc== m_process ){ if( m_process->normalExit() ){ // normal exit int ret = m_process->exitStatus(); @@ -81,22 +83,22 @@ void Device::slotExited( KProcess* proc) m_attached = false; } }// normal exit delete m_hci; m_hci = 0; } } void Device::slotStdOut(KProcess* proc, char* chars, int len) { if( len <1 ) return; if(proc == m_process ){ - QCString string( chars ); + QCString string( chars, len+1 ); if(string.left(3) != "CSR" ){ // it's the pid pid = string.toInt(); }; } } void Device::slotStdErr(KProcess*, char*, int ) { } |