Browse Source

Merge branch 'bug8966_v5'

Nick Mathewson 10 years ago
parent
commit
9b825ffc4f
59 changed files with 43 additions and 1901 deletions
  1. 5 14
      .gitignore
  2. 3 3
      Makefile.am
  3. 7 0
      changes/ticket8966
  4. 6 6
      configure.ac
  5. 0 6
      contrib/auto-naming/README
  6. 0 67
      contrib/bundle.nsi
  7. 0 0
      contrib/client-tools/tor-resolve.py
  8. 0 0
      contrib/client-tools/torify
  9. 0 195
      contrib/cross.sh
  10. 0 0
      contrib/dirauth-tools/add-tor
  11. 0 0
      contrib/dirauth-tools/nagios-check-tor-authority-cert
  12. 0 3
      contrib/directory-archive/crontab.sample
  13. 0 77
      contrib/directory-archive/fetch-all
  14. 0 82
      contrib/directory-archive/fetch-all-functions
  15. 0 111
      contrib/directory-archive/fetch-all-v3
  16. 0 74
      contrib/directory-archive/sort-into-month-folder
  17. 0 127
      contrib/directory-archive/tar-them-up
  18. 0 0
      contrib/dist/rc.subr
  19. 0 0
      contrib/dist/suse/tor.sh.in
  20. 0 0
      contrib/dist/tor.sh.in
  21. 0 0
      contrib/dist/torctl.in
  22. 13 15
      contrib/include.am
  23. 0 79
      contrib/make-signature.sh
  24. 0 169
      contrib/mdd.py
  25. 0 74
      contrib/netinst.nsi
  26. 0 0
      contrib/operator-tools/linux-tor-prio.sh
  27. 0 0
      contrib/operator-tools/tor-exit-notice.html
  28. 0 0
      contrib/operator-tools/tor.logrotate.in
  29. 0 0
      contrib/or-tools/check-tor
  30. 0 0
      contrib/or-tools/checksocks.pl
  31. 0 0
      contrib/or-tools/exitlist
  32. 0 90
      contrib/package_nsis-weasel.sh
  33. 0 57
      contrib/package_nsis.sh
  34. 0 100
      contrib/polipo/Makefile.mingw
  35. 0 47
      contrib/polipo/README
  36. 0 172
      contrib/polipo/polipo-mingw.nsi
  37. 0 84
      contrib/sd
  38. 0 1
      contrib/suse/include.am
  39. 0 212
      contrib/tor-ctrl.sh
  40. 0 27
      contrib/tor-stress
  41. BIN
      contrib/torinst32.ico
  42. 3 3
      contrib/win32build/package_nsis-mingw.sh
  43. 0 0
      contrib/win32build/tor-mingw.nsi.in
  44. 0 0
      contrib/win32build/tor.ico
  45. 0 0
      contrib/win32build/tor.nsi.in
  46. BIN
      contrib/xenobite.ico
  47. 2 2
      doc/HACKING
  48. 1 1
      doc/tor.1.txt
  49. 0 0
      scripts/maint/checkLogs.pl
  50. 0 0
      scripts/maint/checkOptionDocs.pl
  51. 0 0
      scripts/maint/checkSpace.pl
  52. 0 0
      scripts/maint/findMergedChanges.pl
  53. 0 0
      scripts/maint/format_changelog.py
  54. 2 2
      scripts/maint/redox.py
  55. 1 1
      scripts/maint/updateVersions.pl
  56. 0 0
      scripts/test/cov-blame
  57. 0 0
      scripts/test/cov-diff
  58. 0 0
      scripts/test/coverage
  59. 0 0
      scripts/test/scan-build.sh

+ 5 - 14
.gitignore

@@ -26,6 +26,7 @@
 *.bak
 # Python droppings
 *.pyc
+*.pyo
 
 # /
 /Makefile
@@ -60,20 +61,10 @@
 /tor-*-win32.exe
 
 # /contrib/
-/contrib/Makefile
-/contrib/Makefile.in
-/contrib/tor.sh
-/contrib/torctl
-/contrib/torify
-/contrib/*.pyc
-/contrib/*.pyo
-/contrib/tor.logrotate
-/contrib/tor.wxs
-
-# /contrib/suse/
-/contrib/suse/tor.sh
-/contrib/suse/Makefile.in
-/contrib/suse/Makefile
+/contrib/dist/tor.sh
+/contrib/dist/torctl
+/contrib/operator-tools/tor.logrotate
+/contrib/dist/suse/tor.sh
 
 # /debian/
 /debian/files

+ 3 - 3
Makefile.am

@@ -77,7 +77,7 @@ reset-gcov:
 # Avoid strlcpy.c, strlcat.c, aes.c, OpenBSD_malloc_Linux.c, sha256.c,
 # eventdns.[hc], tinytest*.[ch]
 check-spaces:
-	./contrib/checkSpace.pl -C                    \
+	./scripts/maint/checkSpace.pl -C              \
 		src/common/*.[ch]		      \
 		src/or/*.[ch]			      \
 		src/test/*.[ch]			      \
@@ -85,10 +85,10 @@ check-spaces:
 		src/tools/tor-fw-helper/*.[ch]
 
 check-docs:
-	./contrib/checkOptionDocs.pl
+	./scripts/maint/checkOptionDocs.pl
 
 check-logs:
-	./contrib/checkLogs.pl                        \
+	./scripts/maint/checkLogs.pl                  \
 		src/*/*.[ch] | sort -n
 
 version:

+ 7 - 0
changes/ticket8966

@@ -0,0 +1,7 @@
+  o Package cleanup:
+    - The contrib directory has been sorted and tidy. Before, it was an
+      unsorted dumping ground for useful and not-so-useful things. Now,
+      it has been divided based on functionality, and the items which
+      seemed to be nonfunctional or useless have been removed. Resolves
+      ticket 8966; based on patches from "rl1987".
+

+ 6 - 6
configure.ac

@@ -1557,10 +1557,10 @@ CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent $TOR_CPPFLAGS_openssl $TOR_CPPFLAGS_z
 AC_CONFIG_FILES([
         Doxyfile
         Makefile
-        contrib/suse/tor.sh
-        contrib/tor.logrotate
-        contrib/tor.sh
-        contrib/torctl
+        contrib/dist/suse/tor.sh
+        contrib/operator-tools/tor.logrotate
+        contrib/dist/tor.sh
+        contrib/dist/torctl
         src/config/torrc.sample
 ])
 
@@ -1582,6 +1582,6 @@ fi
 
 AC_OUTPUT
 
-if test -x /usr/bin/perl && test -x ./contrib/updateVersions.pl ; then
-  ./contrib/updateVersions.pl
+if test -x /usr/bin/perl && test -x ./scripts/maint/updateVersions.pl ; then
+  ./scripts/maint/updateVersions.pl
 fi

+ 0 - 6
contrib/auto-naming/README

@@ -1,6 +0,0 @@
-Tor directory authorities may maintain a binding of server identities
-(their long term identity key) and nicknames.
-
-The auto-naming scripts have been moved to svn in
-projects/tor-naming/auto-naming/trunk/
-

+ 0 - 67
contrib/bundle.nsi

@@ -1,67 +0,0 @@
-!include "MUI.nsh"
-!include "LogicLib.nsh"
-!include "FileFunc.nsh"
-  
-!define VERSION "0.2.1.13"
-!define INSTALLER "TorBundle.exe"
-!define WEBSITE "https://www.torproject.org/"
-!define LICENSE "LICENSE"
- 
-SetCompressor /SOLID BZIP2
-RequestExecutionLevel user
-OutFile ${INSTALLER}
-InstallDir "$LOCALAPPDATA\TorInstPkgs"
-SetOverWrite on
-Name "Tor ${VERSION} Bundle"
-Caption "Tor ${VERSION} Bundle Setup"
-BrandingText "Tor Bundle Installer"
-CRCCheck on
-XPStyle on
-ShowInstDetails hide
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Tor"
-VIAddVersionKey "Comments" "${WEBSITE}"
-VIAddVersionKey "LegalTrademarks" "Three line BSD"
-VIAddVersionKey "LegalCopyright" "©2004-2011, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
-VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_ICON "torinst32.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_LANGUAGE "English"
-
-Section "Tor" Tor
-	SectionIn RO
-	SetOutPath $INSTDIR
-	Call ExtractPackages
-        Call RunInstallers
-	Call LaunchVidalia
-SectionEnd
-
-Function ExtractPackages
-	File "license.msi"
-	File "tor.msi"
-	File "torbutton.msi"
-	File "thandy.msi"
-	File "polipo.msi"
-	File "vidalia.msi"
-        File "tbcheck.bat"
-FunctionEnd
-
-Function RunInstallers
-	ExecWait 'msiexec /i "$INSTDIR\license.msi" /qn'
-	ExecWait 'msiexec /i "$INSTDIR\tor.msi" NOSC=1 /qn'
-	ExecWait 'msiexec /i "$INSTDIR\thandy.msi" NOSC=1 /qn'
-	ExecWait 'msiexec /i "$INSTDIR\polipo.msi" NOSC=1 /qn'
-	ExecWait 'msiexec /i "$INSTDIR\torbutton.msi" /qn'
-	ExecWait 'msiexec /i "$INSTDIR\vidalia.msi" /qn'
-        ExpandEnvStrings $0 %COMSPEC%
-        Exec '"$0" /C "$INSTDIR\tbcheck.bat"'
-FunctionEnd
-
-Function LaunchVidalia
-	SetOutPath "$LOCALAPPDATA\Programs\Vidalia"
-	Exec 'vidalia.exe -loglevel info -logfile log.txt'
-FunctionEnd
-

+ 0 - 0
contrib/tor-resolve.py → contrib/client-tools/tor-resolve.py


