summaryrefslogtreecommitdiffstats
path: root/plugins/upnp/upnpprefwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/upnp/upnpprefwidget.cpp')
-rw-r--r--plugins/upnp/upnpprefwidget.cpp253
1 files changed, 0 insertions, 253 deletions
diff --git a/plugins/upnp/upnpprefwidget.cpp b/plugins/upnp/upnpprefwidget.cpp
deleted file mode 100644
index ab84a2e..0000000
--- a/plugins/upnp/upnpprefwidget.cpp
+++ /dev/null
@@ -1,253 +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 <tdelistview.h>
-#include <tdemessagebox.h>
-#include <kpushbutton.h>
-#include <torrent/udptrackersocket.h>
-#include <torrent/globals.h>
-#include <torrent/server.h>
-#include <kademlia/dhtbase.h>
-#include "upnpprefwidget.h"
-#include <util/log.h>
-#include <util/error.h>
-#include <util/waitjob.h>
-#include <util/httprequest.h>
-#include <torrent/globals.h>
-#include "upnppluginsettings.h"
-
-using namespace bt;
-
-namespace kt
-{
- UPnPPrefWidget::UPnPPrefWidget(TQWidget* parent, const char* name, WFlags fl)
- : UPnPWidget(parent,name,fl)
- {
- def_router = 0;
- connect(m_forward_btn,TQT_SIGNAL(clicked()),this,TQT_SLOT(onForwardBtnClicked()));
- connect(m_undo_forward_btn,TQT_SIGNAL(clicked()),this,TQT_SLOT(onUndoForwardBtnClicked()));
- connect(m_rescan,TQT_SIGNAL(clicked()),this,TQT_SLOT(onRescanClicked()));
- bt::Globals::instance().getPortList().setListener(this);
- }
-
- UPnPPrefWidget::~UPnPPrefWidget()
- {
- bt::Globals::instance().getPortList().setListener(0);
- }
-
- void UPnPPrefWidget::shutdown(bt::WaitJob* job)
- {
- if (!def_router)
- return;
-
- net::PortList & pl = bt::Globals::instance().getPortList();
- if (pl.count() == 0)
- return;
-
- for (net::PortList::iterator i = pl.begin(); i != pl.end();i++)
- {
- net::Port & p = *i;
- if (p.forward)
- def_router->undoForward(p,job);
- }
- }
-
-
- void UPnPPrefWidget::addDevice(UPnPRouter* r)
- {
- connect(r,TQT_SIGNAL(updateGUI()),this,TQT_SLOT(updatePortMappings()));
- TDEListViewItem* item = new TDEListViewItem(m_device_list,r->getDescription().friendlyName);
- item->setMultiLinesEnabled(true);
- itemmap[item] = r;
- // if we have discovered the default device or there is none
- // forward it's ports
- TQString def_dev = UPnPPluginSettings::defaultDevice();
- if (def_dev == r->getServer() || def_dev.length() == 0)
- {
- Out(SYS_PNP|LOG_DEBUG) << "Doing default port mappings ..." << endl;
- UPnPPluginSettings::setDefaultDevice(r->getServer());
- UPnPPluginSettings::writeConfig();
-
- try
- {
- net::PortList & pl = bt::Globals::instance().getPortList();
-
- for (net::PortList::iterator i = pl.begin(); i != pl.end();i++)
- {
- net::Port & p = *i;
- if (p.forward)
- r->forward(p);
- }
-
- def_router = r;
- }
- catch (Error & e)
- {
- KMessageBox::error(this,e.toString());
- }
- }
- }
-
- void UPnPPrefWidget::onForwardBtnClicked()
- {
- TDEListViewItem* item = (TDEListViewItem*)m_device_list->currentItem();;
- if (!item)
- return;
-
- UPnPRouter* r = itemmap[item];
- if (!r)
- return;
-
- try
- {
- net::PortList & pl = bt::Globals::instance().getPortList();
-
- for (net::PortList::iterator i = pl.begin(); i != pl.end();i++)
- {
- net::Port & p = *i;
- if (p.forward)
- r->forward(p);
- }
-
- TQString def_dev = UPnPPluginSettings::defaultDevice();
- if (def_dev != r->getServer())
- {
- UPnPPluginSettings::setDefaultDevice(r->getServer());
- UPnPPluginSettings::writeConfig();
- def_router = r;
- }
-
- }
- catch (Error & e)
- {
- KMessageBox::error(this,e.toString());
- }
- }
-
- void UPnPPrefWidget::onRescanClicked()
- {
- // clear the list and emit the signal
- rescan();
- }
-
- void UPnPPrefWidget::onUndoForwardBtnClicked()
- {
- TDEListViewItem* item = (TDEListViewItem*)m_device_list->currentItem();;
- if (!item)
- return;
-
- UPnPRouter* r = itemmap[item];
- if (!r)
- return;
-
- try
- {
- net::PortList & pl = bt::Globals::instance().getPortList();
-
- for (net::PortList::iterator i = pl.begin(); i != pl.end();i++)
- {
- net::Port & p = *i;
- if (p.forward)
- r->undoForward(p, 0);
- }
-
- TQString def_dev = UPnPPluginSettings::defaultDevice();
- if (def_dev == r->getServer())
- {
- UPnPPluginSettings::setDefaultDevice(TQString());
- UPnPPluginSettings::writeConfig();
- def_router = 0;
- }
- }
- catch (Error & e)
- {
- KMessageBox::error(this,e.toString());
- }
- }
-
-
- void UPnPPrefWidget::updatePortMappings()
- {
- // update all port mappings
- TQMap<TDEListViewItem*,UPnPRouter*>::iterator i = itemmap.begin();
- while (i != itemmap.end())
- {
- UPnPRouter* r = i.data();
- TDEListViewItem* item = i.key();
- TQString msg,services;
- TQValueList<UPnPRouter::Forwarding>::iterator j = r->beginPortMappings();
- while (j != r->endPortMappings())
- {
- UPnPRouter::Forwarding & f = *j;
- if (!f.pending_req)
- {
- msg += TQString::number(f.port.number) + " (";
- TQString prot = (f.port.proto == net::UDP ? "UDP" : "TCP");
- msg += prot + ")";
- if (f.service->servicetype.contains("WANPPPConnection"))
- services += "PPP";
- else
- services += "IP";
- }
- j++;
- if (j != r->endPortMappings())
- {
- msg += "\n";
- services += "\n";
- }
- }
- item->setText(1,msg);
- item->setText(2,services);
- i++;
- }
- }
-
-
- void UPnPPrefWidget::portAdded(const net::Port & port)
- {
- try
- {
- if (def_router && port.forward)
- def_router->forward(port);
- }
- catch (Error & e)
- {
- Out(SYS_PNP|LOG_DEBUG) << "Error : " << e.toString() << endl;
- }
- }
-
- void UPnPPrefWidget::portRemoved(const net::Port & port)
- {
- try
- {
- if (def_router && port.forward)
- def_router->undoForward(port, 0);
- }
- catch (Error & e)
- {
- Out(SYS_PNP|LOG_DEBUG) << "Error : " << e.toString() << endl;
- }
- }
-}
-
-
-
-#include "upnpprefwidget.moc"
-