tor-commits
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2011
- 14 participants
- 716 discussions

12 Jun '11
commit af0580268ef996be857eb8300aecf1848894b724
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 18:53:02 2011 -0700
Moving menu generation into a dedicated file
---
src/cli/menu/__init__.py | 2 +-
src/cli/menu/actions.py | 73 ++++++++++++++++++++++++++++++++++++++++++++++
src/cli/menu/menu.py | 69 +------------------------------------------
3 files changed, 76 insertions(+), 68 deletions(-)
diff --git a/src/cli/menu/__init__.py b/src/cli/menu/__init__.py
index e6b5f10..f6d43ec 100644
--- a/src/cli/menu/__init__.py
+++ b/src/cli/menu/__init__.py
@@ -2,5 +2,5 @@
Resources for displaying the menu.
"""
-__all__ = ["item", "menu"]
+__all__ = ["actions", "item", "menu"]
diff --git a/src/cli/menu/actions.py b/src/cli/menu/actions.py
new file mode 100644
index 0000000..f6f88ba
--- /dev/null
+++ b/src/cli/menu/actions.py
@@ -0,0 +1,73 @@
+"""
+Generates the menu for arm, binding options with their related actions.
+"""
+
+import cli.menu.item
+
+def makeMenu():
+ """
+ Constructs the base menu and all of its contents.
+ """
+
+ baseMenu = cli.menu.item.Submenu("")
+
+ fileMenu = cli.menu.item.Submenu("File")
+ fileMenu.add(cli.menu.item.MenuItem("Exit", None))
+ baseMenu.add(fileMenu)
+
+ logsMenu = cli.menu.item.Submenu("Logs")
+ logsMenu.add(cli.menu.item.MenuItem("Events", None))
+ logsMenu.add(cli.menu.item.MenuItem("Clear", None))
+ logsMenu.add(cli.menu.item.MenuItem("Save", None))
+ logsMenu.add(cli.menu.item.MenuItem("Filter", None))
+
+ duplicatesSubmenu = cli.menu.item.Submenu("Duplicates")
+ duplicatesSubmenu.add(cli.menu.item.MenuItem("Hidden", None))
+ duplicatesSubmenu.add(cli.menu.item.MenuItem("Visible", None))
+ logsMenu.add(duplicatesSubmenu)
+ baseMenu.add(logsMenu)
+
+ viewMenu = cli.menu.item.Submenu("View")
+ viewMenu.add(cli.menu.item.MenuItem("Graph", None))
+ viewMenu.add(cli.menu.item.MenuItem("Connections", None))
+ viewMenu.add(cli.menu.item.MenuItem("Configuration", None))
+ viewMenu.add(cli.menu.item.MenuItem("Configuration File", None))
+ baseMenu.add(viewMenu)
+
+ graphMenu = cli.menu.item.Submenu("Graph")
+ graphMenu.add(cli.menu.item.MenuItem("Stats", None))
+
+ sizeSubmenu = cli.menu.item.Submenu("Size")
+ sizeSubmenu.add(cli.menu.item.MenuItem("Increase", None))
+ sizeSubmenu.add(cli.menu.item.MenuItem("Decrease", None))
+ graphMenu.add(sizeSubmenu)
+
+ graphMenu.add(cli.menu.item.MenuItem("Update Interval", None))
+
+ boundsSubmenu = cli.menu.item.Submenu("Bounds")
+ boundsSubmenu.add(cli.menu.item.MenuItem("Local Max", None))
+ boundsSubmenu.add(cli.menu.item.MenuItem("Global Max", None))
+ boundsSubmenu.add(cli.menu.item.MenuItem("Tight", None))
+ graphMenu.add(boundsSubmenu)
+ baseMenu.add(graphMenu)
+
+ connectionsMenu = cli.menu.item.Submenu("Connections")
+ connectionsMenu.add(cli.menu.item.MenuItem("Identity", None))
+ connectionsMenu.add(cli.menu.item.MenuItem("Resolver", None))
+ connectionsMenu.add(cli.menu.item.MenuItem("Sort Order", None))
+ baseMenu.add(connectionsMenu)
+
+ configurationMenu = cli.menu.item.Submenu("Configuration")
+
+ commentsSubmenu = cli.menu.item.Submenu("Comments")
+ commentsSubmenu.add(cli.menu.item.MenuItem("Hidden", None))
+ commentsSubmenu.add(cli.menu.item.MenuItem("Visible", None))
+ configurationMenu.add(commentsSubmenu)
+
+ configurationMenu.add(cli.menu.item.MenuItem("Reload", None))
+ configurationMenu.add(cli.menu.item.MenuItem("Reset Tor", None))
+ baseMenu.add(configurationMenu)
+
+ return baseMenu
+
+
diff --git a/src/cli/menu/menu.py b/src/cli/menu/menu.py
index f83b76d..e0728e8 100644
--- a/src/cli/menu/menu.py
+++ b/src/cli/menu/menu.py
@@ -4,75 +4,10 @@ import curses
import cli.popups
import cli.controller
import cli.menu.item
+import cli.menu.actions
from util import uiTools
-def makeMenu():
- """
- Constructs the base menu and all of its contents.
- """
-
- baseMenu = cli.menu.item.Submenu("")
-
- fileMenu = cli.menu.item.Submenu("File")
- fileMenu.add(cli.menu.item.MenuItem("Exit", None))
- baseMenu.add(fileMenu)
-
- logsMenu = cli.menu.item.Submenu("Logs")
- logsMenu.add(cli.menu.item.MenuItem("Events", None))
- logsMenu.add(cli.menu.item.MenuItem("Clear", None))
- logsMenu.add(cli.menu.item.MenuItem("Save", None))
- logsMenu.add(cli.menu.item.MenuItem("Filter", None))
-
- duplicatesSubmenu = cli.menu.item.Submenu("Duplicates")
- duplicatesSubmenu.add(cli.menu.item.MenuItem("Hidden", None))
- duplicatesSubmenu.add(cli.menu.item.MenuItem("Visible", None))
- logsMenu.add(duplicatesSubmenu)
- baseMenu.add(logsMenu)
-
- viewMenu = cli.menu.item.Submenu("View")
- viewMenu.add(cli.menu.item.MenuItem("Graph", None))
- viewMenu.add(cli.menu.item.MenuItem("Connections", None))
- viewMenu.add(cli.menu.item.MenuItem("Configuration", None))
- viewMenu.add(cli.menu.item.MenuItem("Configuration File", None))
- baseMenu.add(viewMenu)
-
- graphMenu = cli.menu.item.Submenu("Graph")
- graphMenu.add(cli.menu.item.MenuItem("Stats", None))
-
- sizeSubmenu = cli.menu.item.Submenu("Size")
- sizeSubmenu.add(cli.menu.item.MenuItem("Increase", None))
- sizeSubmenu.add(cli.menu.item.MenuItem("Decrease", None))
- graphMenu.add(sizeSubmenu)
-
- graphMenu.add(cli.menu.item.MenuItem("Update Interval", None))
-
- boundsSubmenu = cli.menu.item.Submenu("Bounds")
- boundsSubmenu.add(cli.menu.item.MenuItem("Local Max", None))
- boundsSubmenu.add(cli.menu.item.MenuItem("Global Max", None))
- boundsSubmenu.add(cli.menu.item.MenuItem("Tight", None))
- graphMenu.add(boundsSubmenu)
- baseMenu.add(graphMenu)
-
- connectionsMenu = cli.menu.item.Submenu("Connections")
- connectionsMenu.add(cli.menu.item.MenuItem("Identity", None))
- connectionsMenu.add(cli.menu.item.MenuItem("Resolver", None))
- connectionsMenu.add(cli.menu.item.MenuItem("Sort Order", None))
- baseMenu.add(connectionsMenu)
-
- configurationMenu = cli.menu.item.Submenu("Configuration")
-
- commentsSubmenu = cli.menu.item.Submenu("Comments")
- commentsSubmenu.add(cli.menu.item.MenuItem("Hidden", None))
- commentsSubmenu.add(cli.menu.item.MenuItem("Visible", None))
- configurationMenu.add(commentsSubmenu)
-
- configurationMenu.add(cli.menu.item.MenuItem("Reload", None))
- configurationMenu.add(cli.menu.item.MenuItem("Reset Tor", None))
- baseMenu.add(configurationMenu)
-
- return baseMenu
-
class MenuCursor:
"""
Tracks selection and key handling in the menu.
@@ -139,7 +74,7 @@ def showMenu():
try:
# generates the menu and uses the initial selection of the first item in
# the file menu
- menu = makeMenu()
+ menu = cli.menu.actions.makeMenu()
cursor = MenuCursor(menu.getChildren()[0].getChildren()[0])
while not cursor.isDone():
1
0

