#include <netviewer.h>
Inheritance diagram for NetViewer:
Public Slots | |
void | loadConnections () |
void | addCircuit (Circuit circuit) |
void | clear () |
Public Member Functions | |
NetViewer (QWidget *parent=0) | |
Protected Member Functions | |
void | customEvent (QEvent *event) |
Private Slots | |
void | help () |
void | refresh () |
void | circuitSelected (Circuit circuit) |
void | resolved (int id, QList< GeoIp > geoips) |
void | routerSelected (RouterDescriptor router) |
void | gotConnected () |
void | gotDisconnected () |
void | resolve () |
Private Member Functions | |
void | loadDescriptors (QStringList ids) |
void | addRouter (RouterDescriptor rd) |
Circuit | circuitPathIDs (Circuit circ) |
Circuit | circuitPathNames (Circuit circ) |
Private Attributes | |
TorControl * | _torControl |
QTimer | _refreshTimer |
TorMapWidget * | _map |
GeoIpResolver | _geoip |
QList< QHostAddress > | _resolveQueue |
QHash< QString, QString > | _resolveMap |
QTimer | _resolveQueueTimer |
Ui::NetViewer | ui |
Definition at line 44 of file netviewer.h.
NetViewer::NetViewer | ( | QWidget * | parent = 0 |
) |
Default constructor
Definition at line 50 of file netviewer.cpp.
References _geoip, _map, _refreshTimer, _resolveQueueTimer, _torControl, circuitSelected(), TorEvents::CircuitStatus, CircuitListWidget::ConnectionColumn, CircuitListWidget::ConnectionColumnWidth, gotConnected(), gotDisconnected(), help(), TorEvents::NewDescriptor, refresh(), resolve(), resolved(), routerSelected(), TorControl::setEvent(), RouterListWidget::StatusColumn, RouterListWidget::StatusColumnWidth, TorEvents::StreamStatus, Vidalia::torControl(), and ui.
void NetViewer::loadConnections | ( | ) | [slot] |
Loads a list of current circuits and streams.
Update the map
Definition at line 195 of file netviewer.cpp.
References _map, _torControl, addCircuit(), TorControl::getCircuits(), TorControl::getStreams(), and ui.
Referenced by refresh().
void NetViewer::addCircuit | ( | Circuit | circuit | ) | [slot] |
Adds a circuit to the list and the map
Definition at line 214 of file netviewer.cpp.
References _map, TorMapWidget::addCircuit(), circuitPathIDs(), circuitPathNames(), Circuit::hops(), Circuit::id(), and ui.
Referenced by customEvent(), and loadConnections().
void NetViewer::clear | ( | ) | [slot] |
Clears all known information
Definition at line 179 of file netviewer.cpp.
References _map, _resolveMap, _resolveQueue, TorMapWidget::clear(), and ui.
Referenced by gotDisconnected(), and refresh().
void NetViewer::customEvent | ( | QEvent * | event | ) | [protected] |
Called to deliver a NEWDESC event from Tor.
Update the map
Definition at line 133 of file netviewer.cpp.
References _map, addCircuit(), CircuitEvent::circuit(), CustomEventType::CircuitEvent, NewDescriptorEvent::descriptorIDs(), loadDescriptors(), CustomEventType::NewDescriptorEvent, StreamEvent::stream(), CustomEventType::StreamEvent, and ui.
void NetViewer::help | ( | ) | [private, slot] |
Called when the user selects the "Help" action on the toolbar.
Definition at line 227 of file netviewer.cpp.
References Vidalia::help().
Referenced by NetViewer().
void NetViewer::refresh | ( | ) | [private, slot] |
Called when the user selects the "Refresh" action on the toolbar
Definition at line 159 of file netviewer.cpp.
References _torControl, clear(), TorControl::getRouterIDList(), loadConnections(), loadDescriptors(), and ui.
Referenced by gotConnected(), and NetViewer().
void NetViewer::circuitSelected | ( | Circuit | circuit | ) | [private, slot] |
Called when the user selects a circuit on the circuit list
Definition at line 277 of file netviewer.cpp.
References _map, TorMapWidget::deselectAll(), Circuit::hops(), Circuit::id(), TorMapWidget::selectCircuit(), and ui.
Referenced by NetViewer().
void NetViewer::resolved | ( | int | id, | |
QList< GeoIp > | geoips | |||
) | [private, slot] |
Called when an IP has been resolved to geographic information.
Definition at line 322 of file netviewer.cpp.
References _map, _resolveMap, TorMapWidget::addCircuit(), TorMapWidget::addRouter(), circuitPathIDs(), Circuit::hops(), Circuit::id(), RouterListItem::id(), GeoIp::ip(), GeoIp::latitude(), GeoIp::longitude(), RouterListItem::setLocation(), GeoIp::toLocation(), and ui.
Referenced by NetViewer().
void NetViewer::routerSelected | ( | RouterDescriptor | router | ) | [private, slot] |
Called when the user selects a router in the list.
Definition at line 302 of file netviewer.cpp.
References _map, TorMapWidget::deselectAll(), RouterDescriptor::name(), TorMapWidget::selectRouter(), and ui.
Referenced by NetViewer().
void NetViewer::gotConnected | ( | ) | [private, slot] |
Handles when we get connected to Tor network
Definition at line 125 of file netviewer.cpp.
References _refreshTimer, and refresh().
Referenced by NetViewer().
void NetViewer::gotDisconnected | ( | ) | [private, slot] |
Handles when we get disconnected from Tor network
Definition at line 117 of file netviewer.cpp.
References _refreshTimer, and clear().
Referenced by NetViewer().
void NetViewer::resolve | ( | ) | [private, slot] |
Resolves IP addresses in the resolve queue to geographic information.
Definition at line 312 of file netviewer.cpp.
References _geoip, _resolveQueue, and GeoIpResolver::resolve().
Referenced by NetViewer().
void NetViewer::loadDescriptors | ( | QStringList | ids | ) | [private] |
Loads a list of router descriptors from the list of IDs.
Definition at line 234 of file netviewer.cpp.
References _torControl, addRouter(), TorControl::getDescriptorListById(), and RouterDescriptor::isEmpty().
Referenced by customEvent(), and refresh().
void NetViewer::addRouter | ( | RouterDescriptor | rd | ) | [private] |
Adds a router to our list of servers and retrieves geographic location information for the server.
Definition at line 250 of file netviewer.cpp.
References _resolveMap, _resolveQueue, _resolveQueueTimer, RouterDescriptor::id(), RouterDescriptor::ip(), RESOLVE_QUEUE_DELAY, and ui.
Referenced by circuitPathIDs(), circuitPathNames(), and loadDescriptors().
Convert all hops in circ's path to server identities. circ's status and circuit ID will be preserved.
Definition at line 360 of file netviewer.cpp.
References _torControl, addRouter(), RouterListItem::descriptor(), TorControl::getDescriptorByName(), TorControl::getTorVersion(), Circuit::hops(), Circuit::id(), RouterDescriptor::id(), RouterDescriptor::isEmpty(), Circuit::status(), and ui.
Referenced by addCircuit(), and resolved().
Convert all hops in circ's path to server names. circ's status and circuit ID will be preserved.
Definition at line 403 of file netviewer.cpp.
References _torControl, addRouter(), TorControl::getDescriptorById(), Circuit::hops(), Circuit::id(), RouterDescriptor::isEmpty(), RouterDescriptor::name(), Circuit::status(), and ui.
Referenced by addCircuit().
TorControl* NetViewer::_torControl [private] |
TorControl object used to talk to Tor.
Definition at line 96 of file netviewer.h.
Referenced by circuitPathIDs(), circuitPathNames(), loadConnections(), loadDescriptors(), NetViewer(), and refresh().
QTimer NetViewer::_refreshTimer [private] |
Timer that fires once an hour to update the router list.
Definition at line 98 of file netviewer.h.
Referenced by gotConnected(), gotDisconnected(), and NetViewer().
TorMapWidget* NetViewer::_map [private] |
TorMapWidget that displays the map.
Definition at line 100 of file netviewer.h.
Referenced by addCircuit(), circuitSelected(), clear(), customEvent(), loadConnections(), NetViewer(), resolved(), and routerSelected().
GeoIpResolver NetViewer::_geoip [private] |
GeoIpResolver used to geolocate routers by IP address.
Definition at line 102 of file netviewer.h.
Referenced by NetViewer(), and resolve().
QList<QHostAddress> NetViewer::_resolveQueue [private] |
Queue for IPs pending resolution to geographic information.
Definition at line 104 of file netviewer.h.
Referenced by addRouter(), clear(), and resolve().
QHash<QString, QString> NetViewer::_resolveMap [private] |
Maps pending GeoIP requests to server IDs.
Definition at line 106 of file netviewer.h.
Referenced by addRouter(), clear(), and resolved().
QTimer NetViewer::_resolveQueueTimer [private] |
Timer used to delay GeoIP requests until we've received "a chunk" of them.
Definition at line 108 of file netviewer.h.
Referenced by addRouter(), and NetViewer().
Ui::NetViewer NetViewer::ui [private] |
Qt Designer generated object
Definition at line 111 of file netviewer.h.
Referenced by addCircuit(), addRouter(), circuitPathIDs(), circuitPathNames(), circuitSelected(), clear(), customEvent(), loadConnections(), NetViewer(), refresh(), resolved(), and routerSelected().