+ 0 - 0
contrib/torify → contrib/client-tools/torify


+ 0 - 195
contrib/cross.sh

@@ -1,195 +0,0 @@
-#!/bin/bash
-# Copyright 2006 Michael Mohr with modifications by Roger Dingledine
-# See LICENSE for licensing information.
-
-#######################################################################
-#  Tor-cross: a tool to help cross-compile Tor
-#
-#  The purpose of a cross-compiler is to produce an executable for
-#  one system (CPU) on another.  This is useful, for example, when
-#  the target system does not have a native compiler available.
-#  You might, for example, wish to cross-compile a program on your
-#  host (the computer you're working on now) for a target such as
-#  a router or handheld computer.
-#
-#  A number of environment variables must be set in order for this
-#  script to work:
-#        $PREFIX, $CROSSPATH, $HOST_TRIPLET, $HOST,
-#        and (optionally) $BUILD
-#  Please run the script for a description of each one.  If automated
-#  builds are desired, the above variables can be exported at the top
-#  of this script.
-#
-#  Recent releases of Tor include test programs in configure. Normally
-#  this is a good thing, since it catches a number of problems.
-#  However, this also presents a problem when cross compiling, since
-#  you can't run binary images for the target system on the host.
-#
-#  Tor-cross assumes that you know what you're doing and removes a
-#  number of checks known to cause problems with this process.
-#  Note that this does not guarantee that the program will run or
-#  even compile; it simply allows configure to generate the Makefiles.
-#
-#  Stripping the binaries should almost always be done for an
-#  embedded environment where space is at an exacting premium.
-#  However, the default is NOT to strip them since they are useful for
-#  debugging.  If you do not plan to do any debugging and you
-#  don't care about the debugging symbols, set $STRIP to "yes" before
-#  running this script.
-#
-#  Tor-cross was written by Michael Mohr.  He can be contacted at
-#  m(dot)mohr(at)laposte(dot)net.  Comments are appreciated, but
-#  flames go to /dev/null.
-#
-#  The target with which this script is tested is little-endian
-#  MIPS Linux, built on an Athlon-based Linux desktop.
-#
-#######################################################################
-
-# disable the platform-specific tests in configure
-export CROSS_COMPILE=yes
-
-# for error conditions
-EXITVAL=0
-
-if [ ! -f autogen.sh ]
-then
-  echo "Please run this script from the root of the Tor distribution"
-  exit -1
-fi
-
-if [ ! -f configure ]
-then
-  if [ -z $GEN_BUILD ]
-  then
-    echo "To automatically generate the build environment, set \$GEN_BUILD"
-    echo "to yes; for example,"
-    echo "	export GEN_BUILD=yes"
-    EXITVAL=-1
-  fi
-fi
-
-if [ -z $PREFIX ]
-then
-  echo "You must define \$PREFIX since you are cross-compiling."
-  echo "Select a non-system location (i.e. /tmp/tor-cross):"
-  echo "	export PREFIX=/tmp/tor-cross"
-  EXITVAL=-1
-fi
-
-if [ -z $CROSSPATH ]
-then
-  echo "You must define the location of your cross-compiler's"
-  echo "directory using \$CROSSPATH; for example,"
-  echo "	export CROSSPATH=/opt/cross/staging_dir_mipsel/bin"
-  EXITVAL=-1
-fi
-
-if [ -z $HOST_TRIPLET ]
-then
-  echo "You must define \$HOST_TRIPLET to continue.  For example,"
-  echo "if you normally cross-compile applications using"
-  echo "mipsel-linux-uclibc-gcc, you would set \$HOST_TRIPLET like so:"
-  echo "	export HOST_TRIPLET=mipsel-linux-uclibc-"
-  EXITVAL=-1
-fi
-
-if [ -z $HOST ]
-then
-  echo "You must specify a target processor with \$HOST; for example:"
-  echo "	export HOST=mipsel-unknown-elf"
-  EXITVAL=-1
-fi
-
-if [ -z $BUILD ]
-then
-  echo "You should specify the host machine's type with \$BUILD; for example:"
-  echo "	export BUILD=i686-pc-linux-gnu"
-  echo "If you wish to let configure autodetect the host, set \$BUILD to 'auto':"
-  echo "	export BUILD=auto"
-  EXITVAL=-1
-fi
-
-if [ ! -x $CROSSPATH/$HOST_TRIPLETgcc ]
-then
-  echo "The specified toolchain does not contain an executable C compiler."
-  echo "Please double-check your settings and rerun cross.sh."
-  EXITVAL=-1
-fi
-
-if [ $EXITVAL -ne 0 ]
-then
-  echo "Remember, you can hard-code these values in cross.sh if needed."
-  exit $EXITVAL
-fi
-
-if [ ! -z "$GEN_BUILD" -a ! -f configure ]
-then
-  export NOCONF=yes
-  ./autogen.sh
-fi
-
-# clean up any existing object files
-if [ -f src/or/tor ]
-then
-  make clean
-fi
-
-# Set up the build environment and try to run configure
-export PATH=$PATH:$CROSSPATH
-export RANLIB=${HOST_TRIPLET}ranlib
-export CC=${HOST_TRIPLET}gcc
-
-if [ $BUILD == "auto" ]
-then
-  ./configure \
-	--enable-debug \
-	--enable-eventdns \
-	--prefix=$PREFIX \
-	--host=$HOST
-else
-  ./configure \
-	--enable-debug \
-	--enable-eventdns \
-	--prefix=$PREFIX \
-	--host=$HOST \
-	--build=$BUILD
-fi
-
-# has a problem occurred?
-if [ $? -ne 0 ]
-then
-  echo ""
-  echo "A problem has been detected with configure."
-  echo "Please check the output above and rerun cross.sh"
-  echo ""
-  exit -1
-fi
-
-# Now we're cookin'
-
-make
-
-# has a problem occurred?
-if [ $? -ne 0 ]
-then
-  echo ""
-  echo "A problem has been detected with make."
-  echo "Please check the output above and rerun make."
-  echo ""
-  exit -1
-fi
-
-# if $STRIP has length (i.e. STRIP=yes), strip the binaries
-if [ ! -z $STRIP ]
-then
-${HOST_TRIPLET}strip \
-	src/or/tor \
-	src/test/test \
-	src/tools/tor-resolve
-fi
-
-echo ""
-echo "Tor should be compiled at this point.  Now run 'make install' to"
-echo "install to $PREFIX"
-echo ""

+ 0 - 0
contrib/add-tor → contrib/dirauth-tools/add-tor


+ 0 - 0
contrib/nagios-check-tor-authority-cert → contrib/dirauth-tools/nagios-check-tor-authority-cert


+ 0 - 3
contrib/directory-archive/crontab.sample

@@ -1,3 +0,0 @@
-10 * * * * cd projects/tor-v2dir && ./fetch-all-v3
-40 * * * * cd projects/tor-v2dir && ./fetch-all
-15 3 6 * * cd projects/tor-v2dir && ./sort-into-month-folder > /dev/null && ./tar-them-up last > /dev/null

+ 0 - 77
contrib/directory-archive/fetch-all

