diff options
| author | 2010-07-29 11:49:47 +0000 | |
|---|---|---|
| committer | 2010-07-29 11:49:47 +0000 | |
| commit | 7fcb5bfa6055cab92f5f7dfff0f876aa05698628 (patch) | |
| tree | 8b74ceb83a217464bd5005b752b6ba1530f7fe7c /src/modules | |
| parent | Don't fetch own avatar from cache. Needs some testing so maybe it's better to... (diff) | |
| download | KVIrc-7fcb5bfa6055cab92f5f7dfff0f876aa05698628.tar.gz KVIrc-7fcb5bfa6055cab92f5f7dfff0f876aa05698628.tar.bz2 KVIrc-7fcb5bfa6055cab92f5f7dfff0f876aa05698628.zip | |
Fixed some memory leacks in kvs socket class
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4706 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/objects/class_socket.cpp | 87 |
1 files changed, 62 insertions, 25 deletions
diff --git a/src/modules/objects/class_socket.cpp b/src/modules/objects/class_socket.cpp index c572f4d5f..24e3ce82f 100644 --- a/src/modules/objects/class_socket.cpp +++ b/src/modules/objects/class_socket.cpp @@ -897,8 +897,11 @@ debug ("Socket created"); if(m_sock == KVI_INVALID_SOCKET) { unsigned int uOldConnectionId = m_uConnectionId; - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(__tr2qs_ctx("Failed to create the socket","objects")))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(__tr2qs_ctx("Failed to create the socket","objects"))); + callFunction(this,"connectFailedEvent",&lParams); +/* callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(__tr2qs_ctx("Failed to create the socket","objects"))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! return; @@ -908,9 +911,11 @@ debug ("Socket created"); if(!kvi_socket_setNonBlocking(m_sock)) { unsigned int uOldConnectionId = m_uConnectionId; - - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(__tr2qs_ctx("Failed to setup a nonblocking socket","objects")))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(__tr2qs_ctx("Failed to setup a nonblocking socket","objects"))); + callFunction(this,"connectFailedEvent",&lParams); +/* callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(__tr2qs_ctx("Failed to setup a nonblocking socket","objects"))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! return; @@ -934,7 +939,10 @@ debug ("Socket created"); QString callBackError=__tr2qs_ctx("Connect failure: ","objects"); callBackError.append((KviError::getDescription(KviError::translateSystemError(sockError)).toUtf8().data())); - callFunction(this,"connectFailedEvent",new KviKvsVariantList(new KviKvsVariant(callBackError))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(callBackError)); + callFunction(this,"connectFailedEvent",&lParams); + //callFunction(this,"connectFailedEvent",new KviKvsVariantList(new KviKvsVariant(callBackError))); if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! @@ -956,9 +964,11 @@ debug ("Socket created"); void KviKvsObject_socket::connectTimeoutSlot() { unsigned int uOldConnectionId = m_uConnectionId; - - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(__tr2qs_ctx("Connect attempt timed out","objects")))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(__tr2qs_ctx("Connect attempt timed out","objects"))); + callFunction(this,"connectFailedEvent",&lParams); + /*callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(__tr2qs_ctx("Connect attempt timed out","objects"))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! } @@ -985,9 +995,12 @@ void KviKvsObject_socket::lookupRemoteIp() if(!m_pDns->lookup(m_szRemoteIp,KviDns::Any)) { unsigned int uOldConnectionId = m_uConnectionId; + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(__tr2qs_ctx("Can't start the DNS thread","objects"))); + callFunction(this,"connectFailedEvent",&lParams); - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(__tr2qs_ctx("Can't start the DNS thread","objects")))); + /* callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(__tr2qs_ctx("Can't start the DNS thread","objects"))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! } @@ -999,9 +1012,11 @@ void KviKvsObject_socket::lookupDone(KviDns *pDns) if(pDns->state() != KviDns::Success) { unsigned int uOldConnectionId = m_uConnectionId; - - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(KviError::getDescription(pDns->error())))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(KviError::getDescription(pDns->error()))); + callFunction(this,"connectFailedEvent",&lParams); + /* callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(KviError::getDescription(pDns->error()))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! @@ -1040,8 +1055,11 @@ void KviKvsObject_socket::writeNotifierFired(int) if(sockError > 0)sockError = KviError::translateSystemError(sockError); else sockError = KviError_unknownError; //Error 0 ? unsigned int uOldConnectionId = m_uConnectionId; - callFunction(this,"connectFailedEvent",new KviKvsVariantList( - new KviKvsVariant(KviError::getDescription(sockError)))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(KviError::getDescription(sockError))); + callFunction(this,"connectFailedEvent",&lParams); + /*callFunction(this,"connectFailedEvent",new KviKvsVariantList( + new KviKvsVariant(KviError::getDescription(sockError))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! } else { @@ -1108,11 +1126,17 @@ void KviKvsObject_socket::readNotifierFired(int) { // QString error=KviError::translateSystemError(err); - callFunction(this,"disconnectEvent",new KviKvsVariantList( - new KviKvsVariant((kvs_int_t)KviError::translateSystemError(err)))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant((kvs_int_t)KviError::translateSystemError(err))); + callFunction(this,"disconnectEvent",&lParams); + /* callFunction(this,"disconnectEvent",new KviKvsVariantList( + new KviKvsVariant((kvs_int_t)KviError::translateSystemError(err))));*/ } else { - callFunction(this,"disconnectEvent",new KviKvsVariantList( - new KviKvsVariant(KviError::getDescription(KviError_remoteEndClosedConnection)))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(KviError::getDescription(KviError_remoteEndClosedConnection))); + callFunction(this,"disconnectEvent",&lParams); + /*callFunction(this,"disconnectEvent",new KviKvsVariantList( + new KviKvsVariant(KviError::getDescription(KviError_remoteEndClosedConnection))));*/ } if(m_uConnectionId == uOldConnectionId)reset(); @@ -1127,13 +1151,22 @@ void KviKvsObject_socket::readNotifierFired(int) unsigned int uOldConnectionId = m_uConnectionId; - callFunction(this,"dataAvailableEvent",new KviKvsVariantList(new KviKvsVariant((kvs_int_t)readLength))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant((kvs_int_t)readLength)); + +/* KviKvsVariant *pParam=new KviKvsVariant((kvs_int_t)readLength); + KviKvsVariantList *pParamsList=new KviKvsVariantList(pParam);*/ + callFunction(this,"dataAvailableEvent",&lParams); + //delete pParamsList; if(m_uConnectionId == uOldConnectionId) { if(m_uInDataLen > (4096 * 1024)) // too much data in buffer (not reading) { - callFunction(this,"disconnectEvent",new KviKvsVariantList( - new KviKvsVariant(__tr2qs_ctx("Too much unprocessed incoming data (you've left this socket unmanaged ?)","objects")))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(new KviKvsVariant(__tr2qs_ctx("Too much unprocessed incoming data (you've left this socket unmanaged ?)","objects")))); + callFunction(this,"disconnectEvent",&lParams); + /*callFunction(this,"disconnectEvent",new KviKvsVariantList( + new KviKvsVariant(__tr2qs_ctx("Too much unprocessed incoming data (you've left this socket unmanaged ?)","objects"))));*/ reset(); } } @@ -1201,8 +1234,12 @@ void KviKvsObject_socket::tryFlush() } else { // Disconnected... :( unsigned int uOldConnectionId = m_uConnectionId; - callFunction(this,"disconnectEvent",0,new KviKvsVariantList( - new KviKvsVariant(KviError::getDescription(KviError::translateSystemError(err))))); + KviKvsVariantList lParams; + lParams.append(new KviKvsVariant(KviError::getDescription(KviError::translateSystemError(err)))); + callFunction(this,"disconnectEvent",&lParams); + + /*callFunction(this,"disconnectEvent",0,new KviKvsVariantList( + new KviKvsVariant(KviError::getDescription(KviError::translateSystemError(err)))));*/ if(m_uConnectionId == uOldConnectionId)reset(); // else it has already been called! return; |