11 Jun '11
commit d3a1f351009103169e63e85ab366ca4167cb2add
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 12:42:49 2011 -0700
Adding an option to override interface colors
This causes all color requests for the interface to be replaced with the
overridden color (ie, everything except white content is replaced). This is a
neat looking effect and will be added as an option to the menu (it's currently
a config option).
---
armrc.sample | 5 +++++
src/util/uiTools.py | 38 +++++++++++++++++++++++++++++++++++++-
2 files changed, 42 insertions(+), 1 deletions(-)
diff --git a/armrc.sample b/armrc.sample
index ecfe45a..1eafe77 100644
--- a/armrc.sample
+++ b/armrc.sample
@@ -19,6 +19,11 @@ queries.useProc true
# Renders the interface with color if set and the terminal supports it
features.colorInterface true
+# Replaces all colored content (ie, anything that isn't white) with this
+# color. Valid options are:
+# none, red, green, yellow, blue, cyan, magenta, black, white
+features.colorOverride none
+
# Includes unicode characters in the interface.
features.printUnicode true
diff --git a/src/util/uiTools.py b/src/util/uiTools.py
index 0ff680e..5999c64 100644
--- a/src/util/uiTools.py
+++ b/src/util/uiTools.py
@@ -37,7 +37,8 @@ Ending = enum.Enum("ELLIPSE", "HYPHEN")
SCROLL_KEYS = (curses.KEY_UP, curses.KEY_DOWN, curses.KEY_PPAGE, curses.KEY_NPAGE, curses.KEY_HOME, curses.KEY_END)
CONFIG = {"features.colorInterface": True,
"features.printUnicode": True,
- "log.cursesColorSupport": log.INFO}
+ "log.cursesColorSupport": log.INFO,
+ "log.configEntryTypeError": log.NOTICE}
# Flag indicating if unicode is supported by curses. If None then this has yet
# to be determined.
@@ -45,6 +46,14 @@ IS_UNICODE_SUPPORTED = None
def loadConfig(config):
config.update(CONFIG)
+
+ CONFIG["features.colorOverride"] = "none"
+ colorOverride = config.get("features.colorOverride", "none")
+
+ if colorOverride != "none":
+ try: setColorOverride(colorOverride)
+ except ValueError, exc:
+ log.log(CONFIG["log.configEntryTypeError"], exc)
def demoGlyphs():
"""
@@ -143,9 +152,36 @@ def getColor(color):
color - name of the foreground color to be returned
"""
+ colorOverride = getColorOverride()
+ if colorOverride: color = colorOverride
if not COLOR_ATTR_INITIALIZED: _initColors()
return COLOR_ATTR[color]
+def setColorOverride(color = None):
+ """
+ Overwrites all requests for color with the given color instead. This raises
+ a ValueError if the color is invalid.
+
+ Arguments:
+ color - name of the color to overwrite requests with, None to use normal
+ coloring
+ """
+
+ if color == None:
+ CONFIG["features.colorOverride"] = "none"
+ elif color in COLOR_LIST.keys():
+ CONFIG["features.colorOverride"] = color
+ else: raise ValueError("\"%s\" isn't a valid color" % color)
+
+def getColorOverride():
+ """
+ Provides the override color used by the interface, None if it isn't set.
+ """
+
+ colorOverride = CONFIG.get("features.colorOverride", "none")
+ if colorOverride == "none": return None
+ else: return colorOverride
+
def cropStr(msg, size, minWordLen = 4, minCrop = 0, endType = Ending.ELLIPSE, getRemainder = False):
"""
Provides the msg constrained to the given length, truncating on word breaks.
1
0

11 Jun '11
commit 25157e75d3480dbe61ec99d6298de091a8b71446
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 12:37:56 2011 -0700
fix: removing dreprcated hearder comment
The connect functionality of torTools was long ago sent upstream to TorCtl.
---
src/util/torTools.py | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)
diff --git a/src/util/torTools.py b/src/util/torTools.py
index d7ffa4d..f17ed0b 100644
--- a/src/util/torTools.py
+++ b/src/util/torTools.py
@@ -1,12 +1,6 @@
"""
Helper for working with an active tor process. This both provides a wrapper for
-accessing TorCtl and notifications of state changes to subscribers. To quickly
-fetch a TorCtl instance to experiment with use the following:
-
->>> import util.torTools
->>> conn = util.torTools.connect()
->>> conn.get_info("version")["version"]
-'0.2.1.24'
+accessing TorCtl and notifications of state changes to subscribers.
"""
import os
1
0
commit e0534d9de792dcbba5382cb5cc6f431392b12632
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 14:22:47 2011 -0700
Improved interaction for graph resizing
Rather than using the 'n' and 'm' keys to resize the graph (with was both bad
and being overwritten by other functions) we now use the 'r' key to enter a
resizing mode where they can use up/down to resize the graph. This is more
intuitive and avoids occupying extra hotkeys.
---
src/cli/graphing/graphPanel.py | 53 ++++++++++++++++++++++++++++------------
1 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/src/cli/graphing/graphPanel.py b/src/cli/graphing/graphPanel.py
index 5fa1262..0207604 100644
--- a/src/cli/graphing/graphPanel.py
+++ b/src/cli/graphing/graphPanel.py
@@ -21,6 +21,7 @@ import curses
from TorCtl import TorCtl
import cli.popups
+import cli.controller
from util import enum, panel, torTools, uiTools
@@ -261,21 +262,42 @@ class GraphPanel(panel.Panel):
def handleKey(self, key):
isKeystrokeConsumed = True
- if key in (ord('n'), ord('N'), ord('m'), ord('M')):
- # Unfortunately modifier keys don't work with the up/down arrows (sending
- # multiple keycodes). The only exception to this is shift + left/right,
- # but for now just gonna use standard characters.
+ if key == ord('r') or key == ord('R'):
+ control = cli.controller.getController()
- if key in (ord('n'), ord('N')):
- self.setGraphHeight(self.graphHeight - 1)
- else:
- # don't grow the graph if it's already consuming the whole display
- # (plus an extra line for the graph/log gap)
- maxHeight = self.parent.getmaxyx()[0] - self.top
- currentHeight = self.getHeight()
-
- if currentHeight < maxHeight + 1:
- self.setGraphHeight(self.graphHeight + 1)
+ panel.CURSES_LOCK.acquire()
+ try:
+ while True:
+ msg = "press the down/up to resize the graph, and enter when done"
+ control.setMsg(msg, curses.A_BOLD, True)
+ curses.cbreak()
+ key = control.getScreen().getch()
+
+ if key == curses.KEY_DOWN:
+ # don't grow the graph if it's already consuming the whole display
+ # (plus an extra line for the graph/log gap)
+ maxHeight = self.parent.getmaxyx()[0] - self.top
+ currentHeight = self.getHeight()
+
+ if currentHeight < maxHeight + 1:
+ self.setGraphHeight(self.graphHeight + 1)
+ elif key == curses.KEY_UP:
+ self.setGraphHeight(self.graphHeight - 1)
+ elif uiTools.isSelectionKey(key): break
+
+ # redraws the resized panels
+ displayPanels = control.getDisplayPanels()
+
+ occupiedContent = 0
+ for panelImpl in displayPanels:
+ panelImpl.setTop(occupiedContent)
+ occupiedContent += panelImpl.getHeight()
+
+ for panelImpl in displayPanels:
+ panelImpl.redraw(True)
+ finally:
+ control.setMsg()
+ panel.CURSES_LOCK.release()
elif key == ord('b') or key == ord('B'):
# uses the next boundary type
self.bounds = Bounds.next(self.bounds)
@@ -314,8 +336,7 @@ class GraphPanel(panel.Panel):
else: graphedStats = "none"
options = []
- options.append(("m", "increase graph size", None))
- options.append(("n", "decrease graph size", None))
+ options.append(("r", "resize graph", None))
options.append(("s", "graphed stats", graphedStats))
options.append(("b", "graph bounds", self.bounds.lower()))
options.append(("i", "graph update interval", UPDATE_INTERVALS[self.updateInterval][0]))
1
0

11 Jun '11
Author: kloesing
Date: 2011-06-11 18:55:49 +0000 (Sat, 11 Jun 2011)
New Revision: 24819
Modified:
website/trunk/about/en/corepeople.wml
website/trunk/about/pl/corepeople.wml
website/trunk/docs/de/documentation.wml
website/trunk/docs/de/tor-doc-windows.wml
website/trunk/docs/en/documentation.wml
website/trunk/docs/en/faq-abuse.wml
website/trunk/docs/en/faq.wml
website/trunk/docs/en/tor-doc-osx.wml
website/trunk/docs/en/tor-doc-relay.wml
website/trunk/docs/en/tor-doc-unix.wml
website/trunk/docs/en/tor-doc-windows.wml
website/trunk/docs/en/tor-manual.wml
website/trunk/docs/fa/tor-doc-osx.wml
website/trunk/docs/fa/tor-doc-unix.wml
website/trunk/docs/fa/tor-doc-windows.wml
website/trunk/docs/fi/tor-doc-unix.wml
website/trunk/docs/fr/tor-doc-unix.wml
website/trunk/docs/fr/tor-doc-windows.wml
website/trunk/docs/it/tor-doc-relay.wml
website/trunk/docs/it/tor-doc-windows.wml
website/trunk/docs/pl/documentation.wml
website/trunk/docs/pl/faq-abuse.wml
website/trunk/docs/pl/faq.wml
website/trunk/docs/pl/tor-doc-osx.wml
website/trunk/docs/pl/tor-doc-relay.wml
website/trunk/docs/pl/tor-doc-unix.wml
website/trunk/docs/pl/tor-doc-windows.wml
website/trunk/download/en/download-unix.wml
website/trunk/download/pl/download-unix.wml
website/trunk/getinvolved/en/tshirt.wml
website/trunk/getinvolved/en/volunteer.wml
website/trunk/getinvolved/pl/tshirt.wml
website/trunk/getinvolved/pl/volunteer.wml
website/trunk/include/links.wmi
website/trunk/manpages/ar/tor.1.txt
website/trunk/manpages/ar/torify.1.txt
website/trunk/manpages/es/torify.1.txt
website/trunk/manpages/fr/tor.1.txt
website/trunk/manpages/fr/torify.1.txt
website/trunk/manpages/it/torify.1.txt
website/trunk/manpages/my/tor.1.txt
website/trunk/manpages/my/torify.1.txt
website/trunk/manpages/pl/torify.1.txt
website/trunk/manpages/ru/torify.1.txt
Log:
Update wiki links
Modified: website/trunk/about/en/corepeople.wml
===================================================================
--- website/trunk/about/en/corepeople.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/about/en/corepeople.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -151,7 +151,7 @@
Translation Portal</a> and the translations for a number of
projects (such as Vidalia, Torbutton and the website). She
also generally helps out with the <a
- href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/Torouter">Torouter
+ href="<wiki>doc/Torouter">Torouter
project</a>, bridge distribution through instant messaging,
and other projects.</dd>
<dt>Dr. Paul Syverson, Researcher</dt>
Modified: website/trunk/about/pl/corepeople.wml
===================================================================
--- website/trunk/about/pl/corepeople.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/about/pl/corepeople.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -131,7 +131,7 @@
href="http://www.transifex.net/projects/p/torproject/">Portalem Tłumaczeń
Tora</a> i tłumaczeniami wielu projektów (takich jak Vidalia, Torbutton i
strona WWW). Pomaga też z <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/Torouter">projektem
+href="<wiki>doc/Torouter">projektem
Torouter</a>, rozprowadzaniem mostków przez komunikatory i innymi
projektami.</dd>
<dt>Dr. Paul Syverson, Badacz</dt>
Modified: website/trunk/docs/de/documentation.wml
===================================================================
--- website/trunk/docs/de/documentation.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/de/documentation.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -247,7 +247,7 @@
<ul>
<li>Die <a href="<wiki>">Tor Wiki</a> bietet eine Fülle von hilfreichen
Beiträgen von Tor Benutzern. Schau sie dir an!</li>
- <li><a href="<wiki>TheOnionRouter/SupportPrograms">Eine Liste von ünerstützten
+ <li><a href="<wiki>doc/SupportPrograms">Eine Liste von ünerstützten
Programmen, die du vielleicht in Verbindung mit Tor benutzen möchtest</a>.</li>
<li><a href="https://check.torproject.org/">Der Tor Detektor</a> oder <a
href="http://torcheck.xenobite.eu/">der andere Tor Detektor</a> versuchen
Modified: website/trunk/docs/de/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/de/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/de/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -109,7 +109,7 @@
Software; SocksCap ist kommerziell.)</p>
<p>Für Informationen, wie man Tor mit anderen Programmen benutzt, schau dir das
-<a href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify HOWTO</a> an.
+<a href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a> an.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/en/documentation.wml
===================================================================
--- website/trunk/docs/en/documentation.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/documentation.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -243,7 +243,7 @@
wiki</a> provides a plethora of helpful contributions from Tor
users. Check it out!</li>
<li><a
- href="<wiki>TheOnionRouter/SupportPrograms">A
+ href="<wiki>doc/SupportPrograms">A
list of supporting programs you might want to use in association with
Tor</a>.</li>
<li><a href="https://check.torproject.org/">The
Modified: website/trunk/docs/en/faq-abuse.wml
===================================================================
--- website/trunk/docs/en/faq-abuse.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/faq-abuse.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -173,7 +173,7 @@
<p>For a complete set of template responses to different abuse complaint
types, see <a
- href="<wiki>TheOnionRouter/TorAbuseTemplates">the collection of templates
+ href="<wiki>doc/TorAbuseTemplates">the collection of templates
on the Tor wiki</a>. You can also proactively reduce the amount of abuse you
get by following <a href="<blog>tips-running-exit-node-minimal-harassment">these tips
for running an exit node with minimal harassment</a>.</p>
@@ -254,7 +254,7 @@
<p>Finally, if you become aware of an IRC network that seems to be
blocking Tor, or a single Tor exit node, please put that information on <a
- href="<wiki>TheOnionRouter/BlockingIrc">The Tor
+ href="<wiki>doc/BlockingIrc">The Tor
IRC block tracker</a>
so that others can share. At least one IRC network consults that page
to unblock exit nodes that have been blocked inadvertently. </p>
Modified: website/trunk/docs/en/faq.wml
===================================================================
--- website/trunk/docs/en/faq.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/faq.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -225,9 +225,9 @@
but we haven't researched the application-level anonymity
issues on them well enough to be able to recommend a safe
configuration. Our wiki has a list of instructions for <a
- href="<wiki>TheOnionRouter/TorifyHOWTO">Torifying
+ href="<wiki>doc/TorifyHOWTO">Torifying
specific applications</a>. There's also a <a
- href="<wiki>TheOnionRouter/SupportPrograms">list
+ href="<wiki>doc/SupportPrograms">list
of applications that help you direct your traffic through Tor</a>.
Please add to these lists and help us keep them accurate!
</p>
@@ -432,7 +432,7 @@
<li>
There are some steps that individuals
can take to improve their Tor performance. <a
- href="<wiki>TheOnionRouter/FireFoxTorPerf">You
+ href="<wiki>doc/FireFoxTorPerf">You
can configure your Firefox to handle Tor better</a>, <a
href="http://www.pps.jussieu.fr/~jch/software/polipo/tor.html">you can use
Polipo with Tor</a>, or you can try <a href="<page download/download>">upgrading
@@ -1661,7 +1661,7 @@
<p>
A collection of templates for successfully responding to ISPs is <a
- href="<wiki>TheOnionRouter/TorAbuseTemplates">collected
+ href="<wiki>doc/TorAbuseTemplates">collected
here</a>.
</p>
Modified: website/trunk/docs/en/tor-doc-osx.wml
===================================================================
--- website/trunk/docs/en/tor-doc-osx.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/tor-doc-osx.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -95,7 +95,7 @@
or <a href="http://www.dest-unreach.org/socat/">socat</a>.</p>
<p>For information on how to Torify other applications, check out the
- <a href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>.
+ <a href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>.
</p>
<hr>
Modified: website/trunk/docs/en/tor-doc-relay.wml
===================================================================
--- website/trunk/docs/en/tor-doc-relay.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/tor-doc-relay.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -176,7 +176,7 @@
<p>
6. Read
- <a href="<wiki>TheOnionRouter/OperationalSecurity">about operational security</a>
+ <a href="<wiki>doc/OperationalSecurity">about operational security</a>
to get ideas how you can increase the security of your relay.
</p>
@@ -248,7 +248,7 @@
be run as root, so it's good practice to not run it as root. Running
as a 'tor' user avoids issues with identd and other services that
detect user name. If you're the paranoid sort, feel free to <a
- href="<wiki>TheOnionRouter/TorInChroot">put Tor
+ href="<wiki>doc/TorInChroot">put Tor
into a chroot jail</a>.)
</p>
Modified: website/trunk/docs/en/tor-doc-unix.wml
===================================================================
--- website/trunk/docs/en/tor-doc-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/tor-doc-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -82,7 +82,7 @@
</p>
<p>If you prefer, you can instead use Privoxy with <a
- href="<wiki>TheOnionRouter/PrivoxyConfig">this
+ href="<wiki>doc/PrivoxyConfig">this
sample Privoxy configuration</a>. But since the config files both use
port 8118, you shouldn't run both Polipo and Privoxy at the same time.</p>
@@ -121,11 +121,11 @@
FAQ entry</a> for why this may be dangerous. For applications
that support neither SOCKS nor HTTP, take a look at <a
href="https://code.google.com/p/torsocks/">torsocks</a> or <a
- href="<wiki>TheOnionRouter/TorifyHOWTO#socat">socat</a>.
+ href="<wiki>doc/TorifyHOWTO#socat">socat</a>.
</p>
<p>For information on how to Torify other applications, check out the
- <a href="<wiki>TheOnionRouter/TorifyHOWTO">Torify
+ <a href="<wiki>doc/TorifyHOWTO">Torify
HOWTO</a>.
</p>
Modified: website/trunk/docs/en/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/en/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -101,7 +101,7 @@
(FreeCap is free software; SocksCap is proprietary.)</p>
<p>For information on how to Torify other applications, check out the
- <a href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify
+ <a href="<wiki>doc/TorifyHOWTO">Torify
HOWTO</a>.
</p>
Modified: website/trunk/docs/en/tor-manual.wml
===================================================================
--- website/trunk/docs/en/tor-manual.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/en/tor-manual.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -81,7 +81,7 @@
<p>
<strong>--service [install|remove|start|stop]</strong> Manage the Tor Windows
NT/2000/XP service. Current instructions can be found at
- <a href="https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#WinNTService">https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#WinNTService</a>
+ <a href="<wiki>doc/TorFAQ#WinNTService">https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ#WinNTService</a>
</p>
</dd>
<dt class="hdlist1">
Modified: website/trunk/docs/fa/tor-doc-osx.wml
===================================================================
--- website/trunk/docs/fa/tor-doc-osx.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fa/tor-doc-osx.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -103,7 +103,7 @@
<p>برای اطلاعات بيشتر در مورد اينکه چگونه نرمافزارهای مختلف را با تور سازگار
کنيم، مراجعه کنيد به مستند مربوط به <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
+href="<wiki>doc/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/fa/tor-doc-unix.wml
===================================================================
--- website/trunk/docs/fa/tor-doc-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fa/tor-doc-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -120,12 +120,12 @@
توضيج میدهد که چرا اين کار ممکن است خطرناک باشد. برای برنامههایی که نه
SOCKS و نه HTTP را پشتيبانی میکنند، نگاهی بياندازيد به <a
href="https://code.google.com/p/torsocks/">torsocks</a> و يا <a
-href="<wiki>TheOnionRouter/TorifyHOWTO#socat">socat</a>.
+href="<wiki>doc/TorifyHOWTO#socat">socat</a>.
</p>
<p>برای اطلاعات بيشتر در مورد اينکه چگونه نرمافزارهای مختلف را با تور سازگار
کنيم، مراجعه کنيد به مستند مربوط به <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
+href="<wiki>doc/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/fa/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/fa/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fa/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -108,7 +108,7 @@
<p>برای اطلاعات بيشتر در مورد اينکه چگونه نرمافزارهای مختلف را با تور سازگار
کنيم، مراجعه کنيد به مستند مربوط به <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
+href="<wiki>doc/TorifyHOWTO">چگونگی سازگارسازی با تور</a> .
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/fi/tor-doc-unix.wml
===================================================================
--- website/trunk/docs/fi/tor-doc-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fi/tor-doc-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -86,7 +86,7 @@
</p>
<p>Voit halutessasi käyttää Polipon sijasta Privoxya <a
-href="<wiki>TheOnionRouter/PrivoxyConfig">näillä Privoxyn
+href="<wiki>doc/PrivoxyConfig">näillä Privoxyn
esimerkkiasetuksilla</a>. Polipoa ja Privoxya ei kuitenkaan pidä ajaa yhtä
aikaa, koska molemmat asetustiedostot käyttävät porttia 8118,</p>
@@ -120,11 +120,11 @@
vaarallista. Jos käytät sovelluksia, jotka eivät tue sen paremmin SOCKSia
kuin HTTP:täkään, tutustu <a
href="https://code.google.com/p/torsocks/">torsocksiin</a> tai <a
-href="<wiki>TheOnionRouter/TorifyHOWTO#socat">socatiin</a>.
+href="<wiki>doc/TorifyHOWTO#socat">socatiin</a>.
</p>
<p>Tietoa muiden ohjelmien torraamisesta löytyy <a
-href="<wiki>TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>:sta.
+href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>:sta.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/fr/tor-doc-unix.wml
===================================================================
--- website/trunk/docs/fr/tor-doc-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fr/tor-doc-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -85,7 +85,7 @@
</p>
<p>Si vous préférez, vous pouvez toujours utiliser Privoxy avec cet <a
-href="<wiki>TheOnionRouter/PrivoxyConfig">exemple de configuration de
+href="<wiki>doc/PrivoxyConfig">exemple de configuration de
Privoxy.</a>. Mais étant donné que le fichier de configuration utilise le
port 8118, vous ne pourrez plus lancer Polipo et Privoxy en même temps.</p>
@@ -122,12 +122,12 @@
pourquoi cela peut être dangereux. Pour les applications qui ne supportent
ni SOCKS ni HTTP, jetez un œil à <a
href="https://code.google.com/p/torsocks/">torsocks</a> ou <a
-href="<wiki>TheOnionRouter/TorifyHOWTO#socat">socat</a>.
+href="<wiki>doc/TorifyHOWTO#socat">socat</a>.
</p>
<p>Pour plus d’informations concernant la « torification » d’autres
applications, référez-vous au<a
-href="<wiki>TheOnionRouter/TorifyHOWTO">HowTo de torify</a>.
+href="<wiki>doc/TorifyHOWTO">HowTo de torify</a>.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/fr/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/fr/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/fr/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -109,7 +109,7 @@
libre; SocksCap est propriétaire.)</p>
<p>Pour plus d'informations sur comment torifier d'autres applications,
-consultez le <a href="<wiki>/TheOnionRouter/TorifyHOWTO">Torifaction
+consultez le <a href="<wiki>doc/TorifyHOWTO">Torifaction
HOWTO</a> .
</p>
Modified: website/trunk/docs/it/tor-doc-relay.wml
===================================================================
--- website/trunk/docs/it/tor-doc-relay.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/it/tor-doc-relay.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -173,7 +173,7 @@
</p>
<p>
- 6. Leggi <a href="<wiki>TheOnionRouter/OperationalSecurity">riguardo la
+ 6. Leggi <a href="<wiki>doc/OperationalSecurity">riguardo la
sicurezza operativa</a> per sapere come si può aumentare la sicurezza del
tuo relay.
</p>
@@ -247,7 +247,7 @@
come root, quindi è buona prassi non eseguirlo come root. Girando come
utente 'tor' si evitano problemi con identd e altri rilevano il nome
dell'utente. Se sei una persona paranoica, sentitevi liberi di <a
-href="<wiki>TheOnionRouter/TorInChroot">mettere Tor in un chroot jail</a> .)
+href="<wiki>doc/TorInChroot">mettere Tor in un chroot jail</a> .)
</p>
<p>
Modified: website/trunk/docs/it/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/it/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/it/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -107,7 +107,7 @@
gratuito; SocksCap ne è il proprietario).</p>
<p>Per informazioni su come eseguire Tor su altre applicazioni, vedere <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>.
+href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/pl/documentation.wml
===================================================================
--- website/trunk/docs/pl/documentation.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/documentation.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -238,7 +238,7 @@
<ul>
<li><a href="<wiki>">Tor wiki</a> ma mnóstwo pomocnych wpisów od użytkowników
Tora. Sprawdź!</li>
- <li><a href="<wiki>TheOnionRouter/SupportPrograms">Lista programów pomocniczych,
+ <li><a href="<wiki>doc/SupportPrograms">Lista programów pomocniczych,
których możesz uzyć w połączeniu z Torem</a>.</li>
<li><a href="https://check.torproject.org/">Wykrywacz Tora</a> lub <a
href="http://torcheck.xenobite.eu/">inny wykrywacz Tora</a> próbują zgadnąć,
Modified: website/trunk/docs/pl/faq-abuse.wml
===================================================================
--- website/trunk/docs/pl/faq-abuse.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/faq-abuse.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -194,7 +194,7 @@
<p>Aby zobaczyć pełny zestaw szablonów odpowiedzi na różne typy skarg o
nadużyciu, zajrzyj do <a
-href="<wiki>TheOnionRouter/TorAbuseTemplates">kolekcji szablonów na wiki
+href="<wiki>doc/TorAbuseTemplates">kolekcji szablonów na wiki
Tora</a>. Możesz także zapobiegawczo zmniejszyć liczbę nadużyć, kierując się
<a href="<blog>tips-running-exit-node-minimal-harassment">tymi wskazówkami o
prowadzeniu węzła wyjściowego z minimalnym narażeniem</a>.</p>
@@ -279,7 +279,7 @@
<p>Ostatecznie, jeśli odkryjesz sieć IRC, która zdaje się blokować Tora lub
jeden z jego punktów wyjścia, podaj tę informację na <a
-href="<wiki>TheOnionRouter/BlockingIrc">stronie śledzenia blokad Tora przez
+href="<wiki>doc/BlockingIrc">stronie śledzenia blokad Tora przez
IRC</a>, żeby podzielić się tym z innymi. Co najmniej jedna sieć IRC
sprawdza tę stronę, żeby odblokowywać punkty wyjścia, które zostały
niesłusznie zablokowane. </p>
Modified: website/trunk/docs/pl/faq.wml
===================================================================
--- website/trunk/docs/pl/faq.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/faq.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -220,9 +220,9 @@
Jest wiele innych programów, których można używać z Torem, ale nie
zbadaliśmy problemów anonimowości poziomu aplikacji w tych programach dość
dobrze, by móc polecić bezpieczną konfigurację. Nasze wiki ma listę
-instrukcji <a href="<wiki>TheOnionRouter/TorifyHOWTO">toryfikacji
+instrukcji <a href="<wiki>doc/TorifyHOWTO">toryfikacji
poszczególnych aplikacji</a>. Jest też <a
-href="<wiki>TheOnionRouter/SupportPrograms">lista aplikacji pomagających w
+href="<wiki>doc/SupportPrograms">lista aplikacji pomagających w
przekierowaniu ruchu sieciowego przez Tora</a>. Prosimy o dodawanie wpisów
do tej listy i pomaganie nam w utrzymaniu jej w zgodności ze stanem
faktycznym!
@@ -422,7 +422,7 @@
<li>
Jest kilka kroków, które każdy może podjąć, by polepszyć wydajność Tora. <a
-href="<wiki>TheOnionRouter/FireFoxTorPerf">Możesz skonfigurować Firefoksa,
+href="<wiki>doc/FireFoxTorPerf">Możesz skonfigurować Firefoksa,
by lepiej radził sobie z Torem</a>, <a
href="http://www.pps.jussieu.fr/~jch/software/polipo/tor.html">możesz używać
Polipo z Torem</a>, lub spróbować <a href="<page
@@ -1646,7 +1646,7 @@
<p>
Zbiór szablonów odpowiedzi dla ISPs został <a
-href="<wiki>TheOnionRouter/TorAbuseTemplates">zebrany tutaj</a>.
+href="<wiki>doc/TorAbuseTemplates">zebrany tutaj</a>.
</p>
<hr>
Modified: website/trunk/docs/pl/tor-doc-osx.wml
===================================================================
--- website/trunk/docs/pl/tor-doc-osx.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/tor-doc-osx.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -97,7 +97,7 @@
href="http://www.dest-unreach.org/socat/">socat</a>.</p>
<p>Po informacje, jak "storyfikować" inne aplikacje, spójrz na <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>.
+href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/pl/tor-doc-relay.wml
===================================================================
--- website/trunk/docs/pl/tor-doc-relay.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/tor-doc-relay.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -178,7 +178,7 @@
</p>
<p>
- 6. Przeczytaj <a href="<wiki>TheOnionRouter/OperationalSecurity">o
+ 6. Przeczytaj <a href="<wiki>doc/OperationalSecurity">o
zabezpieczaniu działania</a>, by dowiedzieć się, jak możesz podnieść
bezpieczeństwo swojego przekaźnika.
</p>
@@ -254,7 +254,7 @@
jest nie uruchamiać go jako root. Uruchamianie jako użytkownik 'tor' unika
problemów z identd i innymi usługami, które sprawdzają nazwę
użytkownika. Jeśli jesteś paranoikiem, możesz śmiało <a
-href="<wiki>/TheOnionRouter/TorInChroot">umieścić Tora w chrootowanym
+href="<wiki>doc/TorInChroot">umieścić Tora w chrootowanym
środowisku</a>.)
</p>
Modified: website/trunk/docs/pl/tor-doc-unix.wml
===================================================================
--- website/trunk/docs/pl/tor-doc-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/tor-doc-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -82,7 +82,7 @@
</p>
<p>Jeśli wolisz, możesz używać Privoxy z <a
-href="<wiki>TheOnionRouter/PrivoxyConfig">tą przykładową konfiguracją
+href="<wiki>doc/PrivoxyConfig">tą przykładową konfiguracją
Privoxy</a>. Ale jako że oba pliki konfiguracyjne używają portu 8118, nie
powinieneś/aś używać Polipo i Privoxy jednocześnie.</p>
@@ -116,11 +116,11 @@
href="<wikifaq>#SOCKSAndDNS">ten wpis do FAQ</a>, dlaczego to może być
niebezpieczne. Jeśli aplikacja nie obsługuje ani proxy dla HTTP, ani dla
SOCKS, spójrz na <a href="http://tsocks.sourceforge.net/">tsocks</a> lub <a
-href="<wiki>TheOnionRouter/TorifyHOWTO#socat">socat</a>.
+href="<wiki>doc/TorifyHOWTO#socat">socat</a>.
</p>
<p>Po informacje, jak "storyfikować" inne aplikacje, spójrz na <a
-href="<wiki>TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>.
+href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/docs/pl/tor-doc-windows.wml
===================================================================
--- website/trunk/docs/pl/tor-doc-windows.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/docs/pl/tor-doc-windows.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -106,7 +106,7 @@
oprogramowaniem; SocksCap nie.)</p>
<p>Po informacje, jak "storyfikować" inne aplikacje, spójrz na <a
-href="<wiki>/TheOnionRouter/TorifyHOWTO">Torify HOWTO</a>.
+href="<wiki>doc/TorifyHOWTO">Torify HOWTO</a>.
</p>
<hr> <a id="verify"></a>
Modified: website/trunk/download/en/download-unix.wml
===================================================================
--- website/trunk/download/en/download-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/download/en/download-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -62,7 +62,7 @@
<td colspan="2"><kbd>cd /usr/ports/net/tor && make && make install</kbd></td>
<td>
<a href="<page docs/tor-doc-unix>">Linux/BSD/Unix</a><br>
-<a href="<wiki>/TheOnionRouter/OpenbsdChrootedTor">Guide to chrooting Tor in OpenBSD</a>
+<a href="<wiki>doc/OpenbsdChrootedTor">Guide to chrooting Tor in OpenBSD</a>
</td>
</tr>
Modified: website/trunk/download/pl/download-unix.wml
===================================================================
--- website/trunk/download/pl/download-unix.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/download/pl/download-unix.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -76,7 +76,7 @@
<td colspan="2"><kbd>cd /usr/ports/net/tor && make && make install</kbd></td>
<td>
<a href="<page docs/tor-doc-unix>">Linux/BSD/Unix</a><br> <a
-href="<wiki>/TheOnionRouter/OpenbsdChrootedTor">Przewodnik chrootowania Tora
+href="<wiki>doc/OpenbsdChrootedTor">Przewodnik chrootowania Tora
w OpenBSD</a>
</td>
</tr>
Modified: website/trunk/getinvolved/en/tshirt.wml
===================================================================
--- website/trunk/getinvolved/en/tshirt.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/getinvolved/en/tshirt.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -25,7 +25,7 @@
not an exit but you average 500 KB/s traffic.</li>
<li>Help out in <a href="<page getinvolved/volunteer>">other ways</a>. <a href="<page
getinvolved/translation>">Maintain a translation for the website</a>. Write a good <a
- href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/SupportPrograms">support
+ href="<wiki>doc/SupportPrograms">support
program and get a lot of people to use it</a>. Do research on Tor
and anonymity, solve some of <a href="https://bugs.torproject.org/">our
bugs</a>, or establish yourself as a Tor advocate.
@@ -42,7 +42,7 @@
<p>
You can choose between the traditional black and our conversation-starting
bright green. You can also see the shirts
- <a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorShirt">in
+ <a href="<wiki>doc/TorShirt">in
action</a> — add your own photos there too.
</p>
Modified: website/trunk/getinvolved/en/volunteer.wml
===================================================================
--- website/trunk/getinvolved/en/volunteer.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/getinvolved/en/volunteer.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -35,10 +35,10 @@
guidelines</a> if you want to help out. We especially need Arabic or
Farsi translations, for the many Tor users in censored areas.</li>
<li>Evaluate and document
- <a href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorifyHOWTO">our
+ <a href="<wiki>doc/TorifyHOWTO">our
list of programs</a> that can be configured to use Tor.</li>
<li>We have a huge list of <a
- href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/SupportPrograms">potentially useful
+ href="<wiki>doc/SupportPrograms">potentially useful
programs that interface to Tor</a>. Which ones are useful in which
situations? Please help us test them out and document your results.</li>
</ol>
@@ -340,7 +340,7 @@
<a id="project-torouter"></a>
<h3><a
- href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/Torouter">Torouter</a> (<a
+ href="<wiki>doc/Torouter">Torouter</a> (<a
href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assig…">bug
tracker</a>)</h3>
@@ -1222,7 +1222,7 @@
Windows, Tor uses the standard <tt>select()</tt> system
call, which uses space in the non-page pool. This means
that a medium sized Tor relay will empty the non-page pool, <a
- href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/WindowsBufferP…">causing
+ href="<wiki>doc/WindowsBufferProblems">causing
havoc and system crashes</a>. We should probably be using overlapped IO
instead. One solution would be to teach <a
href="http://www.monkey.org/~provos/libevent/">libevent</a> how to use
Modified: website/trunk/getinvolved/pl/tshirt.wml
===================================================================
--- website/trunk/getinvolved/pl/tshirt.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/getinvolved/pl/tshirt.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -31,7 +31,7 @@
<li>Pomaganie na <a href="<page getinvolved/volunteer>">inne sposoby</a>. <a
href="<page getinvolved/translation>">Prowadzenie tłumaczenia strony
Tora</a>. Napisanie dobrego <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/SupportPrograms">programu
+href="<wiki>doc/SupportPrograms">programu
wspierajacego, którego używałoby wielu ludzi</a>. Przeprowadzenie badań nad
Torem i anonimowością, usunięcie paru <a
href="https://bugs.torproject.org/">naszych błędów</a> lub rozgłaszanie
@@ -49,7 +49,7 @@
<p>
Możesz wybrać między tradycyjnym czarnym a zachęcającym do rozmowy
jasnozielonym kolorem. Możesz także zobaczyć koszulki <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorShirt">w
+href="<wiki>doc/TorShirt">w
akcji</a> — dodaj tu także swoje zdjęcia.
</p>
Modified: website/trunk/getinvolved/pl/volunteer.wml
===================================================================
--- website/trunk/getinvolved/pl/volunteer.wml 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/getinvolved/pl/volunteer.wml 2011-06-11 18:55:49 UTC (rev 24819)
@@ -44,10 +44,10 @@
chcesz pomóc. Potrzebujemy zwłaszcza tłumaczy na język arabski i Farsi dla
wielu użytkowników Tora w cenzorowanych obszarach.</li>
<li>Przejrzyj i udokumentuj <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorifyHOWTO">naszą
+href="<wiki>doc/TorifyHOWTO">naszą
listę programów</a>, które można skonfigurować do pracy z Torem.</li>
<li>Mamy ogromną listę <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/SupportPrograms">potencjalnie
+href="<wiki>doc/SupportPrograms">potencjalnie
użytecznych programów, które współpracują z Torem</a>. Które z nich są
przydatne w jakich sytuacjach? Prosimy pomóż nam je testować i zapisuj swoje
wyniki.</li>
@@ -339,7 +339,7 @@
</p>
<a id="project-torouter"></a>
- <h3>href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/Torouter">Torouter</a>
+ <h3><a href="<wiki>doc/Torouter">Torouter</a>
(<a
href="https://trac.torproject.org/projects/tor/query?status=accepted&status=assig…">śledzenie
błędów</a>)</h3>
@@ -1140,7 +1140,7 @@
Windows Tor używa standardowej funkcji systemowej <tt>select()</tt>, która
zużywa miejsce w niestronicowanym obszarze pamięci. Znaczy to, że średnich
rozmiarów przekaźnik sieci Tora zapełni dostępną przestrzeń, <a
-href="https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/WindowsBufferP…">będąc
+href="<wiki>doc/WindowsBufferProblems">będąc
przyczyną dziwnych zachowań i padów systemu</a>. Powinniśmy raczej używać
nakładającego IO. Jednym z rozwiązań byłoby nauczenie biblioteki <a
href="http://www.monkey.org/~provos/libevent/">libevent</a>, jak używać
Modified: website/trunk/include/links.wmi
===================================================================
--- website/trunk/include/links.wmi 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/include/links.wmi 2011-06-11 18:55:49 UTC (rev 24819)
@@ -7,7 +7,7 @@
<define-tag svnwebsite whitespace=delete>https://svn.torproject.org/svn/website/trunk/</define-tag>
<define-tag svnprojects whitespace=delete>https://svn.torproject.org/svn/projects/</define-tag>
<define-tag wiki whitespace=delete>https://trac.torproject.org/projects/tor/wiki/</define-tag>
-<define-tag wikifaq whitespace=delete>https://trac.torproject.org/projects/tor/wiki/TheOnionRouter/TorFAQ</define-tag>
+<define-tag wikifaq whitespace=delete>https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ</define-tag>
<define-tag blog whitespace=delete>https://blog.torproject.org/blog/</define-tag>
<define-tag tbbrepo whitespace=delete>https://gitweb.torproject.org/torbrowser.git/blob_plain/HEAD:</define-tag>
<define-tag specblob whitespace=delete>https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=</define-tag>
Modified: website/trunk/manpages/ar/tor.1.txt
===================================================================
--- website/trunk/manpages/ar/tor.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/ar/tor.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -48,7 +48,7 @@
**--nt-service**::
**--service [install|remove|start|stop]** تدير خدمة Windows
NT/2000/XP لتور. التعليمات الحالية يمكن إيجادها في
- https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#WinNTService
+ https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ#WinNTService
**--list-torrc-options**::
إدراج جميع الخيارات الصالحة.
Modified: website/trunk/manpages/ar/torify.1.txt
===================================================================
--- website/trunk/manpages/ar/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/ar/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -36,7 +36,7 @@
عمليات بحث اسم المستضيف التي لا تزال يتم توجيهها عبر محلّل النظام العادي
الخاص بك الى حل اسماء الخوادم العاديين الخاصون بك. ان أداة **تور-ريسولف**(1)
يمكن ان تكون مفيدة كحل في بعض الحالات. الاسئلة المتداولة (FAQ) لتور في
-https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ يمكن ان تحتوي على
+https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ يمكن ان تحتوي على
مزيد من المعلومات حول هذا الموضوع. +
عند الاستخدام مع تورسكس (torsocks), يجب ان لا يقوم توريفاي (torify) بتسريب
Modified: website/trunk/manpages/es/torify.1.txt
===================================================================
--- website/trunk/manpages/es/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/es/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -37,7 +37,7 @@
aún se enrutan a través de su programa de resolución normal del sistema al
teléfono de servidores de nombres habituales resolver. ** El tor-resolver **
(1) herramienta puede ser útil como una solución en algunos casos. El Tor
-FAQ en la página https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ
+FAQ en la página https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ
pueda disponer de información adicional sobre este tema. +
Cuando se utiliza con torsocks, las solicitudes DNS torify no presente fugas
Modified: website/trunk/manpages/fr/tor.1.txt
===================================================================
--- website/trunk/manpages/fr/tor.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/fr/tor.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -50,7 +50,7 @@
**--nt-service**::
**--service [install|remove|start|stop]** Gestion du service Tor
sur Windows NT/2000/XP. Vous trouverez davantage d'instructions sur
- https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#WinNTService
+ https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ#WinNTService
**--list-torrc-options**::
Enumerer les options valides.
Modified: website/trunk/manpages/fr/torify.1.txt
===================================================================
--- website/trunk/manpages/fr/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/fr/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -35,7 +35,7 @@
requêtes de nom d'hôte qui seront toujours routées par la voie normale de
votre système jusqu'à ce qu'elles soient résolues. L'outil
**tor-resolve**(1) peut s'avérer utile dans de tels cas. La FAQ Tor sur
-https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ dispose de plus
+https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ dispose de plus
d'informations sur ce sujet. +
Lorsque l'application torify est utilisée avec torsocks, il n'y aura pas de
Modified: website/trunk/manpages/it/torify.1.txt
===================================================================
--- website/trunk/manpages/it/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/it/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -37,7 +37,7 @@
proprio sistema di risoluzione sui propri servernomi di risoluzione. Lo
strumento **tors-reosolve**(1) può essere un'utile soluzione altrernativa in
alcuni casi. Le FAQ Tor al sito
-https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ possono fornire
+https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ possono fornire
ulteriori informazioni su questo argomento. +
Quando utilizzato con torsocks, torify potrebbe non divulgare le richieste
Modified: website/trunk/manpages/my/tor.1.txt
===================================================================
--- website/trunk/manpages/my/tor.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/my/tor.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -56,7 +56,7 @@
**--nt-service**::
**--service [install|remove|start|stop]** tor ၏ ဝင္းဒိုးကို စီမံသည္
NT/2000/XP service. လက္ရွိအသံုးျပဳရန္ညႊန္ၾကားခ်က္မ်ားကို ဒီမွာေတြ႔ႏိုင္သည္
- https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#WinNTService
+ https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ#WinNTService
**--list-torrc-options**::
ရႏိုင္သည့္ေရြးခ်ယ္မႈတိုင္းကို ျပသည္
Modified: website/trunk/manpages/my/torify.1.txt
===================================================================
--- website/trunk/manpages/my/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/my/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -36,7 +36,7 @@
ပံုမွန္လုပ္ေဆာင္ခ်က္မ်ားအတိုင္း route လုပ္ေနဆဲျဖစ္ေသာ hostname
ရွာျခင္းမပါသည့္ အေျခအေနမ်ားတြင္သာ ျဖစ္သည္ကို သတိျပဳပါ။ **tor-resolve**(1)
သည္ အခ်ိဳ႕ကိစၥမ်ားအတြက္ ေျဖရွင္းေပးႏိုင္သည္။အေသးစိတ္သိလိုပါက
-https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ ရွိ tor FAQ
+https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ ရွိ tor FAQ
မ်ားတြင္ ၾကည့္ႏိုင္ပါသည္။
torsocks ျဖင့္အသံုးျပဳေနခ်ိန္တြင္ DNS requests သို႔မဟုတ္ UDP data မ်ားကို
Modified: website/trunk/manpages/pl/torify.1.txt
===================================================================
--- website/trunk/manpages/pl/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/pl/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -37,7 +37,7 @@
mechanizm rozwiązywania nazw do Twoich zwyczajnych serwerów nazw. Narzędzie
**tor-resolve**(1) może w niektórych przypadkach posłużyć jako obejście tego
problemu. FAQ Tora pod adresem
-https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ może mieć więcej
+https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ może mieć więcej
informacji na ten temat. +
Gdy używa się go z torsocks, z torify nie powinny wyciekać żądania DNS lub
Modified: website/trunk/manpages/ru/torify.1.txt
===================================================================
--- website/trunk/manpages/ru/torify.1.txt 2011-06-10 09:52:32 UTC (rev 24818)
+++ website/trunk/manpages/ru/torify.1.txt 2011-06-11 18:55:49 UTC (rev 24819)
@@ -38,7 +38,7 @@
маршрутизировались через вашу обычную систему преобразования к вашим обычным
серверам преобразования имен. Инструмент **tor-resolve**(1) может оказаться
полезным в некоторых случаях. Список часто задаваемых вопросов Tor (FAQ),
-доступный здесь https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ,
+доступный здесь https://trac.torproject.org/projects/tor/wiki/doc/TorFAQ,
может содержать более детальную ифнормацию об этом. +
При использовании с torsocks, torify не должен допускать DNS утечки или
1
0
commit 147a34c11d54b7b4470c8d65448cb38d5c3bbf2b
Author: David Fifield <david(a)bamsoftware.com>
Date: Sat Jun 11 09:48:21 2011 -0700
Rearrange Makefile.
---
Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 72f5162..6c11397 100644
--- a/Makefile
+++ b/Makefile
@@ -4,10 +4,10 @@ TARGETS = swfcat.swf
all: $(TARGETS)
+swfcat.swf: *.as badge.png
+
%.swf: %.as
$(MXMLC) -output $@ -static-link-runtime-shared-libraries -define=RTMFP::CIRRUS_KEY,\"$(CIRRUS_KEY)\" $<
-swfcat.swf: *.as badge.png
-
clean:
rm -f $(TARGETS)
1
0
commit 4914ab8f0d65f577dd41e64d0cb105b84e50acb0
Author: David Fifield <david(a)bamsoftware.com>
Date: Sat Jun 11 09:47:50 2011 -0700
rm return_of_the_rtmfpcat.as.
---
return_of_the_rtmfpcat.as | 794 ---------------------------------------------
1 files changed, 0 insertions(+), 794 deletions(-)
diff --git a/return_of_the_rtmfpcat.as b/return_of_the_rtmfpcat.as
deleted file mode 100644
index 7095c09..0000000
--- a/return_of_the_rtmfpcat.as
+++ /dev/null
@@ -1,794 +0,0 @@
-/* Meow! */
-package
-{
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.text.TextField;
- import flash.text.TextFormat;
- import flash.net.Socket;
- import flash.events.Event;
- import flash.events.EventDispatcher;
- import flash.events.IOErrorEvent;
- import flash.events.NetStatusEvent;
- import flash.events.ProgressEvent;
- import flash.events.SecurityErrorEvent;
- import flash.utils.ByteArray;
- import flash.utils.clearTimeout;
- import flash.utils.setTimeout;
- import flash.utils.clearInterval;
- import flash.utils.setInterval;
- import flash.utils.setTimeout;
- import flash.net.NetConnection;
-
- public class return_of_the_rtmfpcat extends Sprite
- {
- /* David's relay (nickname 3VXRyxz67OeRoqHn) that also serves a
- crossdomain policy. */
- private const DEFAULT_TOR_PROXY_ADDR:Object = {
- host: "173.255.221.44",
- port: 9001
- };
-
- /* Tor application running on the client. */
- private const DEFAULT_TOR_CLIENT_ADDR:Object = {
- host: "127.0.0.1",
- port: 3333
- };
-
- /* Nate's facilitator -- also serving a crossdomain policy */
- //private const DEFAULT_FACILITATOR_ADDR:Object = {
- // host: "128.12.179.80",
- // port: 9002
- //};
-
- /* David's facilitator. */
- private const DEFAULT_FACILITATOR_ADDR:Object = {
- host: "127.0.0.1",
- port: 9002
- };
-
- /* Cirrus server information. */
- private const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
- private const DEFAULT_CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
-
- private static const DEFAULT_CIRCON_TIMEOUT:uint = 4000;
-
- private static const DEFAULT_PEER_CON_TIMEOUT:uint = 4000;
-
- /* Maximum connections. */
- private const DEFAULT_MAXIMUM_RCP_PAIRS:uint = 1;
-
- /* Milliseconds. */
- private const FACILITATOR_POLL_INTERVAL:int = 10000;
-
- private var max_rcp_pairs:uint;
-
- /* TextField for debug output. */
- private var output_text:TextField;
-
- /* Are we the proxy or the client? */
- private var proxy_mode:Boolean;
-
- /* Facilitator address */
- private var fac_addr:Object;
-
- /* Tor address. If we're a proxy, then this address is a relay.
- * If we're running on the client, then this address is the Tor
- * client application. */
- private var tor_addr:Object;
-
- /* Cirrus address */
- private var cir_addr:String;
-
- /* Cirrus key */
- private var cir_key:String;
-
- /* Connection to the Cirrus rendezvous service */
- private var circon:NetConnection;
-
- /* Cirrus connection timeout ID. */
- private var circon_timeo_id:int;
-
- /* Number of connected RTMFPConnectionPairs. */
- private var rcp_pairs:uint;
- private var rcp_pairs_total:uint;
-
- private var rtmfp_data_counter:uint;
-
- /* Keep track of facilitator polling timer. */
- private var fac_poll_timeo_id:uint;
-
- /* Badge with a client counter */
- [Embed(source="badge.png")]
- private var BadgeImage:Class;
- private var tot_client_count_tf:TextField;
- private var tot_client_count_fmt:TextFormat;
- private var cur_client_count_tf:TextField;
- private var cur_client_count_fmt:TextFormat;
-
- /* Put a string to the screen. */
- public function puts(s:String):void
- {
- output_text.appendText(s + "\n");
- output_text.scrollV = output_text.maxScrollV;
- }
-
- public function update_client_count():void
- {
- /* Update total client count. */
- if (String(rcp_pairs_total).length == 1)
- tot_client_count_tf.text = "0" + String(rcp_pairs_total);
- else
- tot_client_count_tf.text = String(rcp_pairs_total);
-
- /* Update current client count. */
- cur_client_count_tf.text = "";
- for(var i:Number=0; i<rcp_pairs; i++)
- cur_client_count_tf.appendText(".");;
- }
-
- public function return_of_the_rtmfpcat()
- {
- // Absolute positioning.
- stage.scaleMode = StageScaleMode.NO_SCALE;
- stage.align = StageAlign.TOP_LEFT;
-
- output_text = new TextField();
- output_text.width = stage.stageWidth;
- output_text.height = stage.stageHeight;
- output_text.background = true;
- output_text.backgroundColor = 0x001f0f;
- output_text.textColor = 0x44cc44;
-
- /* Setup client counter for badge. */
- tot_client_count_fmt = new TextFormat();
- tot_client_count_fmt.color = 0xFFFFFF;
- tot_client_count_fmt.align = "center";
- tot_client_count_fmt.font = "courier-new";
- tot_client_count_fmt.bold = true;
- tot_client_count_fmt.size = 10;
- tot_client_count_tf = new TextField();
- tot_client_count_tf.width = 20;
- tot_client_count_tf.height = 17;
- tot_client_count_tf.background = false;
- tot_client_count_tf.defaultTextFormat = tot_client_count_fmt;
- tot_client_count_tf.x=47;
- tot_client_count_tf.y=0;
-
- cur_client_count_fmt = new TextFormat();
- cur_client_count_fmt.color = 0xFFFFFF;
- cur_client_count_fmt.align = "center";
- cur_client_count_fmt.font = "courier-new";
- cur_client_count_fmt.bold = true;
- cur_client_count_fmt.size = 10;
- cur_client_count_tf = new TextField();
- cur_client_count_tf.width = 20;
- cur_client_count_tf.height = 17;
- cur_client_count_tf.background = false;
- cur_client_count_tf.defaultTextFormat = cur_client_count_fmt;
- cur_client_count_tf.x=47;
- cur_client_count_tf.y=6;
-
- /* Update the client counter on badge. */
- update_client_count();
-
- /* Initialize connection pair count. */
- rcp_pairs = 0;
-
- /* Unique counter for RTMFP data publishing. */
- rtmfp_data_counter = 0;
-
- puts("Meow!");
- puts("Starting.");
- // Wait until the query string parameters are loaded.
- this.loaderInfo.addEventListener(Event.COMPLETE, loaderinfo_complete);
- }
-
- private function loaderinfo_complete(e:Event):void
- {
- var fac_spec:String;
- var tor_spec:String;
-
- puts("Parameters loaded.");
-
- proxy_mode = (this.loaderInfo.parameters["proxy"] != null);
-
- if(this.loaderInfo.parameters["debug"] != null)
- addChild(output_text);
-
- addChild(new BadgeImage());
- /* Tried unsuccessfully to add counter to badge. */
- /* For now, need two addChilds :( */
- addChild(tot_client_count_tf);
- addChild(cur_client_count_tf);
-
-
- fac_spec = this.loaderInfo.parameters["facilitator"];
- if (fac_spec) {
- puts("Facilitator spec: \"" + fac_spec + "\"");
- fac_addr = parse_addr_spec(fac_spec);
- if (!fac_addr) {
- puts("Error: Facilitator spec must be in the form \"host:port\".");
- return;
- }
- } else {
- fac_addr = DEFAULT_FACILITATOR_ADDR;
- }
-
- tor_spec = this.loaderInfo.parameters["tor"];
- if (tor_spec) {
- puts("Tor spec: \"" + tor_spec + "\"");
- tor_addr = parse_addr_spec(tor_spec);
- if (!tor_addr) {
- puts("Error: Tor spec must be in the form \"host:port\".");
- return;
- }
- } else {
- if (proxy_mode)
- tor_addr = DEFAULT_TOR_PROXY_ADDR;
- else
- tor_addr = DEFAULT_TOR_CLIENT_ADDR;
- }
-
- if(this.loaderInfo.parameters["cirrus_server"])
- cir_addr = this.loaderInfo.parameters["cirrus_server"];
- else
- cir_addr = DEFAULT_CIRRUS_ADDRESS;
-
- if(this.loaderInfo.parameters["cirrus_key"])
- cir_key = this.loaderInfo.parameters["cirrus_key"];
- else
- cir_key = DEFAULT_CIRRUS_KEY;
-
- if(this.loaderInfo.parameters["max_con"])
- max_rcp_pairs = this.loaderInfo.parameters["max_con"];
- else
- max_rcp_pairs = DEFAULT_MAXIMUM_RCP_PAIRS;
-
- if(this.loaderInfo.parameters["start"])
- rtmfp_data_counter = this.loaderInfo.parameters["start"];
-
- main();
- }
-
- /* The main logic begins here, after start-up issues are taken care of. */
- private function main():void
- {
- puts("Making connection to cirrus server.");
- circon = new NetConnection();
- circon.addEventListener(NetStatusEvent.NET_STATUS, circon_netstatus_event);
- circon.addEventListener(IOErrorEvent.IO_ERROR, function (e:Event):void {
- puts("Cirrus connection had an IOErrorEvent.IO_ERROR event");
- });
- circon.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:Event):void {
- puts("Cirrus connection had a SecurityErrorEvent.SECURITY_ERROR");
- });
- circon.connect(cir_addr + "/" + cir_key);
- circon_timeo_id = setInterval(circon_timeout, DEFAULT_CIRCON_TIMEOUT);
- }
-
- private function circon_netstatus_event(event:NetStatusEvent):void
- {
- switch (event.info.code) {
- case "NetConnection.Connect.Success" :
- puts("Cirrus server connection established.");
- puts("Got id " + circon.nearID + ".");
- clearInterval(circon_timeo_id);
-
- if(proxy_mode) {
- poll_for_id();
- } else {
- puts("Setting up listening RTMFPConnectionPair");
- var rcp:RTMFPConnectionPair = new RTMFPConnectionPair(circon, tor_addr, output_text);
- rcp.addEventListener(Event.CONNECT, rcp_connect_event);
- rcp.addEventListener(Event.CLOSE, rcp_close_event);
- rcp.listen(String(rtmfp_data_counter));
-
- var reg_str:String = circon.nearID + ":" + String(rtmfp_data_counter);
- puts("Registering " + reg_str + " with facilitator");
- register_id(reg_str, fac_addr);
- rtmfp_data_counter++;
- }
-
- break;
- }
- }
-
- private function poll_for_id():void
- {
- puts("Facilitator: got " + rcp_pairs + " connections... polling for another");
-
- var s_f:Socket = new Socket();
- s_f.addEventListener(Event.CONNECT, function (e:Event):void {
- puts("Facilitator: connected to " + fac_addr.host + ":" + fac_addr.port + ".");
- s_f.writeUTFBytes("GET / HTTP/1.0\r\n\r\n");
- });
- s_f.addEventListener(Event.CLOSE, function (e:Event):void {
- puts("Facilitator: connection closed.");
- });
- s_f.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
- puts("Facilitator: I/O error: " + e.text + ".");
- });
- s_f.addEventListener(ProgressEvent.SOCKET_DATA, function (e:ProgressEvent):void {
- var client:String = s_f.readMultiByte(e.bytesLoaded, "utf-8");
- puts("Facilitator: got \"" + client + "\"");
- if (client != "Registration list empty") {
- puts("Connecting to " + client + ".");
-
- var client_id:String = client.split(":")[0];
- var client_data:String = client.split(":")[1];
-
- clearTimeout(fac_poll_timeo_id);
-
- var rcp:RTMFPConnectionPair = new RTMFPConnectionPair(circon, tor_addr, output_text);
- rcp.addEventListener(Event.CONNECT, rcp_connect_event);
- rcp.addEventListener(Event.UNLOAD, function (e:Event):void {
- /* Failed to connect to peer... continue loop. */
- puts("RTMFPConnectionPair: Timed out connecting to peer!");
- if(rcp_pairs < max_rcp_pairs)
- poll_for_id();
- });
- rcp.addEventListener(Event.CLOSE, rcp_close_event);
- rcp.connect(client_id, client_data, DEFAULT_PEER_CON_TIMEOUT);
- } else {
- /* Need to clear any outstanding timers to ensure
- * that only one timer ever runs. */
- clearTimeout(fac_poll_timeo_id);
- if(rcp_pairs < max_rcp_pairs)
- fac_poll_timeo_id = setTimeout(poll_for_id, FACILITATOR_POLL_INTERVAL);
- }
- });
- s_f.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:SecurityErrorEvent):void {
- puts("Facilitator: security error: " + e.text + ".");
- });
-
- s_f.connect(fac_addr.host, fac_addr.port);
-
- }
-
- private function rcp_connect_event(e:Event):void
- {
- puts("RTMFPConnectionPair connected");
-
- rcp_pairs++;
- rcp_pairs_total++;
-
- /* Update the client count on the badge. */
- update_client_count();
-
- if(proxy_mode) {
- if(rcp_pairs < max_rcp_pairs) {
- poll_for_id();
- }
- } else {
- /* Setup listening RTMFPConnectionPair. */
- if(rcp_pairs < max_rcp_pairs) {
- puts("Setting up listening RTMFPConnectionPair");
- var rcp:RTMFPConnectionPair = new RTMFPConnectionPair(circon, tor_addr, output_text);
- rcp.addEventListener(Event.CONNECT, rcp_connect_event);
- rcp.addEventListener(Event.CLOSE, rcp_close_event);
- rcp.listen(String(rtmfp_data_counter));
- var reg_str:String = circon.nearID + ":" + String(rtmfp_data_counter);
- puts("Registering " + reg_str + " with facilitator");
- register_id(reg_str, fac_addr);
- rtmfp_data_counter++;
- }
- }
- }
-
- private function rcp_close_event(e:Event):void
- {
- puts("RTMFPConnectionPair closed");
-
- rcp_pairs--;
-
- /* Update the client count on the badge. */
- update_client_count();
-
- /* FIXME: Do I need to unregister the event listeners so
- * that the system can garbage collect the rcp object? */
- if(proxy_mode) {
- if(rcp_pairs < max_rcp_pairs) {
- poll_for_id();
- }
- } else {
- if(rcp_pairs < max_rcp_pairs) {
- puts("Setting up listening RTMFPConnectionPair");
- var rcp:RTMFPConnectionPair = new RTMFPConnectionPair(circon, tor_addr, output_text);
- rcp.addEventListener(Event.CONNECT, rcp_connect_event);
- rcp.addEventListener(Event.CLOSE, rcp_close_event);
- rcp.listen(String(rtmfp_data_counter));
- var reg_str:String = circon.nearID + ":" + String(rtmfp_data_counter);
- puts("Registering " + reg_str + " with facilitator");
- register_id(reg_str, fac_addr);
- rtmfp_data_counter++;
- }
- }
- }
-
- private function register_id(id:String, fac_addr:Object):void
- {
- var s_f:Socket = new Socket();
- s_f.addEventListener(Event.CONNECT, function (e:Event):void {
- puts("Facilitator: connected to " + fac_addr.host + ":" + fac_addr.port + ".");
- puts("Facilitator: Registering id " + id);
- s_f.writeUTFBytes("POST / HTTP/1.0\r\n\r\nclient=" + id + "\r\n");
- });
- s_f.addEventListener(Event.CLOSE, function (e:Event):void {
- puts("Facilitator: connection closed.");
- });
- s_f.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
- puts("Facilitator: I/O error: " + e.text + ".");
- });
- s_f.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:SecurityErrorEvent):void {
- puts("Facilitator: security error: " + e.text + ".");
- });
-
- s_f.connect(fac_addr.host, fac_addr.port);
- }
-
- private function circon_timeout():void
- {
- puts("Cirrus server connection timed out!");
- }
-
- /* Parse an address in the form "host:port". Returns an Object with
- keys "host" (String) and "port" (int). Returns null on error. */
- private static function parse_addr_spec(spec:String):Object
- {
- var parts:Array;
- var addr:Object;
-
- parts = spec.split(":", 2);
- if (parts.length != 2 || !parseInt(parts[1]))
- return null;
- addr = {}
- addr.host = parts[0];
- addr.port = parseInt(parts[1]);
-
- return addr;
- }
- }
-}
-
-import flash.display.Sprite;
-import flash.events.Event;
-import flash.events.EventDispatcher;
-import flash.events.IOErrorEvent;
-import flash.events.ProgressEvent;
-import flash.events.SecurityErrorEvent;
-import flash.events.NetStatusEvent;
-import flash.net.Socket;
-import flash.utils.ByteArray;
-import flash.utils.clearTimeout;
-import flash.utils.getTimer;
-import flash.utils.setTimeout;
-import flash.net.NetConnection;
-import flash.net.NetStream;
-import flash.text.TextField;
-
-class RTMFPSocket extends EventDispatcher
-{
- /* The name of the "media" to pass between peers. */
- private var data:String;
-
- /* Connection to the Cirrus rendezvous service.
- * RTMFPSocket is established using this service. */
- private var circon:NetConnection;
-
- /* Unidirectional streams composing socket. */
- private var send_stream:NetStream;
- private var recv_stream:NetStream;
-
- /* Keeps the state of our connectedness. */
- public var connected:Boolean;
-
- private var connect_timeo_id:uint;
-
- private var output_text:TextField;
-
- /* Put a string to the screen. */
- public function puts(s:String):void
- {
- output_text.appendText(s + "\n");
- output_text.scrollV = output_text.maxScrollV;
- }
-
- public function RTMFPSocket(circon:NetConnection, output_text:TextField)
- {
- this.circon = circon;
- this.output_text = output_text;
- connected = false;
-
- circon.addEventListener(NetStatusEvent.NET_STATUS, circon_netstatus_event);
- circon.addEventListener(IOErrorEvent.IO_ERROR, function (e:Event):void {
- puts("RTMFPSocket: Cirrus connection had an IOErrorEvent.IO_ERROR event");
- });
- circon.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:Event):void {
- puts("RTMFPSocket: Cirrus connection had a SecurityErrorEvent.SECURITY_ERROR");
- });
- }
-
- public function listen(data:String):void
- {
- this.data = data;
-
- send_stream = new NetStream(circon, NetStream.DIRECT_CONNECTIONS);
- var client:Object = new Object();
- client.onPeerConnect = send_stream_peer_connect;
- send_stream.client = client;
- send_stream.publish(data);
- }
-
- private function connect_timeout():void
- {
- puts("RTMFPSocket: Timed out connecting to peer");
- close();
- /* OK this is not so nice, because I wanted an Event.TIMEOUT event, but flash gives us none such event :( */
- dispatchEvent(new Event(Event.UNLOAD));
- }
-
- public function connect(clientID:String, data:String, timeout:uint):void
- {
- puts("RTMFPSocket: connecting to peer...");
-
- connect_timeo_id = setTimeout(connect_timeout, timeout);
-
- this.data = data;
-
- send_stream = new NetStream(circon, NetStream.DIRECT_CONNECTIONS);
- var client:Object = new Object();
- client.onPeerConnect = function (peer:NetStream):Boolean {
- clearTimeout(connect_timeo_id);
- puts("RTMFPSocket: connected to peer");
- connected = true;
- dispatchEvent(new Event(Event.CONNECT));
- peer.send("setPeerConnectAcknowledged");
- return true;
- };
- send_stream.client = client;
- send_stream.publish(data);
-
- recv_stream = new NetStream(circon, clientID);
- var client_rtmfp:RTMFPSocketClient = new RTMFPSocketClient();
- client_rtmfp.addEventListener(ProgressEvent.SOCKET_DATA, function (event:ProgressEvent):void {
- dispatchEvent(event);
- }, false, 0, true);
- client_rtmfp.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, function (event:Event):void {
- /* Empty... here for symmetry. */
- }, false, 0, true);
-
- recv_stream.client = client_rtmfp;
- recv_stream.play(data);
- }
-
- private function send_stream_peer_connect(peer:NetStream):Boolean
- {
- puts("RTMFPSocket: peer connecting...");
- recv_stream = new NetStream(circon, peer.farID);
- var client:RTMFPSocketClient = new RTMFPSocketClient();
- client.addEventListener(ProgressEvent.SOCKET_DATA, function (event:ProgressEvent):void {
- dispatchEvent(event);
- }, false, 0, true);
- client.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, function (event:Event):void {
- puts("RTMFPSocket: peer connected");
- connected = true;
- dispatchEvent(new Event(Event.CONNECT));
- }, false, 0, true);
- recv_stream.client = client;
- recv_stream.play(data);
-
- peer.send("setPeerConnectAcknowledged");
-
- return true;
- }
-
- private function circon_netstatus_event(event:NetStatusEvent):void
- {
- switch (event.info.code) {
- case "NetStream.Connect.Closed" :
- puts("RTMFPSocket: NetStream connection was closed");
-
- if(connected)
- {
- send_stream.close();
- recv_stream.close();
- connected = false;
- dispatchEvent(new Event(Event.CLOSE));
- }
-
- break;
- }
- }
-
-
- public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
- {
- recv_stream.client.bytes.readBytes(bytes, offset, length);
- }
-
- public function writeBytes(bytes:ByteArray):void
- {
- send_stream.send("dataAvailable", bytes);
- }
-
- public function close():void
- {
- puts("RTMFPSocket: closing...");
- send_stream.close();
- recv_stream.close();
- connected = false;
- }
-}
-
-[Event(name="peerConnectAcknowledged", type="flash.events.Event")]
-dynamic class RTMFPSocketClient extends EventDispatcher
-{
- public static const PEER_CONNECT_ACKNOWLEDGED:String = "peerConnectAcknowledged";
-
- private var _bytes:ByteArray;
- private var _peerID:String;
- private var _peerConnectAcknowledged:Boolean;
-
- public function RTMFPSocketClient()
- {
- super();
- _bytes = new ByteArray();
- _peerID = null;
- _peerConnectAcknowledged = false;
- }
-
- public function get bytes():ByteArray
- {
- return _bytes;
- }
-
- public function dataAvailable(bytes:ByteArray):void
- {
- this._bytes.clear();
- bytes.readBytes(this._bytes);
- dispatchEvent(new ProgressEvent(ProgressEvent.SOCKET_DATA, false, false, this._bytes.bytesAvailable, this._bytes.length));
- }
-
- public function get peerConnectAcknowledged():Boolean
- {
- return _peerConnectAcknowledged;
- }
-
- public function setPeerConnectAcknowledged():void
- {
- _peerConnectAcknowledged = true;
- dispatchEvent(new Event(PEER_CONNECT_ACKNOWLEDGED));
- }
-
- public function get peerID():String
- {
- return _peerID;
- }
-
- public function set peerID(id:String):void
- {
- _peerID = id;
- }
-
-}
-
-class RTMFPConnectionPair extends EventDispatcher
-{
- private var circon:NetConnection;
-
- private var tor_addr:Object;
-
- private var s_r:RTMFPSocket;
-
- private var s_t:Socket;
-
- private var output_text:TextField;
-
- /* Put a string to the screen. */
- public function puts(s:String):void
- {
- output_text.appendText(s + "\n");
- output_text.scrollV = output_text.maxScrollV;
- }
-
- public function RTMFPConnectionPair(circon:NetConnection, tor_addr:Object, output_text:TextField)
- {
- this.circon = circon;
- this.tor_addr = tor_addr;
- this.output_text = output_text;
- }
-
- public function connect(clientID:String, rtmfp_data:String, timeout:uint):void
- {
- s_r = new RTMFPSocket(circon, output_text);
- s_r.addEventListener(Event.CONNECT, rtmfp_connect_event);
- s_r.addEventListener(Event.UNLOAD, function (e:Event):void {
- dispatchEvent(new Event(Event.UNLOAD));
- });
- s_r.addEventListener(ProgressEvent.SOCKET_DATA, function (e:ProgressEvent):void {
- /* It's possible that we receive data before we're connected
- * to the tor-side of the connection. In this case we want
- * to buffer the data. */
- if(!s_t.connected) {
- puts("MASSIVE ATTACK!");
- } else {
- var bytes:ByteArray = new ByteArray();
- s_r.readBytes(bytes, 0, e.bytesLoaded);
- puts("RTMFPConnectionPair: RTMFP: read " + bytes.length + " bytes.");
- s_t.writeBytes(bytes);
- }
- });
- s_r.addEventListener(Event.CLOSE, rtmfp_close_event);
- s_r.connect(clientID, rtmfp_data, timeout);
- }
-
- public function listen(rtmfp_data:String):void
- {
- s_r = new RTMFPSocket(circon, output_text);
- s_r.addEventListener(Event.CONNECT, rtmfp_connect_event);
- s_r.addEventListener(ProgressEvent.SOCKET_DATA, function (e:ProgressEvent):void {
- /* It's possible that we receive data before we're connected
- * to the tor-side of the connection. In this case we want
- * to buffer the data. */
- if(!s_t.connected) {
- puts("MASSIVE ATTACK!");
- } else {
- var bytes:ByteArray = new ByteArray();
- s_r.readBytes(bytes, 0, e.bytesLoaded);
- puts("RTMFPConnectionPair: RTMFP: read " + bytes.length + " bytes.");
- s_t.writeBytes(bytes);
- }
- });
-
- s_r.addEventListener(Event.CLOSE, rtmfp_close_event);
- s_r.listen(rtmfp_data);
- }
-
- private function rtmfp_connect_event(e:Event):void
- {
- puts("RTMFPConnectionPair: RTMFPSocket side connected!");
- puts("RTMFPConnectionPair: setting up tor side connection...");
-
- /* Setup tor connection linked to RTMFPSocket. */
- s_t = new Socket();
- s_t.addEventListener(Event.CONNECT, function (e:Event):void {
- puts("RTMFPConnectionPair: Tor: connected to " + tor_addr.host + ":" + tor_addr.port + ".");
- dispatchEvent(new Event(Event.CONNECT));
- });
- s_t.addEventListener(Event.CLOSE, function (e:Event):void {
- puts("RTMFPConnectionPair: Tor: closed connection.");
- /* Close other side of connection pair if it is open and
- * dispatch close event. */
- if(s_r.connected)
- s_r.close();
- dispatchEvent(new Event(Event.CLOSE));
- });
- s_t.addEventListener(ProgressEvent.SOCKET_DATA, function (e:ProgressEvent):void {
- var bytes:ByteArray = new ByteArray();
- s_t.readBytes(bytes, 0, e.bytesLoaded);
- puts("RTMFPConnectionPair: Tor: read " + bytes.length + " bytes.");
- s_r.writeBytes(bytes);
- });
- s_t.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
- puts("RTMFPConnectionPair: Tor: I/O error: " + e.text + ".");
- });
- s_t.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:SecurityErrorEvent):void {
- puts("RTMFPConnectionPair: Tor: security error: " + e.text + ".");
- });
-
- s_t.connect(tor_addr.host, tor_addr.port);
- }
-
- private function rtmfp_close_event(e:Event):void
- {
- puts("RTMFPConnectionPair: RTMFPSocket closed connection");
- /* Close other side of connection pair if it is open and dispatch
- * close event. */
- if(s_t.connected)
- s_t.close();
- dispatchEvent(new Event(Event.CLOSE));
- }
-
-}
1
0

11 Jun '11
commit 6f7049dc58d07d96c98eead01f2361893cc9d672
Author: David Fifield <david(a)bamsoftware.com>
Date: Sat Jun 11 10:46:59 2011 -0700
Log request line, status code, and referer.
---
facilitator.py | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/facilitator.py b/facilitator.py
index 09f8a32..a41ed6f 100755
--- a/facilitator.py
+++ b/facilitator.py
@@ -270,6 +270,12 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
if message:
self.wfile.write(message)
+ def log_request(self, code):
+ addr_s = format_addr(self.client_address)
+ referer = self.headers.get("Referer") or "-"
+ log(u"resp %s %s %d %s"
+ % (addr_s, repr(self.requestline), code, repr(referer)))
+
def log_message(self, format, *args):
msg = format % args
log(u"message from HTTP handler for %s: %s"
1
0

[flashproxy/master] Do log lines before sending responses in case there's an error in the send.
by dcf@torproject.org 11 Jun '11
by dcf@torproject.org 11 Jun '11
11 Jun '11
commit efef83ad96cd4787b0cdaa97e266efbde0a90f72
Author: David Fifield <david(a)bamsoftware.com>
Date: Sat Jun 11 10:54:49 2011 -0700
Do log lines before sending responses in case there's an error in the send.
---
facilitator.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/facilitator.py b/facilitator.py
index a41ed6f..4d08673 100755
--- a/facilitator.py
+++ b/facilitator.py
@@ -227,16 +227,16 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
client_spec = data.getfirst("client")
if client_spec is None:
- self.send_error(400)
log(u"client %s missing \"client\" param" % client_addr_s)
+ self.send_error(400)
return
try:
reg = Reg.parse(client_spec, self.client_address[0])
except ValueError, e:
- self.send_error(400)
log(u"client %s syntax error in %s: %s"
% (client_addr_s, repr(client_spec), repr(str(e))))
+ self.send_error(400)
return
log(u"client %s regs %s -> %s"
1
0
commit 2162c85c17e5f4315eb3f7027db60846586b66c4
Author: David Fifield <david(a)bamsoftware.com>
Date: Sat Jun 11 10:18:04 2011 -0700
Wrap some long log output lines.
---
facilitator.py | 28 ++++++++++++++++++----------
1 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/facilitator.py b/facilitator.py
index 0c1e4dd..09f8a32 100755
--- a/facilitator.py
+++ b/facilitator.py
@@ -200,7 +200,9 @@ class RegSet(object):
class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
- log(u"proxy %s connects" % format_addr(self.client_address))
+ proxy_addr_s = format_addr(self.client_address)
+
+ log(u"proxy %s connects" % proxy_addr_s)
path = urlparse.urlsplit(self.path)[2]
@@ -211,35 +213,40 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
reg = REGS.fetch()
if reg:
log(u"proxy %s gets %s, relay %s (now %d)" %
- (format_addr(self.client_address), unicode(reg),
- options.relay_spec, len(REGS)))
+ (proxy_addr_s, unicode(reg), options.relay_spec, len(REGS)))
self.send_client(reg)
else:
- log(u"proxy %s gets none" % format_addr(self.client_address))
+ log(u"proxy %s gets none" % proxy_addr_s)
self.send_client(None)
def do_POST(self):
+ client_addr_s = format_addr(self.client_address)
+
data = cgi.FieldStorage(fp = self.rfile, headers = self.headers,
environ = {"REQUEST_METHOD": "POST"})
client_spec = data.getfirst("client")
if client_spec is None:
self.send_error(400)
- log(u"client %s missing \"client\" param" % format_addr(self.client_address))
+ log(u"client %s missing \"client\" param" % client_addr_s)
return
try:
reg = Reg.parse(client_spec, self.client_address[0])
except ValueError, e:
self.send_error(400)
- log(u"client %s syntax error in %s: %s" % (format_addr(self.client_address), repr(client_spec), repr(str(e))))
+ log(u"client %s syntax error in %s: %s"
+ % (client_addr_s, repr(client_spec), repr(str(e))))
return
- log(u"client %s regs %s -> %s" % (format_addr(self.client_address), repr(client_spec), unicode(reg)))
+ log(u"client %s regs %s -> %s"
+ % (client_addr_s, repr(client_spec), unicode(reg)))
if REGS.add(reg):
- log(u"client %s %s (now %d)" % (format_addr(self.client_address), unicode(reg), len(REGS)))
+ log(u"client %s %s (now %d)"
+ % (client_addr_s, unicode(reg), len(REGS)))
else:
- log(u"client %s %s (already present, now %d)" % (format_addr(self.client_address), unicode(reg), len(REGS)))
+ log(u"client %s %s (already present, now %d)"
+ % (client_addr_s, unicode(reg), len(REGS)))
self.send_response(200)
self.end_headers()
@@ -265,7 +272,8 @@ class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
def log_message(self, format, *args):
msg = format % args
- log(u"message from HTTP handler for %s: %s" % (format_addr(self.client_address), repr(msg)))
+ log(u"message from HTTP handler for %s: %s"
+ % (format_addr(self.client_address), repr(msg)))
def send_client(self, reg):
if reg:
1
0