@@ -1,77 +0,0 @@
-#!/bin/bash
-
-# Download all current v2 directory status documents, then download
-# the descriptors and extra info documents.
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-TZ=UTC
-export TZ
-
-DIRSERVERS=""
-DIRSERVERS="$DIRSERVERS 86.59.21.38:80"		# tor26
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9031"	# moria1
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9032"	# moria2
-DIRSERVERS="$DIRSERVERS 194.109.206.212:80"	# dizum
-
-DATEDIR=$(date "+%Y/%m/%d")
-TIME=$(date "+%Y%m%d-%H%M%S")
-
-. fetch-all-functions
-
-statuses=""
-for dirserver in $DIRSERVERS; do
-	authorities=$(wget -q -O - http://$dirserver/tor/status/all | egrep '^fingerprint ' | awk '{print $2}')
-	if [ "$authorities" == "" ]; then
-		echo "Did not get a list of authorities from $dirserver, going to next" 2>&1
-		continue
-	fi
-
-	dir="status/$DATEDIR"
-	[ -d "$dir" ] || mkdir -p "$dir"
-
-	authprefix="$dir/$TIME-"
-	for fp in $authorities; do
-		wget -q -O "$authprefix$fp" http://$dirserver/tor/status/fp/"$fp"
-		bzip2 "$authprefix$fp"
-		statuses="$statuses $authprefix$fp.bz2"
-	done
-	if [ "$statuses" == "" ]; then
-		echo "Did not get any statuses from $dirserver, going to next" 2>&1
-		continue
-	else
-		break
-	fi
-done
-
-if [ "$statuses" = "" ]; then
-	echo "No statuses available" 2>&1
-	exit 1
-fi
-
-digests=$( for i in ` bzcat $statuses | awk '$1 == "r" {printf "%s=\n", $4}' | sort -u `; do
-		echo $i | \
-		base64-decode | \
-		perl -e 'undef $/; $a=<>; print unpack("H\*", $a),"\n";';
-	done )
-for digest in $digests; do
-	fetch_digest "$digest" "server-descriptor"
-done

+ 0 - 82
contrib/directory-archive/fetch-all-functions

@@ -1,82 +0,0 @@
-#!/bin/bash
-
-# function used by fetch-all* to download server descriptors and
-# extra info documents
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-fetch_digest() {
-	local digest
-	local objecttype
-	local urlpart
-	local pathpart
-	local target
-	local targetdir
-	local dirserver
-	local ei
-
-	digest="$1"
-	objecttype="$2"
-	if [ "$objecttype" = "server-descriptor" ] ; then
-		urlpart="server"
-		pathpart="server-descriptor"
-	elif [ "$objecttype" = "extra-info" ] ; then
-		urlpart="extra"
-		pathpart="extra-info"
-	else
-		echo "Called fetch_digest with illegal objecttype '$objecttype'" >&2
-		exit 1
-	fi
-	target=$( echo $digest | sed -e 's#^\(.\)\(.\)#'"$pathpart"'/\1/\2/\1\2#' )
-	targetdir=$( dirname $target )
-	[ -d "$targetdir" ] || mkdir -p "$targetdir"
-	if ! [ -e "$target" ]; then
-		for dirserver in $DIRSERVERS; do
-			wget -q -O "$target" http://$dirserver/tor/$urlpart/d/"$digest" || rm -f "$target"
-			if [ -s "$target" ]; then
-				if egrep '^opt extra-info-digest ' "$target" > /dev/null; then
-					ei=$( egrep '^opt extra-info-digest ' "$target" | awk '{print $3}' | tr 'A-F' 'a-f' )
-					fetch_digest "$ei" "extra-info"
-				elif egrep '^extra-info-digest ' "$target" > /dev/null; then
-					ei=$( egrep '^extra-info-digest ' "$target" | awk '{print $2}' | tr 'A-F' 'a-f' )
-					fetch_digest "$ei" "extra-info"
-				fi
-				break
-			else
-				rm -f "$target"
-			fi
-		done
-	fi
-	#if ! [ -e "$target" ]; then
-	#	echo "$objecttype $digest" >> failed
-	#fi
-}
-
-if [ -x /usr/bin/base64 ] ; then
-	base64-decode() {
-		/usr/bin/base64 -d
-	}
-else
-	base64-decode() {
-		perl -MMIME::Base64 -e 'print decode_base64(<>)'
-	}
-fi

+ 0 - 111
contrib/directory-archive/fetch-all-v3

@@ -1,111 +0,0 @@
-#!/bin/bash
-
-# Download all current v3 directory status votes and the consensus document,
-# then download the descriptors and extra info documents.
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-TZ=UTC
-export TZ
-
-DIRSERVERS=""
-DIRSERVERS="$DIRSERVERS 86.59.21.38:80"		# tor26
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9031"	# moria1
-DIRSERVERS="$DIRSERVERS 216.224.124.114:9030"	# ides
-DIRSERVERS="$DIRSERVERS 80.190.246.100:80"	# gabelmoo
-#DIRSERVERS="$DIRSERVERS 140.247.60.64:80"	# lefkada
-DIRSERVERS="$DIRSERVERS 194.109.206.212:80"	# dizum
-#DIRSERVERS="$DIRSERVERS 128.31.0.34:9032"	# moria2
-DIRSERVERS="$DIRSERVERS 213.73.91.31:80"	# dannenberg
-DIRSERVERS="$DIRSERVERS 208.83.223.34:443"	# urras
-TIME=$(date "+%Y%m%d-%H%M%S")
-
-. fetch-all-functions
-
-consensus=""
-tmpdir="consensus/tmp"
-[ -d "$tmpdir" ] || mkdir -p "$tmpdir"
-for dirserver in $DIRSERVERS; do
-	wget -q -O "$tmpdir/$TIME-consensus" http://$dirserver/tor/status-vote/current/consensus
-	if [ "$?" != 0 ]; then
-		rm -f "$tmpdir/$TIME-consensus"
-		continue
-	fi
-
-	freshconsensus="$tmpdir/$TIME-consensus"
-
-	timestamp=$(awk '$1=="valid-after" {printf "%s-%s", $2, $3}' < "$freshconsensus")
-	datedir=$(awk '$1=="valid-after" {printf "%s", $2}' < "$freshconsensus" | tr '-' '/')
-	dir="consensus/$datedir"
-	[ -d "$dir" ] || mkdir -p "$dir"
-
-
-	consensus="$dir/$timestamp-consensus.bz2"
-	if ! [ -e "$consensus" ]; then
-		# the consensus is new, or at least we don't have it yet
-		bzip2 "$freshconsensus"
-		mv "$freshconsensus.bz2" "$consensus"
-		break
-	fi
-
-	rm -f "$freshconsensus"
-	echo "Consensus from $timestamp (gotten from $dirserver) already exists!" >&2
-	# maybe there is a newer one on a different authority, so try again.
-done
-
-if [ "$consensus" = "" ]; then
-	echo "No consensus available" 2>&1
-	exit 1
-fi
-
-
-votes=$(bzcat $consensus | awk '$1 == "vote-digest" {print $2}')
-for vote in $votes; do
-	for dirserver in $DIRSERVERS; do
-		wget -q -O "$dir/$TIME-vote-$vote" http://$dirserver/tor/status-vote/current/d/$vote
-		if [ "$?" != 0 ]; then
-			rm -f "$dir/$TIME-vote-$vote"
-			continue
-		fi
-		break
-	done
-	if [ -e "$dir/$TIME-vote-$vote" ]; then
-		voteridentity=$(awk '$1=="fingerprint" {print $2}' < "$dir/$TIME-vote-$vote")
-		if [ -e "$dir/$timestamp-vote-$voteridentity-$vote.bz2" ]; then
-			echo "Vote $vote from $voteridentity already exists!" >&2
-			rm -f "$dir/$TIME-vote-$vote"
-			continue;
-		fi
-		mv "$dir/$TIME-vote-$vote"  "$dir/$timestamp-vote-$voteridentity-$vote"
-		bzip2 "$dir/$timestamp-vote-$voteridentity-$vote"
-	else
-		echo "Failed to get vote $vote!" >&2
-	fi
-done
-
-digests=$( for i in ` bzcat $consensus | awk '$1 == "r" {printf "%s=\n", $4}' | sort -u `; do
-		echo $i | \
-		base64-decode | \
-		perl -e 'undef $/; $a=<>; print unpack("H\*", $a),"\n";';
-	done )
-for digest in $digests; do
-	fetch_digest "$digest" "server-descriptor"
-done

+ 0 - 74
contrib/directory-archive/sort-into-month-folder

@@ -1,74 +0,0 @@
-#!/usr/bin/perl -w
-
-# Sort dumped consensuses, statuses, descriptors etc into per-month folders.
-
-# Copyright (c) 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-use strict;
-use File::Find;
-use File::Basename;
-use File::stat;
-use Time::Local;
-
-
-my $cutofftime;
-
-
-sub wanted() {
-	return unless -f;
-	my $mtime = stat($_)->mtime;
-	return if $mtime >= $cutofftime;
-
-	my (undef,undef,undef,undef,$mon,$year,undef,undef,undef) = gmtime $mtime;
-
-	my $bn = basename $_;
-	my $dn = dirname $_;
-	my @path = split /\//, $dn;
-	$path[0] .= sprintf 's-%4d-%02d', 1900+$year, $mon+1;
-	$dn = join '/', @path;
-
-	if (! -d $dn) {
-		my $p = '.';
-		for my $component (@path) {
-			$p .= '/'.$component;
-			if (! -d $p) {
-				mkdir $p or die ("Cannot mkdir $p: $!\n");
-			};
-		};
-	};
-
-	print "$_ -> $dn/$bn\n";
-	rename $_, $dn.'/'.$bn or die ("Cannot rename $_ to $dn/$bn: $!\n");
-};
-
-my (undef,undef,undef,undef,$mon,$year,undef,undef,undef) = gmtime(time - 5*24*3600);
-$cutofftime = timegm(0,0,0,1,$mon,$year);
-find(	{
-		wanted		=> \&wanted,
-		no_chdir	=> 1
-	},
-	'server-descriptor');
-
-find(	{
-		wanted		=> \&wanted,
-		no_chdir	=> 1
-	},
-	'extra-info');

+ 0 - 127
contrib/directory-archive/tar-them-up

@@ -1,127 +0,0 @@
-#!/bin/sh
-
-# Tar up dumped consensuses, statuses, descriptors etc from per-month folders
-# into per-month tarballs.
-
-# Copyright (c) 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-set -e
-set -x
-set -u
-
-usage() {
-	echo "Usage: $0 <year> <month>" >&2
-	echo "       $0 last            (does last month)" >&2
-	exit 1
-}
-
-if [ -z "${1:-}" ]; then
-	usage
-fi
-
-if [ "$1" = "last" ]; then
-	year=`date --date="last month" +'%Y'`
-	month=`date --date="last month" +'%m'`
-elif [ -z "${2:-}" ]; then
-	usage
-else
-	year="$1"
-	month="$2"
-fi
-
-if [ "$year" -lt 2000 ] || [ "$year" -gt 2020 ] ||
-   [ "$month" -lt 1 ] || [ "$month" -gt 12 ] ||
-   [ "`echo -n $month | wc -c`" != 2 ]; then
-	usage
-fi
-
-
-this_year=`date --utc +'%Y'`
-this_month=`date --utc +'%m'`
-
-if [ "`date -d $this_year-$this_month-01 +%s`" -le "`date -d $year-$month-01 +%s`" ]; then
-	echo "Date in the future or current month?" >&2
-	exit 1
-fi
-
-
-
-
-
-for file in \
-	"extra-infos-$year-$month.tar.bz2"		\
-	"server-descriptors-$year-$month.tar.bz2"	\
-	"consensuses-$year-$month.tar.bz2"		\
-	"statuses-$year-$month.tar.bz2"			\
-	; do
-	if [ -e "$file" ]; then
-		echo "$file already exists" >&2
-		exit 1
-	fi
-done
-
-for dir in \
-	"extra-infos-$year-$month"		\
-	"server-descriptors-$year-$month"	\
-	"consensus/$year/$month"		\
-	"status/$year/$month"			\
-	; do
-	if ! [ -d "$dir" ]; then
-		echo "$dir not found" >&2
-		exit 1
-	fi
-done
-
-for dir in \
-	"consensuses-$year-$month"		\
-	"statuses-$year-$month"			\
-	; do
-	if [ -e "$dir" ]; then
-		echo "$dir already exists" >&2
-		exit 1
-	fi
-done
-
-for kind in consensus status; do
-	mv "$kind"/$year/$month "$kind"es-$year-$month
-	find "$kind"es-$year-$month -type f -name '*.bz2' -print0 | xargs -0 bunzip2 -v
-	tar cjvf "$kind"es-$year-$month.tar.bz2 "$kind"es-$year-$month
-	rm -rf "$kind"es-$year-$month
-done
-
-for kind in extra-infos server-descriptors; do
-	tar cjvf "$kind"-$year-$month.tar.bz2 "$kind"-$year-$month
-	rm -rf "$kind"-$year-$month
-done
-
-
-
-[ -d Archive ] || mkdir Archive
-
-for kind in consensus status; do
-	t="$kind"es-$year-$month.tar.bz2
-	! [ -e Archive/"$t" ] && mv "$t" Archive/"$t"
-done
-
-for kind in extra-infos server-descriptors; do
-	t="$kind"-$year-$month.tar.bz2
-	! [ -e Archive/"$t" ] && mv "$t" Archive/"$t"
-done

+ 0 - 0
contrib/rc.subr → contrib/dist/rc.subr


+ 0 - 0
contrib/suse/tor.sh.in → contrib/dist/suse/tor.sh.in


+ 0 - 0
contrib/tor.sh.in → contrib/dist/tor.sh.in


+ 0 - 0
contrib/torctl.in → contrib/dist/torctl.in


+ 13 - 15
contrib/include.am

@@ -1,18 +1,16 @@
-include contrib/suse/include.am
 
 EXTRA_DIST+= \
-	contrib/cross.sh			\
-	contrib/exitlist			\
-	contrib/linux-tor-prio.sh		\
-	contrib/package_nsis-mingw.sh		\
-	contrib/rc.subr				\
-	contrib/tor-ctrl.sh			\
-	contrib/tor-exit-notice.html		\
-	contrib/tor-mingw.nsi.in		\
-	contrib/tor.ico				\
-	contrib/tor.nsi.in			\
-	contrib/tor.sh				\
-	contrib/torify				\
-	contrib/torctl
+	contrib/client-tools/torify			\
+	contrib/dist/rc.subr				\
+	contrib/dist/suse/tor.sh.in			\
+	contrib/dist/tor.sh				\
+	contrib/dist/torctl				\
+	contrib/operator-tools/linux-tor-prio.sh	\
+	contrib/operator-tools/tor-exit-notice.html	\
+	contrib/or-tools/exitlist			\
+	contrib/win32build/package_nsis-mingw.sh	\
+	contrib/win32build/tor-mingw.nsi.in		\
+	contrib/win32build/tor.ico			\
+	contrib/win32build/tor.nsi.in
 
-bin_SCRIPTS+= contrib/torify
+bin_SCRIPTS+= contrib/client-tools/torify

+ 0 - 79
contrib/make-signature.sh

@@ -1,79 +0,0 @@
-#!/bin/sh
-
-set -eu
-
-if test "$1" = "" ; then
-    echo "I need a package as an argument."
-    exit 1
-fi
-
-PACKAGEFILE=$1
-
-if test ! -f "$PACKAGEFILE" ; then
-    echo "$PACKAGEFILE is not a file."
-    exit 1
-fi
-
-DIGESTNAME=sha256
-DIGESTOUTPUT=`gpg --print-md $DIGESTNAME $PACKAGEFILE`
-
-RAWDIGEST=`gpg --print-md $DIGESTNAME $PACKAGEFILE | sed -e 's/^[^ ]*: //' `
-
-# These regexes are a little fragile, but I think they work for us.
-VERSION=`echo $PACKAGEFILE | sed -e 's/^[a-z\-]*//' -e 's/\.[\.a-z]*$//' `
-PACKAGE=`echo $PACKAGEFILE | sed -e 's/-[0-9].*//'`
-SIGFILE_UNSIGNED="$PACKAGE-$VERSION-signature"
-SIGNATUREFILE="$SIGFILE_UNSIGNED.asc"
-
-cat >$SIGFILE_UNSIGNED <<EOF
-This is the signature file for "$PACKAGEFILE",
-which contains version "$VERSION" of "$PACKAGE".
-
-Here's how to check this signature.
-
-1) Make sure that this is really a signature file, and not a forgery,
-   with:
-
-     "gpg --verify $SIGNATUREFILE"
-
-   The key should be one of the keys that signs the Tor release; the
-   official Tor website has more information on those.
-
-   If this step fails, then either you are missing the correct key, or
-   this signature file was not really signed by a Tor packager.
-   Beware!
-
-2) Make sure that the package you wanted is indeed "$PACKAGE", and that
-   its version you wanted is indeed "$VERSION".  If you wanted a
-   different package, or a different version, this signature file is
-   not the right one!
-
-3) Now that you're sure you have the right signature file, make sure
-   that you got the right package.  Check its $DIGESTNAME digest with
-
-     "gpg --print-md $DIGESTNAME $PACKAGEFILE"
-
-   The output should match this, exactly:
-
-$DIGESTOUTPUT
-
-   Make sure that every part of the output matches: don't just check the
-   first few characters.  If the digest does not match, you do not have
-   the right package file.  It could even be a forgery.
-
-Frequently asked questions:
-
-Q: Why not just sign the package file, like you used to do?
-A: GPG signatures authenticate file contents, but not file names.  If
-   somebody gave you a renamed file with a matching renamed signature
-   file, the signature would still be given as "valid".
-
--- 
-FILENAME: $PACKAGEFILE
-PACKAGE: $PACKAGE
-VERSION: $VERSION
-DIGESTALG: $DIGESTNAME
-DIGEST: $RAWDIGEST
-EOF
-
-gpg --clearsign $SIGFILE_UNSIGNED

