From 193a7987466c7d9358ea97dfc0aba98d1a89e4b5 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Mon, 3 Oct 2011 14:44:08 +0200 Subject: [PATCH 1/2] Fixed bad timing in FT code --- CMakeLists.txt | 2 +- backends/libpurple/main.cpp | 22 ++++++++++++++-------- src/memoryreadbytestream.cpp | 1 + 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc976737..aa939f41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,7 @@ else() endif() if(CMAKE_BUILD_TYPE MATCHES Debug) - ADD_DEFINITIONS(-O0) + ADD_DEFINITIONS(-O3) ADD_DEFINITIONS(-ggdb) ADD_DEFINITIONS(-DDEBUG) ADD_DEFINITIONS(-Wall) diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 616d2325..1e9c1697 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -169,6 +169,11 @@ process_link(GString *ret, return c; } +static gboolean ft_ui_ready(void *data) { + purple_xfer_ui_ready((PurpleXfer *) data); + return FALSE; +} + static char * spectrum_markup_linkify(const char *text) { @@ -861,7 +866,8 @@ class SpectrumNetworkPlugin : public NetworkPlugin { tmp.swap(m_waitingXfers); BOOST_FOREACH(PurpleXfer *xfer, tmp) { - purple_xfer_ui_ready(xfer); + purple_timeout_add(1, ft_ui_ready, xfer); +// purple_xfer_ui_ready(xfer); } } @@ -1363,11 +1369,6 @@ static void fileSendStart(PurpleXfer *xfer) { // repeater->fileSendStart(); } -static gboolean ft_ui_ready(void *data) { - purple_xfer_ui_ready((PurpleXfer *) data); - return FALSE; -} - static void fileRecvStart(PurpleXfer *xfer) { // FiletransferRepeater *repeater = (FiletransferRepeater *) xfer->ui_data; // repeater->fileRecvStart(); @@ -1383,7 +1384,10 @@ static void newXfer(PurpleXfer *xfer) { if (pos != std::string::npos) w.erase((int) pos, w.length() - (int) pos); - xfer->ui_data = (void *) new FTData; + FTData *ftdata = new FTData; + ftdata->paused = false; + ftdata->id = 0; + xfer->ui_data = (void *) ftdata; np->m_unhandledXfers[np->m_accounts[account] + filename + w] = xfer; @@ -1406,7 +1410,9 @@ static void XferSendComplete(PurpleXfer *xfer) { static gssize XferWrite(PurpleXfer *xfer, const guchar *buffer, gssize size) { FTData *ftData = (FTData *) xfer->ui_data; std::string data((const char *) buffer, (size_t) size); - if (ftData->paused) { +// std::cout << "xferwrite\n"; + if (!ftData->paused) { +// std::cout << "adding xfer to waitingXfers queue\n"; np->m_waitingXfers.push_back(xfer); } np->handleFTData(ftData->id, data); diff --git a/src/memoryreadbytestream.cpp b/src/memoryreadbytestream.cpp index 5e373191..6702b72d 100644 --- a/src/memoryreadbytestream.cpp +++ b/src/memoryreadbytestream.cpp @@ -73,6 +73,7 @@ boost::shared_ptr > MemoryReadBytestream::read(size_t } bool MemoryReadBytestream::isFinished() const { +// std::cout << "finished? " << m_finished << "\n"; return m_finished; } From 658d17b42fd5a36103da3d14cc59a6b217c2c967 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Tue, 4 Oct 2011 12:24:54 +0200 Subject: [PATCH 2/2] Remove DummyConnectionFactory --- .../Network/DummyConnectionFactory.cpp | 19 -------------- .../Swiften/Network/DummyConnectionFactory.h | 26 ------------------- 2 files changed, 45 deletions(-) delete mode 100644 include/Swiften/Network/DummyConnectionFactory.cpp delete mode 100644 include/Swiften/Network/DummyConnectionFactory.h diff --git a/include/Swiften/Network/DummyConnectionFactory.cpp b/include/Swiften/Network/DummyConnectionFactory.cpp deleted file mode 100644 index e458d179..00000000 --- a/include/Swiften/Network/DummyConnectionFactory.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include -#include - -namespace Swift { - -DummyConnectionFactory::DummyConnectionFactory(EventLoop* eventLoop) : eventLoop(eventLoop) { -} - -boost::shared_ptr DummyConnectionFactory::createConnection() { - return boost::shared_ptr(new DummyConnection(eventLoop)); -} - -} diff --git a/include/Swiften/Network/DummyConnectionFactory.h b/include/Swiften/Network/DummyConnectionFactory.h deleted file mode 100644 index 6f1a91d5..00000000 --- a/include/Swiften/Network/DummyConnectionFactory.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#pragma once - -#include - -#include -#include - -namespace Swift { - class DummyConnection; - - class DummyConnectionFactory : public ConnectionFactory { - public: - DummyConnectionFactory(EventLoop* eventLoop); - - virtual boost::shared_ptr createConnection(); - - private: - EventLoop* eventLoop; - }; -}