tor-commits
Threads by month
- ----- 2025 -----
- June
- 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
- 1 participants
- 213377 discussions
commit 5570e265c210b44c539707aae7398f75630d5388
Author: David Fifield <david(a)bamsoftware.com>
Date: Tue May 24 15:58:28 2011 -0700
Switch back to the public relay.
---
com/rtmfpcat/rtmfpcat.as | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/com/rtmfpcat/rtmfpcat.as b/com/rtmfpcat/rtmfpcat.as
index c3d3fca..328274a 100644
--- a/com/rtmfpcat/rtmfpcat.as
+++ b/com/rtmfpcat/rtmfpcat.as
@@ -29,10 +29,10 @@ package
port: 3333
};
- /* David's bridge (nickname eRYaZuvY02FpExln) that also serves a
+ /* David's relay (nickname 3VXRyxz67OeRoqHn) that also serves a
crossdomain policy. */
private const DEFAULT_TOR_PROXY_ADDR:Object = {
- host: "69.164.193.231",
+ host: "173.255.221.44",
port: 9001
};
1
0
commit c4093a2b4ab730ddc53163009c0f409dcee41dab
Author: ellitron <jdellit(a)stanford.edu>
Date: Tue May 24 19:51:41 2011 -0700
Replaced tabs with spaces
---
com/rtmfpcat/rtmfp/RTMFPSocket.as | 231 +++++++++++++++++++------------------
1 files changed, 116 insertions(+), 115 deletions(-)
diff --git a/com/rtmfpcat/rtmfp/RTMFPSocket.as b/com/rtmfpcat/rtmfp/RTMFPSocket.as
index bb00994..2d634f0 100644
--- a/com/rtmfpcat/rtmfp/RTMFPSocket.as
+++ b/com/rtmfpcat/rtmfp/RTMFPSocket.as
@@ -27,205 +27,206 @@ package rtmfp
import rtmfp.events.RTMFPSocketEvent;
[Event(name="connectSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="connectFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="publishStart", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="peerConnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="peeringSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="peeringFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
- [Event(name="peerDisconnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="connectFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="publishStart", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="peerConnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="peeringSuccess", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="peeringFail", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
+ [Event(name="peerDisconnected", type="com.jscat.rtmfp.events.RTMFPSocketEvent")]
public class RTMFPSocket extends EventDispatcher
{
/* The name of the "media" to pass between peers */
private static const DATA:String = "data";
- private static const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
- private static const DEFAULT_CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
- private static const DEFAULT_CONNECT_TIMEOUT:uint = 4000;
-
+ private static const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
+ private static const DEFAULT_CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
+ private static const DEFAULT_CONNECT_TIMEOUT:uint = 4000;
+
/* Connection to the Cirrus rendezvous service */
private var connection:NetConnection;
-
- /* ID of the peer to connect to */
- private var peerID:String;
-
- /* Data streams to be established with peer */
- private var sendStream:NetStream;
- private var recvStream:NetStream;
-
- /* Timeouts */
- private var connectionTimeout:int;
- private var peerConnectTimeout:uint;
+
+ /* ID of the peer to connect to */
+ private var peerID:String;
+
+ /* Data streams to be established with peer */
+ private var sendStream:NetStream;
+ private var recvStream:NetStream;
+
+ /* Timeouts */
+ private var connectionTimeout:int;
+ private var peerConnectTimeout:uint;
public function RTMFPSocket(){}
public function connect(addr:String = DEFAULT_CIRRUS_ADDRESS, key:String = DEFAULT_CIRRUS_KEY):void
{
- connection = new NetConnection();
- connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEvent);
- connection.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
- connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorEvent);
- connection.connect(addr + "/" + key);
- connectionTimeout = setInterval(fail, DEFAULT_CONNECT_TIMEOUT);
+ connection = new NetConnection();
+ connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEvent);
+ connection.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorEvent);
+ connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityErrorEvent);
+ connection.connect(addr + "/" + key);
+ connectionTimeout = setInterval(fail, DEFAULT_CONNECT_TIMEOUT);
}
public function close():void
{
- connection.close();
+ connection.close();
}
public function get id():String
{
- if (connection != null && connection.connected) {
- return connection.nearID;
- }
+ if (connection != null && connection.connected) {
+ return connection.nearID;
+ }
- return null;
+ return null;
}
public function get connected():Boolean
{
- return (connection != null && connection.connected);
+ return (connection != null && connection.connected);
}
public function readBytes(bytes:ByteArray):void
{
- recvStream.client.bytes.readBytes(bytes);
+ recvStream.client.bytes.readBytes(bytes);
}
public function writeBytes(bytes:ByteArray):void
{
- sendStream.send("dataAvailable", bytes);
+ sendStream.send("dataAvailable", bytes);
}
public function get peer():String
{
- return this.peerID;
+ return this.peerID;
}
public function set peer(peerID:String):void
{
- if (peerID == null || peerID.length == 0) {
- throw new Error("Peer ID is null/empty.")
- } else if (peerID == connection.nearID) {
- throw new Error("Peer ID cannot be the same as our ID.");
- } else if (this.peerID == peerID) {
- throw new Error("Already connected to peer " + peerID + ".");
- } else if (this.recvStream != null) {
- throw new Error("Cannot connect to a second peer.");
- }
+ if (peerID == null || peerID.length == 0) {
+ throw new Error("Peer ID is null/empty.")
+ } else if (peerID == connection.nearID) {
+ throw new Error("Peer ID cannot be the same as our ID.");
+ } else if (this.peerID == peerID) {
+ throw new Error("Already connected to peer " + peerID + ".");
+ } else if (this.recvStream != null) {
+ throw new Error("Cannot connect to a second peer.");
+ }
- this.peerID = peerID;
+ this.peerID = peerID;
- recvStream = new NetStream(connection, peerID);
- var client:RTMFPSocketClient = new RTMFPSocketClient();
- client.addEventListener(ProgressEvent.SOCKET_DATA, onDataAvailable, false, 0, true);
- client.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, onPeerConnectAcknowledged, false, 0, true);
- recvStream.client = client;
- recvStream.addEventListener(NetStatusEvent.NET_STATUS, onRecvStreamEvent);
- recvStream.play(DATA);
- setTimeout(onPeerConnectTimeout, peerConnectTimeout, recvStream);
+ recvStream = new NetStream(connection, peerID);
+ var client:RTMFPSocketClient = new RTMFPSocketClient();
+ client.addEventListener(ProgressEvent.SOCKET_DATA, onDataAvailable, false, 0, true);
+ client.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, onPeerConnectAcknowledged, false, 0, true);
+ recvStream.client = client;
+ recvStream.addEventListener(NetStatusEvent.NET_STATUS, onRecvStreamEvent);
+ recvStream.play(DATA);
+ setTimeout(onPeerConnectTimeout, peerConnectTimeout, recvStream);
}
private function startPublishStream():void
{
- sendStream = new NetStream(connection, NetStream.DIRECT_CONNECTIONS);
- sendStream.addEventListener(NetStatusEvent.NET_STATUS, onSendStreamEvent);
- var o:Object = new Object();
- o.onPeerConnect = onPeerConnect;
- sendStream.client = o;
- sendStream.publish(DATA);
+ sendStream = new NetStream(connection, NetStream.DIRECT_CONNECTIONS);
+ sendStream.addEventListener(NetStatusEvent.NET_STATUS, onSendStreamEvent);
+ var o:Object = new Object();
+ o.onPeerConnect = onPeerConnect;
+ sendStream.client = o;
+ sendStream.publish(DATA);
}
private function fail():void
{
- clearInterval(connectionTimeout);
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_FAIL));
+ clearInterval(connectionTimeout);
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_FAIL));
}
private function onDataAvailable(event:ProgressEvent):void
{
- dispatchEvent(event);
+ dispatchEvent(event);
}
private function onIOErrorEvent(event:IOErrorEvent):void
{
- fail();
+ fail();
}
private function onNetStatusEvent(event:NetStatusEvent):void
{
- switch (event.info.code) {
- case "NetConnection.Connect.Success" :
- clearInterval(connectionTimeout);
- startPublishStream();
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_SUCCESS));
- break;
- case "NetStream.Connect.Success" :
- break;
- case "NetStream.Publish.BadName" :
- fail();
- break;
- case "NetStream.Connect.Closed" :
- // we've disconnected from the peer
- // can reset to accept another
- // clear the publish stream and re-publish another
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_DISCONNECTED, recvStream));
- break;
- }
+ switch (event.info.code) {
+ case "NetConnection.Connect.Success" :
+ clearInterval(connectionTimeout);
+ startPublishStream();
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.CONNECT_SUCCESS));
+ break;
+ case "NetStream.Connect.Success" :
+ break;
+ case "NetStream.Publish.BadName" :
+ fail();
+ break;
+ case "NetStream.Connect.Closed" :
+ // we've disconnected from the peer
+ // can reset to accept another
+ // clear the publish stream and re-publish another
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_DISCONNECTED, recvStream));
+ break;
+ }
}
private function onPeerConnect(peer:NetStream):Boolean
{
- // establish a bidirectional stream with the peer
- if (peerID == null) {
- this.peer = peer.farID;
- }
+ // establish a bidirectional stream with the peer
+ if (peerID == null) {
+ this.peer = peer.farID;
+ }
- // disallow additional peers connecting to us
- if (peer.farID != peerID) return false;
+ // disallow additional peers connecting to us
+ if (peer.farID != peerID) return false;
- peer.send("setPeerConnectAcknowledged");
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_CONNECTED, peer));
+ peer.send("setPeerConnectAcknowledged");
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEER_CONNECTED, peer));
- return true;
+ return true;
}
private function onPeerConnectAcknowledged(event:Event):void
{
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_SUCCESS, recvStream));
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_SUCCESS, recvStream));
}
private function onPeerConnectTimeout(peer:NetStream):void
{
- if (!recvStream.client) return;
- if (!RTMFPSocketClient(recvStream.client).peerConnectAcknowledged) {
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_FAIL, recvStream));
- }
+ if (!recvStream.client) return;
+ if (!RTMFPSocketClient(recvStream.client).peerConnectAcknowledged) {
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PEERING_FAIL, recvStream));
+ }
}
private function onSecurityErrorEvent(event:SecurityErrorEvent):void
{
- fail();
+ fail();
}
private function onSendStreamEvent(event:NetStatusEvent):void
{
- switch (event.info.code) {
- case ("NetStream.Publish.Start") :
- dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PUBLISH_START));
- break;
- case ("NetStream.Play.Reset") :
- case ("NetStream.Play.Start") :
- break;
- }
- }
- private function onRecvStreamEvent(event:NetStatusEvent):void
- {
- switch (event.info.code) {
- case ("NetStream.Publish.Start") :
- case ("NetStream.Play.Reset") :
- case ("NetStream.Play.Start") :
- break;
- }
- }
+ switch (event.info.code) {
+ case ("NetStream.Publish.Start") :
+ dispatchEvent(new RTMFPSocketEvent(RTMFPSocketEvent.PUBLISH_START));
+ break;
+ case ("NetStream.Play.Reset") :
+ case ("NetStream.Play.Start") :
+ break;
+ }
+ }
+
+ private function onRecvStreamEvent(event:NetStatusEvent):void
+ {
+ switch (event.info.code) {
+ case ("NetStream.Publish.Start") :
+ case ("NetStream.Play.Reset") :
+ case ("NetStream.Play.Start") :
+ break;
+ }
+ }
}
}
1
0

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

