/usr/share/arm/gui/graphing/bandwidthStats.py is in tor-arm 1.4.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """
Bandwidth monitors.
"""
import sys
import gobject
import gtk
from gui.graphing import graphPanel
from starter import CONFIG
from util import torTools, uiTools
from TorCtl import TorCtl
class BandwidthStats(graphPanel.GraphPanel):
def __init__(self, builder):
graphPanel.GraphPanel.__init__(self, builder)
conn = torTools.getConn()
if not conn.isAlive():
try:
conn.init()
except ValueError:
if CONFIG['features.allowDetachedStartup']:
return
else:
raise
conn.setControllerEvents(["BW", "NEWDESC"])
conn.addEventListener(self)
self.new_desc_event(None)
def new_desc_event(self, event):
conn = torTools.getConn()
if not conn.isAlive():
return
bwRate = conn.getMyBandwidthRate()
bwBurst = conn.getMyBandwidthBurst()
bwObserved = conn.getMyBandwidthObserved()
bwMeasured = conn.getMyBandwidthMeasured()
if bwRate and bwBurst:
bwRateLabel = uiTools.getSizeLabel(bwRate, 1, False, isBytes=False)
bwBurstLabel = uiTools.getSizeLabel(bwBurst, 1, False, isBytes=False)
msg = "Limit: %s/s, Burst: %s/s" % (bwRateLabel, bwBurstLabel)
label = self.builder.get_object('label_graph_top')
label.set_text(msg)
def bandwidth_event(self, event):
self._process_event(event.read, event.written)
msg = 'Download: %s/s' % uiTools.getSizeLabel(event.read, 2, isBytes=False)
self.update_header('primary', msg)
msg = 'Upload: %s/s' % uiTools.getSizeLabel(event.written, 2, isBytes=False)
self.update_header('secondary', msg)
|