[tor-commits] [arm/release] Populate connection lines with IP addresses.

atagar at torproject.org atagar at torproject.org
Sun Jul 17 06:08:32 UTC 2011


commit de206a1af1d8e37b3b59a077084a146f1d9ef1d0
Author: Kamran Riaz Khan <krkhan at inspirated.com>
Date:   Sun Jul 10 19:24:41 2011 +0500

    Populate connection lines with IP addresses.
---
 src/gui/connections/circEntry.py |    4 +-
 src/gui/connections/connEntry.py |   46 +++++++++++++++++++++++++++++++++-----
 src/gui/connections/connPanel.py |    2 +-
 3 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/src/gui/connections/circEntry.py b/src/gui/connections/circEntry.py
index 036fbab..a7ddc13 100644
--- a/src/gui/connections/circEntry.py
+++ b/src/gui/connections/circEntry.py
@@ -16,7 +16,7 @@ class CircHeaderLine(circEntry.CircHeaderLine):
   def convertToGui(self, instance):
     instance.__class__ = self
 
-  def getListingRow(self):
+  def getListingRow(self, listingType):
     local = "%s:%s" % (self.local.ipAddr, self.local.port)
     foreign = "%s:%s" % (self.foreign.ipAddr, self.foreign.port)
     timeLabel = "%d s" % (time.time() - self.startTime)
@@ -28,7 +28,7 @@ class CircLine(circEntry.CircLine):
   def convertToGui(self, instance):
     instance.__class__ = self
 
-  def getListingRow(self):
+  def getListingRow(self, listingType):
     local = "%s:%s" % (self.local.ipAddr, self.local.port)
     foreign = "%s:%s" % (self.foreign.ipAddr, self.foreign.port)
     timeLabel = "%d s" % (time.time() - self.startTime)
diff --git a/src/gui/connections/connEntry.py b/src/gui/connections/connEntry.py
index 5888532..1acef49 100644
--- a/src/gui/connections/connEntry.py
+++ b/src/gui/connections/connEntry.py
@@ -5,7 +5,9 @@ Connection panel entries related to actual connections to or from the system
 
 import time
 
-from cli.connections import connEntry
+from cli.connections import connEntry, entries
+from cli.connections.connEntry import CONFIG, Category
+from util import uiTools, torTools
 
 class ConnectionEntry(connEntry.ConnectionEntry):
   @classmethod
@@ -17,10 +19,42 @@ class ConnectionLine(connEntry.ConnectionLine):
   def convertToGui(self, instance):
     instance.__class__ = self
 
-  def getListingRow(self):
-    local = "%s:%s" % (self.local.ipAddr, self.local.port)
-    foreign = "%s:%s" % (self.foreign.ipAddr, self.foreign.port)
-    timeLabel = "%d s" % (time.time() - self.startTime)
+  def getListingRow(self, listingType):
+    conn = torTools.getConn()
+    myType = self.getType()
+    dstAddress = self.getDestinationLabel(26, includeLocale = True)
+    localPort = ":%s" % self.local.getPort() if self.includePort else ""
 
-    return (local, foreign, timeLabel, self.baseType, 'red')
+    src, dst, etc = "", "", ""
+
+    if listingType == entries.ListingType.IP_ADDRESS:
+      myExternalIpAddr = conn.getInfo("address", self.local.getIpAddr())
+      addrDiffer = myExternalIpAddr != self.local.getIpAddr()
+
+      isExpansionType = not myType in (Category.SOCKS, Category.HIDDEN, Category.CONTROL)
+
+      if isExpansionType: srcAddress = myExternalIpAddr + localPort
+      else: srcAddress = self.local.getIpAddr() + localPort
+
+      if myType in (Category.SOCKS, Category.CONTROL):
+        src = dstAddress
+        dst = srcAddress
+      else:
+        src = srcAddress
+        dst = dstAddress
+
+      if addrDiffer and isExpansionType and self.includeExpandedIpAddr and CONFIG["features.connection.showColumn.expandedIp"]:
+        internalAddress = self.local.getIpAddr() + localPort
+
+        if myType == Category.INBOUND: (src, dst) =  (src, internalAddress)
+        else: (src, dst) =  (internalAddress, src)
+
+      etc = self.getEtcContent(100, listingType)
+    else:
+      src = "%s:%s" % (self.local.ipAddr, self.local.port)
+      dst = "%s:%s" % (self.foreign.ipAddr, self.foreign.port)
+
+    timeLabel = uiTools.getTimeLabel(time.time() - self.startTime)
+
+    return (src, dst, timeLabel, self.getType(), 'red')
 
diff --git a/src/gui/connections/connPanel.py b/src/gui/connections/connPanel.py
index 3c570c3..3b980e1 100644
--- a/src/gui/connections/connPanel.py
+++ b/src/gui/connections/connPanel.py
@@ -90,7 +90,7 @@ class ConnectionPanel(CliConnectionPanel):
       if isinstance(line, connEntry.ConnectionLine) and line.isUnresolvedApp():
         self._resolveApps()
 
-      row = line.getListingRow()
+      row = line.getListingRow(self._listingType)
 
       if isinstance(line, circEntry.CircHeaderLine):
         currentiter = treestore.append(None, row)





More information about the tor-commits mailing list