12 Jun '11
commit 66e10cc08f300e46d8c6eb9857a664d824bf1159
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 19:19:41 2011 -0700
Binding handlers for the actions submenu
Making a functional actions submenu which includes options for...
- Close Menu
- Pause / Unpause
- Reset Tor
- Quit
---
src/cli/controller.py | 23 +++++++++++++++++++----
src/cli/menu/actions.py | 30 ++++++++++++++++++++++++++----
src/cli/menu/item.py | 7 +++++--
3 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/src/cli/controller.py b/src/cli/controller.py
index 997d9d3..faf9248 100644
--- a/src/cli/controller.py
+++ b/src/cli/controller.py
@@ -150,6 +150,7 @@ class Controller:
self._page = 0
self._isPaused = False
self._forceRedraw = False
+ self._isDone = False
self.setMsg() # initializes our control message
def getScreen(self):
@@ -312,6 +313,20 @@ class Controller:
if redraw: controlPanel.redraw(True)
else: self._forceRedraw = True
+
+ def isDone(self):
+ """
+ True if arm should be terminated, false otherwise.
+ """
+
+ return self._isDone
+
+ def quit(self):
+ """
+ Terminates arm after the input is processed.
+ """
+
+ self._isDone = True
def shutdownDaemons():
"""
@@ -477,7 +492,7 @@ def drawTorMonitor(stdscr, startTime):
menuKeys = []
- while True:
+ while not control.isDone():
displayPanels = control.getDisplayPanels()
isUnresponsive = heartbeatCheck(isUnresponsive)
@@ -529,9 +544,7 @@ def drawTorMonitor(stdscr, startTime):
quitConfirmed = confirmationKey in (ord('q'), ord('Q'))
else: quitConfirmed = True
- if quitConfirmed:
- shutdownDaemons()
- break
+ if quitConfirmed: control.quit()
elif key == ord('x') or key == ord('X'):
# provides prompt to confirm that arm should issue a sighup
msg = "This will reset Tor's internal state. Are you sure (x again to confirm)?"
@@ -547,4 +560,6 @@ def drawTorMonitor(stdscr, startTime):
for panelImpl in displayPanels:
isKeystrokeConsumed = panelImpl.handleKey(key)
if isKeystrokeConsumed: break
+
+ shutdownDaemons()
diff --git a/src/cli/menu/actions.py b/src/cli/menu/actions.py
index f6f88ba..751751f 100644
--- a/src/cli/menu/actions.py
+++ b/src/cli/menu/actions.py
@@ -2,18 +2,20 @@
Generates the menu for arm, binding options with their related actions.
"""
+import functools
+
+import cli.controller
import cli.menu.item
+from util import torTools
+
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)
+ baseMenu.add(makeActionsMenu())
logsMenu = cli.menu.item.Submenu("Logs")
logsMenu.add(cli.menu.item.MenuItem("Events", None))
@@ -70,4 +72,24 @@ def makeMenu():
return baseMenu
+def makeActionsMenu():
+ """
+ Submenu consisting of...
+ Close Menu
+ Pause / Unpause
+ Reset Tor
+ Exit
+ """
+
+ control = cli.controller.getController()
+ actionsMenu = cli.menu.item.Submenu("Actions")
+ actionsMenu.add(cli.menu.item.MenuItem("Close Menu", None))
+
+ if control.isPaused(): label, arg = "Unpause", False
+ else: label, arg = "Pause", True
+ actionsMenu.add(cli.menu.item.MenuItem(label, functools.partial(control.setPaused, arg)))
+
+ actionsMenu.add(cli.menu.item.MenuItem("Reset Tor", torTools.getConn().reload))
+ actionsMenu.add(cli.menu.item.MenuItem("Exit", control.quit))
+ return actionsMenu
diff --git a/src/cli/menu/item.py b/src/cli/menu/item.py
index bfc7ffd..8c5d314 100644
--- a/src/cli/menu/item.py
+++ b/src/cli/menu/item.py
@@ -53,8 +53,8 @@ class MenuItem():
the menu and false otherwise.
"""
- if self._callback: return self._callback()
- else: return False
+ if self._callback: self._callback()
+ return True
def next(self):
"""
@@ -143,4 +143,7 @@ class Submenu(MenuItem):
"""
return not bool(self._children)
+
+ def select(self):
+ return False
1
0
commit 3cc2ecf82d693a782c11d5a4f6fb41e94e7b5d05
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Jun 11 20:55:34 2011 -0700
Binding handlers for the view submenu
Submenu consisting of page and color selection.
---
src/cli/configPanel.py | 2 +-
src/cli/connections/connPanel.py | 2 +-
src/cli/controller.py | 48 +++++++++++++++++++++++++++----------
src/cli/descriptorPopup.py | 2 +-
src/cli/menu/actions.py | 44 ++++++++++++++++++++++++++++------
src/cli/menu/item.py | 46 ++++++++++++++++++++++++++++++++++++
src/cli/popups.py | 2 +-
src/cli/torrcPanel.py | 2 +-
src/util/uiTools.py | 36 ++++++++++++++++++++++++++--
9 files changed, 155 insertions(+), 29 deletions(-)
diff --git a/src/cli/configPanel.py b/src/cli/configPanel.py
index c44d295..c2e290d 100644
--- a/src/cli/configPanel.py
+++ b/src/cli/configPanel.py
@@ -172,7 +172,7 @@ class ConfigPanel(panel.Panel):
"""
def __init__(self, stdscr, configType, config=None):
- panel.Panel.__init__(self, stdscr, "configState", 0)
+ panel.Panel.__init__(self, stdscr, "configuration", 0)
self.sortOrdering = DEFAULT_SORT_ORDER
self._config = dict(DEFAULT_CONFIG)
diff --git a/src/cli/connections/connPanel.py b/src/cli/connections/connPanel.py
index 45750c3..8b86c65 100644
--- a/src/cli/connections/connPanel.py
+++ b/src/cli/connections/connPanel.py
@@ -31,7 +31,7 @@ class ConnectionPanel(panel.Panel, threading.Thread):
"""
def __init__(self, stdscr, config=None):
- panel.Panel.__init__(self, stdscr, "conn", 0)
+ panel.Panel.__init__(self, stdscr, "connections", 0)
threading.Thread.__init__(self)
self.setDaemon(True)
diff --git a/src/cli/controller.py b/src/cli/controller.py
index faf9248..cf17da3 100644
--- a/src/cli/controller.py
+++ b/src/cli/controller.py
@@ -160,6 +160,14 @@ class Controller:
return self._screen
+ def getPageCount(self):
+ """
+ Provides the number of pages the interface has. This may be zero if all
+ page panels have been disabled.
+ """
+
+ return len(self._pagePanels)
+
def getPage(self):
"""
Provides the number belonging to this page. Page numbers start at zero.
@@ -167,23 +175,35 @@ class Controller:
return self._page
+ def setPage(self, pageNumber):
+ """
+ Sets the selected page, raising a ValueError if the page number is invalid.
+
+ Arguments:
+ pageNumber - page number to be selected
+ """
+
+ if pageNumber < 0 or pageNumber >= self.getPageCount():
+ raise ValueError("Invalid page number: %i" % pageNumber)
+
+ if pageNumber != self._page:
+ self._page = pageNumber
+ self._forceRedraw = True
+ self.setMsg()
+
def nextPage(self):
"""
Increments the page number.
"""
- self._page = (self._page + 1) % len(self._pagePanels)
- self._forceRedraw = True
- self.setMsg()
+ self.setPage((self._page + 1) % len(self._pagePanels))
def prevPage(self):
"""
Decrements the page number.
"""
- self._page = (self._page - 1) % len(self._pagePanels)
- self._forceRedraw = True
- self.setMsg()
+ self.setPage((self._page - 1) % len(self._pagePanels))
def isPaused(self):
"""
@@ -227,20 +247,22 @@ class Controller:
return list(self._stickyPanels)
- def getDisplayPanels(self, includeSticky = True):
+ def getDisplayPanels(self, pageNumber = None, includeSticky = True):
"""
- Provides all panels belonging to the current page and sticky content above
- it. This is ordered they way they are presented (top to bottom) on the
- page.
+ Provides all panels belonging to a page and sticky content above it. This
+ is ordered they way they are presented (top to bottom) on the page.
Arguments:
+ pageNumber - page number of the panels to be returned, the current
+ page if None
includeSticky - includes sticky panels in the results if true
"""
+ returnPage = self._page if pageNumber == None else pageNumber
+
if includeSticky:
- return self._stickyPanels + self._pagePanels[self._page]
- else:
- return list(self._pagePanels[self._page])
+ return self._stickyPanels + self._pagePanels[returnPage]
+ else: return list(self._pagePanels[returnPage])
def getDaemonPanels(self):
"""
diff --git a/src/cli/descriptorPopup.py b/src/cli/descriptorPopup.py
index f75d7e6..5b9f646 100644
--- a/src/cli/descriptorPopup.py
+++ b/src/cli/descriptorPopup.py
@@ -105,7 +105,7 @@ def showDescriptorPopup(connectionPanel):
# hides the title of the first panel on the page
control = controller.getController()
- topPanel = control.getDisplayPanels(False)[0]
+ topPanel = control.getDisplayPanels(includeSticky = False)[0]
topPanel.setTitleVisible(False)
topPanel.redraw(True)
diff --git a/src/cli/menu/actions.py b/src/cli/menu/actions.py
index 751751f..f81a162 100644
--- a/src/cli/menu/actions.py
+++ b/src/cli/menu/actions.py
@@ -7,7 +7,7 @@ import functools
import cli.controller
import cli.menu.item
-from util import torTools
+from util import torTools, uiTools
def makeMenu():
"""
@@ -16,6 +16,7 @@ def makeMenu():
baseMenu = cli.menu.item.Submenu("")
baseMenu.add(makeActionsMenu())
+ baseMenu.add(makeViewMenu())
logsMenu = cli.menu.item.Submenu("Logs")
logsMenu.add(cli.menu.item.MenuItem("Events", None))
@@ -29,13 +30,6 @@ def makeMenu():
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))
@@ -93,3 +87,37 @@ def makeActionsMenu():
actionsMenu.add(cli.menu.item.MenuItem("Exit", control.quit))
return actionsMenu
+def makeViewMenu():
+ """
+ Submenu consisting of...
+ [X] <Page 1>
+ [ ] <Page 2>
+ [ ] etc...
+ Color (Submenu)
+ """
+
+ viewMenu = cli.menu.item.Submenu("View")
+ control = cli.controller.getController()
+
+ if control.getPageCount() > 0:
+ pageGroup = cli.menu.item.SelectionGroup(control.setPage, control.getPage())
+
+ for i in range(control.getPageCount()):
+ pagePanels = control.getDisplayPanels(pageNumber = i, includeSticky = False)
+ label = " / ".join([uiTools.camelCase(panel.getName()) for panel in pagePanels])
+
+ viewMenu.add(cli.menu.item.SelectionMenuItem(label, pageGroup, i))
+
+ if uiTools.isColorSupported():
+ colorMenu = cli.menu.item.Submenu("Color")
+ colorGroup = cli.menu.item.SelectionGroup(uiTools.setColorOverride, uiTools.getColorOverride())
+
+ colorMenu.add(cli.menu.item.SelectionMenuItem("All", colorGroup, None))
+
+ for color in uiTools.COLOR_LIST:
+ colorMenu.add(cli.menu.item.SelectionMenuItem(uiTools.camelCase(color), colorGroup, color))
+
+ viewMenu.add(colorMenu)
+
+ return viewMenu
+
diff --git a/src/cli/menu/item.py b/src/cli/menu/item.py
index 8c5d314..beaac9c 100644
--- a/src/cli/menu/item.py
+++ b/src/cli/menu/item.py
@@ -147,3 +147,49 @@ class Submenu(MenuItem):
def select(self):
return False
+class SelectionGroup():
+ """
+ Radio button groups that SelectionMenuItems can belong to.
+ """
+
+ def __init__(self, action, selectedArg):
+ self.action = action
+ self.selectedArg = selectedArg
+
+class SelectionMenuItem(MenuItem):
+ """
+ Menu item with an associated group which determines the selection. This is
+ for the common single argument getter/setter pattern.
+ """
+
+ def __init__(self, label, group, arg):
+ MenuItem.__init__(self, label, None)
+ self._group = group
+ self._arg = arg
+
+ def isSelected(self):
+ """
+ True if we're the selected item, false otherwise.
+ """
+
+ return self._arg == self._group.selectedArg
+
+ def getLabel(self):
+ """
+ Provides our label with a "[X]" prefix if selected and "[ ]" if not.
+ """
+
+ myLabel = MenuItem.getLabel(self)[1]
+ myPrefix = "[X] " if self.isSelected() else "[ ] "
+ return (myPrefix, myLabel, "")
+
+ def select(self):
+ """
+ Performs the group's setter action with our argument.
+ """
+
+ if not self.isSelected():
+ self._group.action(self._arg)
+
+ return True
+
diff --git a/src/cli/popups.py b/src/cli/popups.py
index 8061c8f..5f1eac2 100644
--- a/src/cli/popups.py
+++ b/src/cli/popups.py
@@ -280,7 +280,7 @@ def showMenu(title, options, oldSelection):
try:
# hides the title of the first panel on the page
control = cli.controller.getController()
- topPanel = control.getDisplayPanels(False)[0]
+ topPanel = control.getDisplayPanels(includeSticky = False)[0]
topPanel.setTitleVisible(False)
topPanel.redraw(True)
diff --git a/src/cli/torrcPanel.py b/src/cli/torrcPanel.py
index e14a16a..a12cc87 100644
--- a/src/cli/torrcPanel.py
+++ b/src/cli/torrcPanel.py
@@ -24,7 +24,7 @@ class TorrcPanel(panel.Panel):
"""
def __init__(self, stdscr, configType, config=None):
- panel.Panel.__init__(self, stdscr, "configFile", 0)
+ panel.Panel.__init__(self, stdscr, "torrc", 0)
self._config = dict(DEFAULT_CONFIG)
if config:
diff --git a/src/util/uiTools.py b/src/util/uiTools.py
index 5999c64..34d9210 100644
--- a/src/util/uiTools.py
+++ b/src/util/uiTools.py
@@ -18,6 +18,9 @@ COLOR_LIST = {"red": curses.COLOR_RED, "green": curses.COLOR_GREEN,
"cyan": curses.COLOR_CYAN, "magenta": curses.COLOR_MAGENTA,
"black": curses.COLOR_BLACK, "white": curses.COLOR_WHITE}
+# boolean for if we have color support enabled, None not yet determined
+COLOR_IS_SUPPORTED = None
+
# mappings for getColor() - this uses the default terminal color scheme if
# color support is unavailable
COLOR_ATTR_INITIALIZED = False
@@ -138,6 +141,14 @@ def getPrintable(line, keepNewlines = True):
line = "".join([char for char in line if (isprint(char) or (keepNewlines and char == "\n"))])
return line
+def isColorSupported():
+ """
+ True if the display supports showing color, false otherwise.
+ """
+
+ if COLOR_IS_SUPPORTED == None: _initColors()
+ return COLOR_IS_SUPPORTED
+
def getColor(color):
"""
Provides attribute corresponding to a given text color. Supported colors
@@ -261,6 +272,24 @@ def cropStr(msg, size, minWordLen = 4, minCrop = 0, endType = Ending.ELLIPSE, ge
if getRemainder: return (returnMsg, remainder)
else: return returnMsg
+def camelCase(label):
+ """
+ Converts the given string to camel case, ie:
+ >>> camelCase("I_LIKE_PEPPERJACK!")
+ 'I Like Pepperjack!'
+
+ Arguments:
+ label - input string to be converted
+ """
+
+ words = []
+ for entry in label.split("_"):
+ if len(entry) == 0: words.append("")
+ elif len(entry) == 1: words.append(entry.upper())
+ else: words.append(entry[0].upper() + entry[1:].lower())
+
+ return " ".join(words)
+
def drawBox(panel, top, left, width, height, attr=curses.A_NORMAL):
"""
Draws a box in the panel with the given bounds.
@@ -719,16 +748,17 @@ def _initColors():
calling curses.initscr().
"""
- global COLOR_ATTR_INITIALIZED
+ global COLOR_ATTR_INITIALIZED, COLOR_IS_SUPPORTED
if not COLOR_ATTR_INITIALIZED:
COLOR_ATTR_INITIALIZED = True
+ COLOR_IS_SUPPORTED = False
if not CONFIG["features.colorInterface"]: return
- try: hasColorSupport = curses.has_colors()
+ try: COLOR_IS_SUPPORTED = curses.has_colors()
except curses.error: return # initscr hasn't been called yet
# initializes color mappings if color support is available
- if hasColorSupport:
+ if COLOR_IS_SUPPORTED:
colorpair = 0
log.log(CONFIG["log.cursesColorSupport"], "Terminal color support detected and enabled")
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

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
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