+ 0 - 169
contrib/mdd.py

@@ -1,169 +0,0 @@
-#!/usr/bin/env python2.3
-
-import re, sys
-import textwrap
-
-files = sys.argv[1:]
-funcDeclaredIn = {}
-fileDeclares = {}
-functionCalls = {}
-funcCalledByFile = {}
-funcCalledByFunc = {}
-
-cpp_re = re.compile(r'//.*$')
-c_re = re.compile(r'/[*]+(?:[^*]+|[*]+[^/*])*[*]+/', re.M|re.S)
-
-for fname in files:
-    f = open(fname, 'r')
-    curFunc = "???"
-    functionCalls.setdefault(curFunc,{})
-    lineno = 0
-    body = f.read()
-    body = cpp_re.sub(" ",body)
-    body = c_re.sub(" ",body)
-    #if fname == 'dns.c': print body
-    for line in body.split("\n"):
-        lineno += 1
-        m = re.match(r'^[^\s/].*\s(\w+)\([^;]*$', line)
-        if m:
-            #print line, "->", m.group(1)
-            curFunc = m.group(1)
-            if curFunc[0] == '_': curFunc = curFunc[1:]
-            functionCalls.setdefault(curFunc,{})
-            funcDeclaredIn[m.group(1)] = fname
-            fileDeclares.setdefault(fname, {})[m.group(1)] = 1
-            continue
-        m = re.match(r'^(\w+)\([^;]', line)
-        if m:
-            #print line, "->", m.group(1)
-            curFunc = m.group(1)
-            if curFunc[0] == '_': curFunc = curFunc[1:]
-            functionCalls.setdefault(curFunc,{})
-            funcDeclaredIn[m.group(1)] = fname
-            fileDeclares.setdefault(fname, {})[m.group(1)] = 1
-            continue
-        while line:
-            m = re.search(r'(\w+)\(', line)
-            if not m: break
-            #print fname, line, curFunc, "->", m.group(1)
-            fn = m.group(1)
-            if fn[0] == '_':
-                fn = fn[1:]
-            functionCalls[curFunc][m.group(1)] = 1
-            #if curFunc == "???":
-            #    print ">>!!!!! at %s:%s"%(fname,lineno)
-            funcCalledByFunc.setdefault(m.group(1), {})[curFunc]=1
-            funcCalledByFile.setdefault(m.group(1), {})[fname]=1
-            line = line[m.end():]
-
-    f.close()
-
-fileUsers = {}
-fileUses = {}
-
-for fname in files:
-    print "%s:"%fname
-    users = {}
-    for func in fileDeclares[fname]:
-        cb = funcCalledByFile.get(func,{}).keys()
-        for f in cb: users[f] = 1
-        #print "users[%s] = %s"%(f,users[f])
-    users = users.keys()
-    users.sort()
-    fileUsers[fname] = users
-    for user in users:
-        fileUses.setdefault(user,[]).append(fname)
-        if user == fname: continue
-        print "  from %s:"%user
-        for func in fileDeclares[fname]:
-            if funcCalledByFile.get(func,{}).get(user,0):
-                print "    %s()"%func
-
-def wrap(s, pre):
-    return textwrap.fill(s,
-                         width=77, initial_indent=pre,
-                         subsequent_indent=" "*len(pre))
-
-for fname in files:
-    print
-    print "===== %s"%fname
-    print wrap(" ".join(fileUses[fname]),
-               "        Calls: ")
-    print wrap(" ".join(fileUsers[fname]),
-              "    Called by: ")
-
-print "=============================="
-
-funcnames = functionCalls.keys()
-funcnames.sort()
-
-if 1:
-    for func in funcnames:
-        print "===== %s"%func
-        callers = [c for c in funcCalledByFunc.get(func,{}).keys()
-                   if c != "???"]
-        callers.sort()
-        called = [c for c in functionCalls[func].keys() if c != "???" and
-                  c in funcnames]
-        called.sort()
-        print wrap(" ".join(callers),
-                   "  Called by:")
-        print wrap(" ".join(called),
-                   "      Calls:")
-
-# simple topological sort.
-functionDepth = {}
-while 1:
-    BIG = 1000000
-    any = 0
-    for func in funcnames:
-        if functionDepth.has_key(func):
-            continue
-        called = [c for c in functionCalls[func] if c != func and
-                  functionCalls.has_key(c)]
-        if len(called) == 0:
-            functionDepth[func] = 0
-            #print "Depth(%s)=%s"%(func,0)
-            any = 1
-            continue
-        calledDepths = [ functionDepth.get(c,BIG) for c in called ]
-        if max(calledDepths) < BIG:
-            d = functionDepth[func] = max(calledDepths)+1
-            #print "Depth(%s)=%s"%(func,d)
-            any = 1
-            continue
-    if not any:
-        break
-
-# compute lexical closure.
-cycCalls = {}
-for func in funcnames:
-    if not functionDepth.has_key(func):
-        calls = [ c for c in functionCalls[func] if c != func and
-                  functionCalls.has_key(c) and not functionDepth.has_key(c)]
-        cycCalls[func] = d = {}
-        for c in calls:
-            d[c]=1
-
-cycNames = cycCalls.keys()
-while 1:
-    any = 0
-    for func in cycNames:
-        L = len(cycCalls[func])
-        for called in cycCalls[func].keys():
-            cycCalls[func].update(cycCalls[called])
-        if L != len(cycCalls[func]):
-            any = 1
-    if not any:
-        break
-
-depthList = [ (v,k) for k,v in functionDepth.items() ]
-depthList.sort()
-cycList = [ (len(v),k) for k,v in cycCalls.items() ]
-cycList.sort()
-for depth,name in depthList:
-    print "Depth[%s]=%s"%(name,depth)
-for bredth,name in cycList:
-    print "Width[%s]=%s"%(name,bredth)
-
-print "Sorted %s / %s"%(len(functionDepth),len(funcnames))

