summaryrefslogtreecommitdiffstats
path: root/plugins/zeroconf/zeroconfplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/zeroconf/zeroconfplugin.cpp')
-rw-r--r--plugins/zeroconf/zeroconfplugin.cpp135
1 files changed, 0 insertions, 135 deletions
diff --git a/plugins/zeroconf/zeroconfplugin.cpp b/plugins/zeroconf/zeroconfplugin.cpp
deleted file mode 100644
index 6307bdd..0000000
--- a/plugins/zeroconf/zeroconfplugin.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2005 by Joris Guisson *
- * joris.guisson@gmail.com *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
- ***************************************************************************/
-#include <kgenericfactory.h>
-#include <util/log.h>
-#include <interfaces/coreinterface.h>
-#include <interfaces/torrentinterface.h>
-#include <torrent/globals.h>
-#include <torrent/server.h>
-#include "zeroconfplugin.h"
-#include "avahiservice.h"
-
-
-#define NAME "Zeroconf"
-#define AUTHOR "Lesly Weyts and Kevin Andre"
-
-K_EXPORT_COMPONENT_FACTORY(ktzeroconfplugin,KGenericFactory<kt::ZeroConfPlugin>("ktzeroconfplugin"))
-
-using namespace bt;
-
-namespace kt
-{
-
- ZeroConfPlugin::ZeroConfPlugin(TQObject* parent, const char* name, const TQStringList& args)
- : Plugin(parent, name,args,NAME,i18n("Zeroconf"),AUTHOR,TQString(),i18n("Finds peers running ktorrent on the local network to share torrents with"),"ktplugins")
- {
- services.setAutoDelete(true);
- }
-
-
- ZeroConfPlugin::~ZeroConfPlugin()
- {}
-
- void ZeroConfPlugin::load()
- {
- CoreInterface* core = getCore();
- connect(core,TQ_SIGNAL(torrentAdded( kt::TorrentInterface* )),
- this,TQ_SLOT(torrentAdded( kt::TorrentInterface* )));
- connect(core,TQ_SIGNAL(torrentRemoved( kt::TorrentInterface* )),
- this,TQ_SLOT(torrentRemoved( kt::TorrentInterface* )));
-
- // go over existing torrents and add them
- bt::QueueManager* qman = core->getQueueManager();
- for (TQPtrList<kt::TorrentInterface>::iterator i = qman->begin();i != qman->end();i++)
- {
- torrentAdded(*i);
- }
- }
-
- void ZeroConfPlugin::unload()
- {
- CoreInterface* core = getCore();
- disconnect(core,TQ_SIGNAL(torrentAdded( kt::TorrentInterface* )),
- this,TQ_SLOT(torrentAdded( kt::TorrentInterface* )));
- disconnect(core,TQ_SIGNAL(torrentRemoved( kt::TorrentInterface* )),
- this,TQ_SLOT(torrentRemoved( kt::TorrentInterface*)));
-
- bt::PtrMap<kt::TorrentInterface*,AvahiService>::iterator i = services.begin();
- while (i != services.end())
- {
- AvahiService* av = i->second;
- kt::TorrentInterface* ti = i->first;
- ti->removePeerSource(av);
- i++;
- }
- services.clear();
- }
-
- void ZeroConfPlugin::torrentAdded(kt::TorrentInterface* tc)
- {
- if (services.contains(tc))
- return;
-
- bt::Uint16 port = bt::Globals::instance().getServer().getPortInUse();
- AvahiService* av = new AvahiService(tc->getOwnPeerID(),port,tc->getInfoHash());
- services.insert(tc,av);
- tc->addPeerSource(av);
- Out(SYS_ZCO|LOG_NOTICE) << "ZeroConf service added for "
- << tc->getStats().torrent_name << endl;
- connect(av,TQ_SIGNAL(serviceDestroyed( AvahiService* )),
- this,TQ_SLOT(avahiServiceDestroyed( AvahiService* )));
- }
-
-
- void ZeroConfPlugin::torrentRemoved(kt::TorrentInterface* tc)
- {
- AvahiService* av = services.find(tc);
- if (!av)
- return;
- Out(SYS_ZCO|LOG_NOTICE) << "ZeroConf service removed for "
- << tc->getStats().torrent_name << endl;
- tc->removePeerSource(av);
- services.erase(tc);
- }
-
- void ZeroConfPlugin::avahiServiceDestroyed(AvahiService* av)
- {
- services.setAutoDelete(false);
-
- Out(SYS_ZCO|LOG_NOTICE) << "ZeroConf service destroyed " << endl;
- bt::PtrMap<kt::TorrentInterface*,AvahiService>::iterator i = services.begin();
- while (i != services.end())
- {
- if (i->second == av)
- {
- services.erase(i->first);
- break;
- }
- i++;
- }
- services.setAutoDelete(true);
- }
-
- bool ZeroConfPlugin::versionCheck(const TQString & version) const
- {
- return version == KT_VERSION_MACRO;
- }
-}
-#include "zeroconfplugin.moc"