summaryrefslogtreecommitdiff
path: root/core/launcher
authorzecke <zecke>2005-03-02 19:42:04 (UTC)
committer zecke <zecke>2005-03-02 19:42:04 (UTC)
commita349b5d092c392aba28c6fbd99221559c33bc5e1 (patch) (unidiff)
tree56a809f42d20c6f2fe7a60f243dd1aebca359b39 /core/launcher
parent9f3e0913c7b01c1e14f907e756999b9d9bf9ceef (diff)
downloadopie-a349b5d092c392aba28c6fbd99221559c33bc5e1.zip
opie-a349b5d092c392aba28c6fbd99221559c33bc5e1.tar.gz
opie-a349b5d092c392aba28c6fbd99221559c33bc5e1.tar.bz2
Close the Filedescriptor for the QCopBridge and Transferserver on exit
Diffstat (limited to 'core/launcher') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/qcopbridge.cpp4
-rw-r--r--core/launcher/transferserver.cpp5
2 files changed, 7 insertions, 2 deletions
diff --git a/core/launcher/qcopbridge.cpp b/core/launcher/qcopbridge.cpp
index e339dc7..64eb096 100644
--- a/core/launcher/qcopbridge.cpp
+++ b/core/launcher/qcopbridge.cpp
@@ -42,12 +42,13 @@ using namespace Opie::Core;
42#ifndef _XOPEN_SOURCE 42#ifndef _XOPEN_SOURCE
43#define _XOPEN_SOURCE 43#define _XOPEN_SOURCE
44#endif 44#endif
45#ifndef Q_OS_WIN32 45#ifndef Q_OS_WIN32
46#include <pwd.h> 46#include <pwd.h>
47#include <unistd.h> 47#include <unistd.h>
48#include <fcntl.h>
48#include <sys/types.h> 49#include <sys/types.h>
49#endif 50#endif
50 51
51#if defined(_OS_LINUX_) 52#if defined(_OS_LINUX_)
52#include <shadow.h> 53#include <shadow.h>
53#endif 54#endif
@@ -58,14 +59,15 @@ QCopBridge::QCopBridge( Q_UINT16 port, QObject *parent,
58 const char* name ) 59 const char* name )
59 : QServerSocket( port, 1, parent, name ), 60 : QServerSocket( port, 1, parent, name ),
60 desktopChannel( 0 ), 61 desktopChannel( 0 ),
61 cardChannel( 0 ) 62 cardChannel( 0 )
62{ 63{
63 if ( !ok() ) 64 if ( !ok() )
64 owarn << "Failed to bind to port " << port << "" << oendl; 65 owarn << "Failed to bind to port " << port << "" << oendl;
65 else { 66 else {
67 ::fcntl( socket(), F_SETFD, FD_CLOEXEC );
66#ifndef QT_NO_COP 68#ifndef QT_NO_COP
67 desktopChannel = new QCopChannel( "QPE/Desktop", this ); 69 desktopChannel = new QCopChannel( "QPE/Desktop", this );
68 connect( desktopChannel, SIGNAL(received(const QCString&,const QByteArray&)), 70 connect( desktopChannel, SIGNAL(received(const QCString&,const QByteArray&)),
69 this, SLOT(desktopMessage(const QCString&,const QByteArray&)) ); 71 this, SLOT(desktopMessage(const QCString&,const QByteArray&)) );
70 cardChannel = new QCopChannel( "QPE/Card", this ); 72 cardChannel = new QCopChannel( "QPE/Card", this );
71 connect( cardChannel, SIGNAL(received(const QCString&,const QByteArray&)), 73 connect( cardChannel, SIGNAL(received(const QCString&,const QByteArray&)),
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp
index 2b2e435..a219c0f 100644
--- a/core/launcher/transferserver.cpp
+++ b/core/launcher/transferserver.cpp
@@ -36,12 +36,13 @@ using namespace Opie::Core;
36#include <qmessagebox.h> 36#include <qmessagebox.h>
37 37
38/* STD */ 38/* STD */
39#include <pwd.h> 39#include <pwd.h>
40#include <sys/types.h> 40#include <sys/types.h>
41#include <unistd.h> 41#include <unistd.h>
42#include <fcntl.h>
42#include <stdlib.h> 43#include <stdlib.h>
43#include <time.h> 44#include <time.h>
44 45
45#ifndef Q_OS_MACX 46#ifndef Q_OS_MACX
46#include <shadow.h> 47#include <shadow.h>
47#include <crypt.h> 48#include <crypt.h>
@@ -52,13 +53,15 @@ const int block_size = 51200;
52TransferServer::TransferServer( Q_UINT16 port, QObject *parent, 53TransferServer::TransferServer( Q_UINT16 port, QObject *parent,
53 const char* name) 54 const char* name)
54 : QServerSocket( port, 1, parent, name ) 55 : QServerSocket( port, 1, parent, name )
55{ 56{
56 connections.setAutoDelete( TRUE ); 57 connections.setAutoDelete( TRUE );
57 if ( !ok() ) 58 if ( !ok() )
58 owarn << "Failed to bind to port " << port << "" << oendl; 59 owarn << "Failed to bind to port " << port << "" << oendl;
60 else
61 ::fcntl( socket(), F_SETFD, FD_CLOEXEC );
59} 62}
60 63
61void TransferServer::authorizeConnections() 64void TransferServer::authorizeConnections()
62{ 65{
63 QListIterator<ServerPI> it(connections); 66 QListIterator<ServerPI> it(connections);
64 while ( it.current() ) { 67 while ( it.current() ) {