+ 0 - 74
contrib/netinst.nsi

@@ -1,74 +0,0 @@
-!include "MUI.nsh"
-!include "LogicLib.nsh"
-!include "FileFunc.nsh"
-  
-!define VERSION "0.2.1.13"
-!define INSTALLER "TorNetInstaller.exe"
-!define WEBSITE "https://www.torproject.org/"
-!define LICENSE "LICENSE"
- 
-SetCompressor /SOLID BZIP2
-RequestExecutionLevel user
-OutFile ${INSTALLER}
-InstallDir "$TEMP\TorInstTmp"
-SetOverWrite on
-Name "Tor Network Installer"
-Caption "Tor Network Installer"
-BrandingText "Tor Network Installer"
-CRCCheck on
-XPStyle on
-ShowInstDetails hide
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Tor"
-VIAddVersionKey "Comments" "${WEBSITE}"
-VIAddVersionKey "LegalTrademarks" "Three line BSD"
-VIAddVersionKey "LegalCopyright" "©2004-2011, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
-VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_ICON "torinst32.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_LANGUAGE "English"
-
-Section "Tor" Tor
-	SectionIn RO
-	SetOutPath $INSTDIR
-	Call ExtractPackages
-        Call RunInstallers
-        Call LaunchVidalia
-	Call CleanUpTemp
-SectionEnd
-
-Function ExtractPackages
-	File "license.msi"
-	File "thandy.msi"
-FunctionEnd
-
-Function RunInstallers
-	ExecWait 'msiexec /i "$INSTDIR\license.msi" /qn'
-	ExecWait 'msiexec /i "$INSTDIR\thandy.msi" NOSC=1 /qn'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Tor Updates" /bundleinfo/tor/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Tor Updates" /bundleinfo/tor/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
-	ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
-        ExpandEnvStrings $0 %COMSPEC%
-        Exec '"$0" /C "$INSTDIR\tbcheck.bat"'
-FunctionEnd
-
-Function LaunchVidalia
-	SetOutPath "$LOCALAPPDATA\Programs\Vidalia"
-	Exec 'vidalia.exe -loglevel info -logfile log.txt'
-FunctionEnd
-
-Function CleanUpTemp
-	ExecWait '"del" "$INSTDIR\license.msi"'
-	ExecWait '"del" "$INSTDIR\thandy.msi"'
-	SetOutPath $TEMP
-	RMDir /r $TEMP\TorInstTmp
-FunctionEnd
-

+ 0 - 0
contrib/linux-tor-prio.sh → contrib/operator-tools/linux-tor-prio.sh


+ 0 - 0
contrib/tor-exit-notice.html → contrib/operator-tools/tor-exit-notice.html


+ 0 - 0
contrib/tor.logrotate.in → contrib/operator-tools/tor.logrotate.in


+ 0 - 0
contrib/check-tor → contrib/or-tools/check-tor


+ 0 - 0
contrib/checksocks.pl → contrib/or-tools/checksocks.pl


+ 0 - 0
contrib/exitlist → contrib/or-tools/exitlist


+ 0 - 90
contrib/package_nsis-weasel.sh

@@ -1,90 +0,0 @@
-#!/bin/sh
-
-set -e
-
-#
-# Script to package a Tor installer on win32.  This script assumes that
-# you have already built Tor, that you are running cygwin, and that your
-# environment is basically exactly the same as Nick's.
-
-if ! [ -d Win32Build ] || ! [ -d contrib ]; then
-	echo "No Win32Build and/or no contrib directory here.  Are we in the right place?" >&2
-	exit 1
-fi
-
-rm -rf win_tmp
-mkdir win_tmp
-mkdir win_tmp/bin
-mkdir win_tmp/contrib
-mkdir win_tmp/doc
-mkdir win_tmp/doc/website
-mkdir win_tmp/doc/design-paper
-mkdir win_tmp/doc/contrib
-mkdir win_tmp/src
-mkdir win_tmp/src/config
-mkdir win_tmp/tmp
-
-cp Win32Build/vc7/Tor/Debug/Tor.exe win_tmp/bin/tor.exe
-cp Win32Build/vc7/tor_resolve/Debug/tor_resolve.exe win_tmp/bin
-cp ../c-windows-system32/libeay32.dll win_tmp/bin
-cp ../c-windows-system32/ssleay32.dll win_tmp/bin
-
-man2html doc/tor.1.in > win_tmp/tmp/tor-reference.html
-man2html doc/tor-resolve.1 > win_tmp/tmp/tor-resolve.html
-
-clean_newlines() {
-    perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg;' $1 >$2
-}
-
-clean_localstatedir() {
-    perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg; s{\@LOCALSTATEDIR\@/(lib|log)/tor/}{C:\\Documents and Settings\\Application Data\\Tor\\}' $1 >$2
-}
-
-for fn in \
-	doc/HACKING \
-	doc/control-spec.txt \
-	doc/dir-spec.txt \
-	doc/rend-spec.txt \
-	doc/socks-extensions.txt \
-	doc/tor-spec.txt \
-	doc/version-spec.txt \
-	\
-	doc/website/* \
-	; do
-    clean_newlines "$fn" win_tmp/"$fn"
-done
-mmv win_tmp/doc/website/"*.html.*" win_tmp/doc/website/"#1.#2.html"
-
-cp doc/design-paper/tor-design.pdf win_tmp/doc/design-paper/tor-design.pdf
-
-for fn in tor-reference.html tor-resolve.html; do \
-    clean_newlines win_tmp/tmp/$fn win_tmp/doc/$fn
-done
-
-for fn in README AUTHORS ChangeLog LICENSE; do \
-    clean_newlines $fn win_tmp/$fn
-done
-
-clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample
-
-cp contrib/tor.nsi.in win_tmp/contrib/tor.nsi
-(
-	echo '/WEBSITE-FILES-HERE/'
-	echo 'a' # append
-	for fn in win_tmp/doc/website/*; do
-		echo -n 'File "..\doc\website\'
-		echo -n "`basename $fn`"
-		echo '"'
-	done
-	echo "." # end input
-	echo "w" # write
-	echo "q" # quit
-) | ed win_tmp/contrib/tor.nsi
-
-cd win_tmp/contrib
-
-echo "Now run"
-echo '  t:'
-echo '  cd \tor\win_tmp\contrib'
-echo '  c:\programme\nsis\makensis tor.nsi'
-echo '  move tor-*.exe ../../..'

+ 0 - 57
contrib/package_nsis.sh

@@ -1,57 +0,0 @@
-#!/bin/sh
-#
-# Script to package a Tor installer on win32.  This script assumes that
-# you have already built Tor, that you are running cygwin, and that your
-# environment is basically exactly the same as Nick's.
-
-# This file is obsolete.
-
-rm -rf win_tmp
-mkdir win_tmp
-mkdir win_tmp/bin
-mkdir win_tmp/contrib
-mkdir win_tmp/doc
-mkdir win_tmp/doc/design-paper
-mkdir win_tmp/doc/contrib
-mkdir win_tmp/src
-mkdir win_tmp/src/config
-mkdir win_tmp/tmp
-
-cp Win32Build/vc7/Tor/Debug/Tor.exe win_tmp/bin/tor.exe
-cp Win32Build/vc7/tor_resolve/Debug/tor_resolve.exe win_tmp/bin
-cp c:/windows/system32/libeay32.dll win_tmp/bin
-cp c:/windows/system32/ssleay32.dll win_tmp/bin
-
-man2html doc/tor.1.in > win_tmp/tmp/tor-reference.html
-man2html doc/tor-resolve.1 > win_tmp/tmp/tor-resolve.html
-
-clean_newlines() {
-    perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg;' $1 >$2
-}
-
-clean_localstatedir() {
-    perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg; s{\@LOCALSTATEDIR\@/(lib|log)/tor/}{C:\\Documents and Settings\\Application Data\\Tor\\}' $1 >$2
-}
-
-for fn in tor-spec.txt HACKING rend-spec.txt control-spec.txt \
-   tor-doc.html tor-doc.css version-spec.txt; do
-    clean_newlines doc/$fn win_tmp/doc/$fn
-done
-
-cp doc/design-paper/tor-design.pdf win_tmp/doc/design-paper/tor-design.pdf
-
-for fn in tor-reference.html tor-resolve.html; do \
-    clean_newlines win_tmp/tmp/$fn win_tmp/doc/$fn
-done
-
-for fn in README AUTHORS ChangeLog LICENSE; do \
-    clean_newlines $fn win_tmp/$fn
-done
-
-clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample
-
-cp contrib/tor.nsi win_tmp/contrib
-
-cd win_tmp/contrib
-makensis tor.nsi
-mv tor-*.exe ../..

+ 0 - 100
contrib/polipo/Makefile.mingw

@@ -1,100 +0,0 @@
-PREFIX = Polipo
-BINDIR = $(PREFIX)\bin
-MANDIR = $(PREFIX)\man
-INFODIR = $(PREFIX)\info
-LOCAL_ROOT = $(PREFIX)
-DISK_CACHE_ROOT = $(PREFIX)\cache
-
-# To compile with Unix CC:
-
-# CDEBUGFLAGS=-O
-
-# To compile with GCC:
-
-# CC = gcc
-# CDEBUGFLAGS = -Os -g -Wall -std=gnu99
-CDEBUGFLAGS = -Os -g -Wall
-# CDEBUGFLAGS = -Os -Wall
-# CDEBUGFLAGS = -g -Wall
-
-# To compile on a pure POSIX system:
-
-# CC = c89
-# CC = c99
-# CDEBUGFLAGS=-O
-
-# To compile with icc 7, you need -restrict.  (Their bug.)
-
-# CC=icc
-# CDEBUGFLAGS = -O -restrict
-
-# On System V (Solaris, HP/UX) you need the following:
-
-# PLATFORM_DEFINES = -DSVR4
-
-# On Solaris, you need the following:
-
-# LDLIBS = -lsocket -lnsl -lresolv
-
-# On mingw, you need
-
- EXE=.exe
- LDLIBS = -lwsock32 -lregex
-
-FILE_DEFINES = -DHAVE_REGEX
-
-# You may optionally also add any of the following to DEFINES:
-#
-#  -DNO_DISK_CACHE to compile out the on-disk cache and local web server;
-#  -DNO_IPv6 to avoid using the RFC 3493 API and stick to stock
-#      Berkeley sockets;
-#  -DHAVE_IPv6 to force the use of the RFC 3493 API on systems other
-#      than GNU/Linux and BSD (let me know if it works);
-#  -DNO_FANCY_RESOLVER to compile out the asynchronous name resolution
-#      code;
-#  -DNO_STANDARD_RESOLVER to compile out the code that falls back to
-#      gethostbyname/getaddrinfo when DNS requests fail;
-#  -DNO_TUNNEL to compile out the code that handles CONNECT requests;
-#  -DNO_SOCKS to compile out the SOCKS gateway code.
-#  -DNO_FORBIDDEN to compile out the all of the forbidden URL code
-#  -DNO_REDIRECTOR to compile out the Squid-style redirector code
-#  -DNO_SYSLOG to compile out logging to syslog
-
-DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES)
-
-CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES)
-
-SRCS = util.c event.c io.c chunk.c atom.c object.c log.c diskcache.c main.c \
-       config.c local.c http.c client.c server.c auth.c tunnel.c \
-       http_parse.c parse_time.c dns.c forbidden.c \
-       md5import.c md5.c ftsimport.c fts_compat.c socks.c mingw.c
-
-OBJS = util.o event.o io.o chunk.o atom.o object.o log.o diskcache.o main.o \
-       config.o local.o http.o client.o server.o auth.o tunnel.o \
-       http_parse.o parse_time.o dns.o forbidden.o \
-       md5import.o ftsimport.o socks.o mingw.o
-
-polipo$(EXE): $(OBJS)
-	$(CC) $(CFLAGS) $(LDFLAGS) -o polipo$(EXE) $(OBJS) $(MD5LIBS) $(LDLIBS)
-
-ftsimport.o: ftsimport.c fts_compat.c
-
-md5import.o: md5import.c md5.c
-
-.PHONY: all install install.binary install.man
-
-all: polipo$(EXE) polipo.info html/index.html localindex.html
-
-TAGS: $(SRCS)
-	etags $(SRCS)
-
-.PHONY: clean
-
-clean:
-	-rm -f polipo$(EXE) *.o *~ core TAGS gmon.out
-	-rm -f polipo.cp polipo.fn polipo.log polipo.vr
-	-rm -f polipo.cps polipo.info* polipo.pg polipo.toc polipo.vrs
-	-rm -f polipo.aux polipo.dvi polipo.ky polipo.ps polipo.tp
-	-rm -f polipo.dvi polipo.ps polipo.ps.gz polipo.pdf polipo.html
-	-rm -rf ./html/
-	-rm -f polipo.man.html

+ 0 - 47
contrib/polipo/README

@@ -1,47 +0,0 @@
-Copyright 2007-2008, Andrew Lewman
-Copyright 2009-2011, The Tor Project
-
-----------------
-General Comments
-----------------
-
-These are some hacks for making polipo work and install a package native
-to Windows.
-
-They need some work before they can be committed upstream:
-  - Change the Makefile so it has a specific build such as "make
-    dist-win32"
-  - Configure the options for tor in polipo config, just leave them
-    commented out for easy activation.
-  - Work out better polipo config options for Tor.
-
-As always, I'm happy to accept patches.
-
---------------------------
-Pre-requisites for Windows
---------------------------
-
-Polipo for Win32 requires the mingw gnu regex library and dlls at
-http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=73286&release_id=140957
-
-You'll need to download the -bin and -dev tarballs.  And extract them
-into your MinGW directory.
-
-Instructions for building polipo under mingw32 for Windows:
-1) Copy Makefile.mingw over Makefile.
-2) Run 'make'. 
-
-You should have a polipo.exe in the current directory.
-
--------------------------------------------
-Creating an installation package in Windows
--------------------------------------------
-
-If you want to build an installer using the Nullsoft Installer, install
-the NSI Compiler.  In Windows Explorer, navigate to the directory in
-which you placed polipo-mingw.nsi.  Right click on polipo-mingw.nsi and
-choose Compile NSIS Script.  You'll then create a polipo installer.
-
-The Polipo NSI installer assumes libgnurx-0.dll is in the same directory as polipo.exe.
-You'll need to copy libgnurx-0.dll into "./" in order to make the
-installation package.

+ 0 - 172
contrib/polipo/polipo-mingw.nsi

@@ -1,172 +0,0 @@
-;polipo-mingw.nsi - A basic win32 installer for Polipo
-; Originally written by J Doe.
-; Modified by Andrew Lewman
-; This is licensed under a Modified BSD license.
-;-----------------------------------------
-;
-!include "MUI.nsh"
-
-!define VERSION "1.0.4.0-forbidden-1"
-!define INSTALLER "polipo-${VERSION}-win32.exe"
-!define WEBSITE "http://www.pps.jussieu.fr/~jch/software/polipo/"
-
-!define LICENSE "COPYING"
-;BIN is where it expects to find polipo.exe
-!define BIN "."
-
-SetCompressor lzma
-OutFile ${INSTALLER}
-InstallDir $PROGRAMFILES\Polipo
-SetOverWrite ifnewer
-
-Name "Polipo"
-Caption "Polipo ${VERSION} Setup"
-BrandingText "A Caching Web Proxy"
-CRCCheck on
-XPStyle on
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Polipo: A caching web proxy"
-VIAddVersionKey "Comments" "http://www.pps.jussieu.fr/~jch/software/polipo/"
-VIAddVersionKey "LegalTrademarks" "See COPYING"
-VIAddVersionKey "LegalCopyright" "©2008, Juliusz Chroboczek"
-VIAddVersionKey "FileDescription" "Polipo is a caching web proxy."
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_WELCOMEPAGE_TITLE "Welcome to the Polipo ${VERSION} Setup Wizard"
-!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Polipo ${VERSION}.\r\n\r\nIf you have previously installed Polipo and it is currently running, please exit Polipo first before continuing this installation.\r\n\r\n$_CLICK"
-!define MUI_ABORTWARNING
-!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico"
-!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!define MUI_HEADERIMAGE
-;!define MUI_FINISHPAGE_RUN 
-!define MUI_FINISHPAGE_LINK "Visit the Polipo website for the latest updates."
-!define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE}
-
-!insertmacro MUI_PAGE_WELCOME
-!insertmacro MUI_PAGE_COMPONENTS
-!insertmacro MUI_PAGE_DIRECTORY
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_PAGE_FINISH
-!insertmacro MUI_UNPAGE_WELCOME
-!insertmacro MUI_UNPAGE_CONFIRM
-!insertmacro MUI_UNPAGE_INSTFILES
-!insertmacro MUI_UNPAGE_FINISH
-!insertmacro MUI_LANGUAGE "English"
-
-Var configfile
-Var forbiddenfile
-
-;Sections
-;--------
-
-Section "Polipo" Polipo
-;Files that have to be installed for polipo to run and that the user
-;cannot choose not to install
-   SectionIn RO
-   SetOutPath $INSTDIR
-   File "${BIN}\polipo.exe"
-   File "${BIN}\COPYING"
-   File "${BIN}\CHANGES"
-   File "${BIN}\config.sample"
-   File "${BIN}\forbidden.sample"
-   File "${BIN}\README.Windows"
-   File "${BIN}\libgnurx-0.dll"
-   WriteIniStr "$INSTDIR\Polipo Website.url" "InternetShortcut" "URL" ${WEBSITE}
-
-   StrCpy $configfile "config"
-   StrCpy $forbiddenfile "forbidden"
-   SetOutPath $INSTDIR
-   ;If there's already a polipo config file, ask if they want to
-   ;overwrite it with the new one.
-   IfFileExists "$INSTDIR\config" "" endifconfig
-      MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Polipo config file.$\r$\nDo you want to overwrite it with the default sample config file?" IDNO yesreplace
-      Delete $INSTDIR\config
-      Goto endifconfig
-     yesreplace:
-      StrCpy $configfile ".\config.sample"
-   endifconfig:
-   File /oname=$configfile ".\config.sample"
-   ;If there's already a polipo forbidden file, ask if they want to
-   ;overwrite it with the new one.
-   IfFileExists "$INSTDIR\forbidden" "" endifforbidden
-      MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Polipo forbidden file.$\r$\nDo you want to overwrite it with the default sample forbidden file?" IDNO forbidyesreplace
-      Delete $INSTDIR\forbidden
-      Goto endifforbidden
-     forbidyesreplace:
-      StrCpy $forbiddenfile ".\forbidden.sample"
-   endifforbidden:
-   File /oname=$forbiddenfile ".\forbidden.sample"
-   IfFileExists "$INSTDIR\bin\*.*" "" endifbinroot
-	CreateDirectory "$INSTDIR\bin"
-   endifbinroot:
-   CopyFiles "${BIN}\localindex.html" $INSTDIR\index.html
-   IfFileExists "$INSTDIR\cache\*.*" "" endifcache
-	CreateDirectory "$INSTDIR\cache"
-   endifcache:
-SectionEnd
-
-SubSection /e "Shortcuts" Shortcuts
-
-Section "Start Menu" StartMenu
-   SetOutPath $INSTDIR
-   IfFileExists "$SMPROGRAMS\Polipo\*.*" "" +2
-      RMDir /r "$SMPROGRAMS\Polipo"
-   CreateDirectory "$SMPROGRAMS\Polipo"
-   CreateShortCut "$SMPROGRAMS\Polipo\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config" 
-   CreateShortCut "$SMPROGRAMS\Polipo\Poliporc.lnk" "Notepad.exe" "$INSTDIR\config"
-   CreateShortCut "$SMPROGRAMS\Polipo\Polipo Documentation.lnk" "$INSTDIR\www\index.html"
-   CreateShortCut "$SMPROGRAMS\Polipo\Polipo Website.lnk" "$INSTDIR\Polipo Website.url"
-   CreateShortCut "$SMPROGRAMS\Polipo\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-SectionEnd
-
-Section "Desktop" Desktop
-   SetOutPath $INSTDIR
-   CreateShortCut "$DESKTOP\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config" 
-SectionEnd
-
-Section /o "Run at startup" Startup
-   SetOutPath $INSTDIR
-   CreateShortCut "$SMSTARTUP\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config -f forbidden" "" "" "" SW_SHOWMINIMIZED
-SectionEnd
-
-SubSectionEnd
-
-Section "Uninstall"
-   Delete "$DESKTOP\Polipo.lnk"
-   Delete "$INSTDIR\polipo.exe"
-   Delete "$INSTDIR\Polipo Website.url"
-   Delete "$INSTDIR\config"
-   Delete "$INSTDIR\config.sample"
-   Delete "$INSTDIR\forbidden.sample"
-   Delete "$INSTDIR\libgnurx-0.dll"
-   Delete "$INSTDIR\COPYING"
-   Delete "$INSTDIR\CHANGES"
-   Delete "$INSTDIR\README.Windows"
-   StrCmp $INSTDIR $INSTDIR +2 ""
-      RMDir /r $INSTDIR
-   Delete "$INSTDIR\Uninstall.exe"
-   RMDir /r "$INSTDIR\Documents"
-   RMDir $INSTDIR
-   RMDir /r "$SMPROGRAMS\Polipo"
-   RMDir /r "$APPDATA\Polipo"
-   Delete "$SMSTARTUP\Polipo.lnk"
-   DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Polipo"
-SectionEnd
-
-Section -End
-    WriteUninstaller "$INSTDIR\Uninstall.exe"
-    ;The registry entries simply add the Polipo uninstaller to the Windows
-    ;uninstall list.
-    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Polipo" "DisplayName" "Polipo (remove only)"
-    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Polipo" "UninstallString" '"$INSTDIR\Uninstall.exe"'
-SectionEnd
-
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
-  !insertmacro MUI_DESCRIPTION_TEXT ${Polipo} "The core executable and config files needed for Polipo to run."
-  !insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} "Shortcuts to easily start Polipo"
-  !insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} "Shortcuts to access Polipo and its documentation from the Start Menu"
-  !insertmacro MUI_DESCRIPTION_TEXT ${Desktop} "A shortcut to start Polipo from the desktop"
-  !insertmacro MUI_DESCRIPTION_TEXT ${Startup} "Launches Polipo automatically at startup in a minimized window"
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
-

+ 0 - 84
contrib/sd

@@ -1,84 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader <peter@palfrader.org>
-# Copyright (c) 2008, 2009 Jacob Appelbaum <jacob@appelbaum.net>
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-# 
-# This small script fetches information about a server when given a nickname.
-# It currently uses the v2 dir information and not the v3 consensus by default.
-# It requires wget, perl, awk to function properly. This is based on a zsh
-# dotfile from weasel and adapted to be a small bash utility.
-# 
-
-# Feel free to set any authority you desire, we're using weasel's by default
-# You could also try the v3 directory infomation in weasel's dir authority:
-# http://tor.noreply.org/tor/status-vote/current/consensus
-#
-
-# Users can select between the two
-v3authority="http://tor.noreply.org/tor/status-vote/current/consensus";
-v2authority="http://tor.noreply.org:80/tor/status/authority";
-authority=$v2authority;
-
-function usage {
-    echo "Usage: $0 [-2|-3] nodenickname";
-}
-
-if [ -z "$1" ];
-then
-    usage;
-    exit;
-fi
-
-# Are we switching between v2 or v3?
-if [ "$1" == "-2" -o "$1" == "-3" ];
-then
-    if [ "$1" == "-2" -a -n "$2" ]; 
-    then    
-        authority=$v2authority;
-        nickname="$2";
-    elif [ "$1" == "-3" -a -n "$2" ];
-    then
-        authority=$v3authority;
-        nickname="$2";
-    else
-        usage;
-        exit;
-    fi
-else
-    nickname="$1";
-fi
-
-# Fetch it and decode the fingerprint 
-fp=`wget -q -O - $authority | \
-	awk '$1 == "r" && $2 == "'$nickname'" {printf "%s===", $3}' | \
-	perl -MMIME::Base64 -e "print unpack(\"H*\", decode_base64(<>)),\"\n\"";`
-
-# If we don't have a fingerprint, we don't have a match
-if [ "$fp" != "" ];
-then
-	wget -q -O - http://tor.noreply.org:80/tor/server/fp/$fp;
-	exit $?;	
-else
-	echo "It appears the nickname is not currently known by the directory" \
-         "authority."
-	exit 1;
-fi

+ 0 - 1
contrib/suse/include.am

@@ -1 +0,0 @@
-EXTRA_DIST+= contrib/suse/tor.sh

+ 0 - 212
contrib/tor-ctrl.sh

@@ -1,212 +0,0 @@
-#!/bin/bash
-#
-# tor-ctrl is a commandline tool for executing commands on a tor server via
-# the controlport.  In order to get this to work, add "ControlPort 9051" and
-# "CookieAuthentication 1" to your torrc and reload tor.  Or - if you want a
-# fixed password - leave out "CookieAuthentication 1" and use the following
-# line to create the appropriate HashedControlPassword entry for your torrc
-# (you need to change yourpassword, of course):
-#
-# echo "HashedControlPassword $(tor --hash-password yourpassword | tail -n 1)"
-#
-# tor-ctrl will return 0 if it was successful and 1 if not, 2 will be returned
-# if something (telnet, xxd) is missing.  4 will be returned if it executed
-# several commands from a file.
-#
-# For setting the bandwidth for specific times of the day, I suggest calling
-# tor-ctrl via cron, e.g.:
-#
-# 0 22 * * * /path/to/tor-ctrl -c "SETCONF bandwidthrate=1mb"
-# 0 7 * * *  /path/to/tor-ctrl -c "SETCONF bandwidthrate=100kb"
-#
-# This would set the bandwidth to 100kb at 07:00 and to 1mb at 22:00.  You can
-# use notations like 1mb, 1kb or the number of bytes.
-#
-# Many, many other things are possible, see
-#              https://www.torproject.org/svn/trunk/doc/spec/control-spec.txt
-#
-# Copyright (c) 2007 by Stefan Behte
-#
-# tor-ctrl is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# tor-ctrl is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with tor-ctrl; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#
-# Written by Stefan Behte
-#
-# Please send bugs, comments, wishes, thanks and success stories to:
-# Stefan dot Behte at gmx dot net
-#
-# Also have a look at my page:
-# http://ge.mine.nu/
-#
-# 2007-10-03: First version, only changing bandwidth possible.
-# 2007-10-04: Renaming to "tor-ctrl", added a lot of functions, it's now a
-#             general-purpose tool.
-#             Added control_auth_cookie/controlpassword auth, getopts,
-#             program checks, reading from file etc.
-
-VERSION=v1
-TORCTLIP=127.0.0.1
-TORCTLPORT=9051
-TOR_COOKIE="/var/lib/tor/data/control_auth_cookie"
-SLEEP_AFTER_CMD=1
-VERBOSE=0
-
-usage()
-{
-cat <<EOF
-
-tor-ctrl $VERSION by Stefan Behte (http://ge.mine.nu)
-You should have a look at 
-https://www.torproject.org/svn/trunk/doc/spec/control-spec.txt
-
-usage: tor-ctrl [-switch] [variable]
-
-       [-c] [command] = command to execute
-                        notice: always "quote" your command
-
-       [-f] [file]    = file to execute commands from
-                        notice: only one command per line
-
-       [-a] [path]    = path to tor's control_auth_cookie
-                        default: /var/lib/tor/data/control_auth_cookie
-                        notice: do not forget to adjust your torrc
-
-       [-s] [time]    = sleep [var] seconds after each command sent
-                        default: 1 second
-                        notice: for GETCONF, you can use smaller pause times
-                        than for SETCONF; this is due to telnet's behaviour.
-
-       [-p] [pwd]     = Use password [var] instead of tor's control_auth_cookie
-                        default: not used
-                        notice: do not forget to adjust your torrc
-                                
-       [-P] [port]     = Tor ControlPort
-                        default: 9051
-
-       [-v]           = verbose
-                        default: not set
-                        notice: the default output is the return code ;)
-                        You propably want to set -v when running manually
-
-       Examples:      $0 -c "SETCONF bandwidthrate=1mb"
-                      $0 -v -c "GETINFO version"
-                      $0 -v -s 0 -P 9051 -p foobar -c "GETCONF bandwidthrate"
-
-EOF
-exit 2
-}
-
-checkprogs()
-{
-        programs="telnet"
-        if [ "$PASSWORD" = "" ]   
-        then
-                # you only need xxd when using control_auth_cookie
-                programs="$programs xxd"
-        fi
-
-        for p in $programs
-        do
-                which $p &>/dev/null            # are you there?
-                if [ "$?" != "0" ]
-                then
-                        echo "$p is missing."
-                        exit 2
-                fi
-        done
-}
-
-sendcmd()
-{
-        echo "$@"
-        sleep ${SLEEP_AFTER_CMD}
-}
-
-login()
-{
-        if [ "$PASSWORD" = "" ]
-        then
-                sendcmd "AUTHENTICATE $(xxd -c 32 -g 0 ${TOR_COOKIE} | awk '{print $2}')"
-        else
-                sendcmd "AUTHENTICATE \"${PASSWORD}\""
-        fi
-}
-
-cmdpipe()
-{
-        login
-        sendcmd "$@"
-        sendcmd "QUIT"
-}
-
-vecho()
-{
-        if [ $VERBOSE -ge 1 ]
-        then
-                echo "$@"
-        fi
-}
-
-myecho()
-{
-        STR=$(cat)
-        vecho "$STR"
-
-        echo "$STR" | if [ "$(grep -c ^"250 ")" = 3 ]
-        then
-                exit 0
-        else
-                exit 1
-        fi
-}
-
-filepipe()
-{
-        login
-        cat "$1" | while read line
-        do
-                sendcmd "$line"
-        done
-        sendcmd "QUIT"
-}
-
-while getopts ":a:c:s:p:P:f:vh" Option
-do
-        case $Option in
-                a) TOR_COOKIE="${OPTARG}";;
-                c) CMD="${OPTARG}";;
-                s) SLEEP_AFTER_CMD="${OPTARG}";;
-                p) PASSWORD="${OPTARG}";;
-                P) TORCTLPORT="${OPTARG}";;
-                f) FILE="${OPTARG}";;
-                v) VERBOSE=1;;
-                h) usage;;
-                *) usage;;
-        esac
-done
-
-if [ -e "$FILE" ]
-then
-        checkprogs
-        filepipe "$FILE" | telnet $TORCTLIP $TORCTLPORT 2>/dev/null | myecho
-        exit 4
-fi
-
-if [ "$CMD" != "" ]
-then
-        checkprogs
-        cmdpipe $CMD | telnet $TORCTLIP $TORCTLPORT 2>/dev/null | myecho
-else
-        usage
-fi

+ 0 - 27
contrib/tor-stress

@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-
-#require 'sys/syscall.ph';
-$|=1;
-
-$total = 1;
-$target = "http://www.cnn.com/";
-
-for($i=0;$i<$total;$i++) {
-  print "Starting client $i\n";
-  $pid = fork();
-  if(!$pid) {
-    open(FD,"wget -q -O - $target|");
-    $c = 0;
-    while(<FD>) {
-      $c += length($_);
-    }
-#    $TIMEVAL_T = "LL";
-#    $now = pack($TIMEVAL_T, ());
-#    syscall(&SYS_gettimeofday, $now, 0) != -1 or die "gettimeofday: $!";
-#    @now = unpack($TIMEVAL_T, $now);
-    print "Client $i exiting ($c chars).\n";
-    exit(0);
-  }
-# sleep(1);
-}
-

BIN
contrib/torinst32.ico


+ 3 - 3
contrib/package_nsis-mingw.sh → contrib/win32build/package_nsis-mingw.sh

@@ -40,7 +40,7 @@
 # you know what you are doing.
 
 # Start in the tor source directory after you've compiled tor.exe
-# This means start as ./contrib/package_nsis-mingw.sh
+# This means start as ./contrib/win32build/package_nsis-mingw.sh
 
 rm -rf win_tmp
 mkdir win_tmp
@@ -56,7 +56,7 @@ mkdir win_tmp/tmp
 
 cp src/or/tor.exe win_tmp/bin/
 cp src/tools/tor-resolve.exe win_tmp/bin/
-cp contrib/tor.ico win_tmp/bin/
+cp contrib/win32build/tor.ico win_tmp/bin/
 cp src/config/geoip win_tmp/bin/
 strip win_tmp/bin/*.exe
 
@@ -88,7 +88,7 @@ done
 
 clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample
 
-cp contrib/tor-mingw.nsi.in win_tmp/contrib/
+cp contrib/win32build/tor-mingw.nsi.in win_tmp/contrib/
 
 cd win_tmp
 makensis.exe contrib/tor-mingw.nsi.in

+ 0 - 0
contrib/tor-mingw.nsi.in → contrib/win32build/tor-mingw.nsi.in


+ 0 - 0
contrib/tor.ico → contrib/win32build/tor.ico


+ 0 - 0
contrib/tor.nsi.in → contrib/win32build/tor.nsi.in


BIN
contrib/xenobite.ico


+ 2 - 2
doc/HACKING

@@ -122,7 +122,7 @@ Running gcov for unit test coverage
    make
    make check
    mkdir coverage-output
-   ./contrib/coverage coverage-output
+   ./scripts/test/coverage coverage-output
 -----
 
 (On OSX, you'll need to start with "--enable-coverage CC=clang".)
@@ -142,7 +142,7 @@ If you have two different "coverage-output" directories, and you want to see
 a meaningful diff between them, you can run:
 
 -----
-   ./contrib/cov-diff coverage-output1 coverage-output2 | less
+   ./scripts/test/cov-diff coverage-output1 coverage-output2 | less
 -----
 
 In this diff, any lines that were visited at least once will have coverage

+ 1 - 1
doc/tor.1.txt

@@ -1782,7 +1782,7 @@ if DirPort is non-zero):
     When this option is set, it takes an HTML file and publishes it as "/" on
     the DirPort. Now relay operators can provide a disclaimer without needing
     to set up a separate webserver. There's a sample disclaimer in
-    contrib/tor-exit-notice.html.
+    contrib/operator-tools/tor-exit-notice.html.
 
 [[V3AuthoritativeDirectory]] **V3AuthoritativeDirectory** **0**|**1**::
     When this option is set in addition to **AuthoritativeDirectory**, Tor

+ 0 - 0
contrib/checkLogs.pl → scripts/maint/checkLogs.pl


+ 0 - 0
contrib/checkOptionDocs.pl → scripts/maint/checkOptionDocs.pl


+ 0 - 0
contrib/checkSpace.pl → scripts/maint/checkSpace.pl


+ 0 - 0
contrib/findMergedChanges.pl → scripts/maint/findMergedChanges.pl


+ 0 - 0
contrib/format_changelog.py → scripts/maint/format_changelog.py


+ 2 - 2
contrib/redox.py → scripts/maint/redox.py

@@ -10,7 +10,7 @@
 #   to tell you where documentation should go!
 # To use me, edit the stuff below...
 #  ...and run 'make doxygen 2>doxygen.stderr' ...
-#  ...and run ./contrib/redox.py < doxygen.stderr !
+#  ...and run ./scripts/maint/redox.py < doxygen.stderr !
 # I'll make a bunch of new files by adding missing DOCDOC comments to your
 #    source.  Those files will have names like ./src/common/util.c.newdoc.
 # You will want to look over the changes by hand before checking them in.
@@ -21,7 +21,7 @@
 # 1. make doxygen 1>doxygen.stdout 2>doxygen.stderr.
 # 2. grep Warning doxygen.stderr | grep -v 'is not documented' | less
 #      [This will tell you about all the bogus doxygen output you have]
-# 3. python ./contrib/redox.py <doxygen.stderr
+# 3. python ./scripts/maint/redox.py <doxygen.stderr
 #      [This will make lots of .newdoc files with DOCDOC comments for
 #       whatever was missing documentation.]
 # 4. Look over those .newdoc files, and see which docdoc comments you

+ 1 - 1
contrib/updateVersions.pl → scripts/maint/updateVersions.pl

@@ -2,7 +2,7 @@
 
 $CONFIGURE_IN = './configure.ac';
 $ORCONFIG_H = './src/win32/orconfig.h';
-$TOR_NSI = './contrib/tor-mingw.nsi.in';
+$TOR_NSI = './contrib/win32build/tor-mingw.nsi.in';
 
 $quiet = 1;
 

+ 0 - 0
contrib/cov-blame → scripts/test/cov-blame


+ 0 - 0
contrib/cov-diff → scripts/test/cov-diff


+ 0 - 0
contrib/coverage → scripts/test/coverage


+ 0 - 0
contrib/scan-build.sh → scripts/test/scan-build.sh