Skip to content
Snippets Groups Projects
Commit 9230bc7c authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

Clean the contrib directory with torch and machete.

We've accumulated a lot of cruft in this directory over the years: so
much, that it passed the point of being so disorganized that we no
longer browsed through it to see how bad it had gotten.

This patch (based on changes by rl1987) tries to remove the most
useless items, and split the others into reasonable directories.  It
creates a new scripts/ directory for maint and test scripts.

This patch was generated with the script below.  No other changes are made in
this patch.

#############
# new directories
mkdir -p contrib/test-tools
mkdir -p contrib/or-tools
mkdir -p contrib/dirauth-tools
mkdir -p contrib/operator-tools
mkdir -p contrib/client-tools
mkdir -p contrib/test-tools
mkdir -p contrib/dist
mkdir -p contrib/dist/suse
mkdir -p contrib/win32build

mkdir -p scripts/maint
mkdir -p scripts/test

############
# Deleted -- nobody who wants this is going to be looking for it here any
# longer.  Also, nobody wants it.
git rm contrib/auto-naming/README

# Deleted: We no longer do polipo.
git rm contrib/polipo/Makefile.mingw
git rm contrib/polipo/README
git rm contrib/polipo/polipo-mingw.nsi

# We haven't even tried to run this for ages. It is a relic of a bygone era
git rm contrib/mdd.py

# contrib/dir-tools/directory-archive/
# Tools for running a directory archive. No longer used - deleting them.
git rm contrib/directory-archive/crontab.sample
git rm contrib/directory-archive/fetch-all
git rm contrib/directory-archive/fetch-all-v3
git rm contrib/directory-archive/tar-them-up
git rm contrib/directory-archive/fetch-all-functions
git rm contrib/directory-archive/sort-into-month-folder

# This appears to be related to very old windows packaging stuff.
git rm contrib/bundle.nsi
git rm contrib/package_nsis-weasel.sh
git rm contrib/package_nsis.sh
git rm contrib/netinst.nsi
git rm contrib/torinst32.ico
git rm contrib/xenobite.ico

# This should not be needed for cross-compilation any more, should it?
git rm contrib/cross.sh

# I don't think anyone ever used this.
git rm contrib/make-signature.sh

# These are attempts to send tor controller commands from the command-line.
# They don't support modern authentication.
git rm contrib/tor-ctrl.sh

# this is for fetching about a tor server from a dirauth. But it
# doesn't authenticate the dirauth: yuck.
git rm contrib/sd

# wow, such unused, very perl4.
git rm contrib/tor-stress

####### contrib/dirauth-tools/
# Tools for running a directory authority

git mv contrib/add-tor contrib/dirauth-tools/
git mv contrib/nagios-check-tor-authority-cert contrib/dirauth-tools/

#######
# contrib/or-tools/
# Tools for examining relays
git mv contrib/check-tor contrib/or-tools/check-tor
git mv contrib/checksocks.pl contrib/or-tools/checksocks.pl
git mv contrib/exitlist contrib/or-tools/exitlist

#######
# contrib/operator-tools

# Tools for running a relay.
git mv contrib/linux-tor-prio.sh contrib/operator-tools/linux-tor-prio.sh
git mv contrib/tor-exit-notice.html contrib/operator-tools/tor-exit-notice.html
git mv contrib/tor.logrotate.in contrib/operator-tools/

######
# contrib/dist

git mv contrib/rc.subr contrib/dist/
git mv contrib/tor.sh.in contrib/dist/
git mv contrib/torctl.in contrib/dist/
git mv contrib/suse/* contrib/dist/suse/

######
# client-tools
git mv contrib/torify contrib/client-tools/torify
git mv contrib/tor-resolve.py contrib/client-tools/

######
# win32build

git mv contrib/package_nsis-mingw.sh contrib/win32build/
git mv contrib/tor.nsi.in contrib/win32build/
# Erinn didn't ask for this...
git mv contrib/tor-mingw.nsi.in contrib/win32build/
git mv contrib/tor.ico contrib/win32build/

######
# scripts/test
git mv contrib/cov-blame scripts/test/cov-blame
git mv contrib/cov-diff scripts/test/cov-diff
git mv contrib/coverage scripts/test/coverage
git mv contrib/scan-build.sh scripts/test/

######## scripts/maint
# Maintainance scripts
#
# These are scripts for developers to use when hacking on Tor.  They mostly
# look at the Tor source in one way or another.
git mv contrib/findMergedChanges.pl scripts/maint/findMergedChanges.pl
git mv contrib/checkOptionDocs.pl scripts/maint/checkOptionDocs.pl
git mv contrib/checkSpace.pl scripts/maint/checkSpace.pl
git mv contrib/redox.py scripts/maint/redox.py
git mv contrib/updateVersions.pl scripts/maint/updateVersions.pl
git mv contrib/checkLogs.pl scripts/maint/checkLogs.pl
git mv contrib/format_changelog.py scripts/maint/
parent 78b431d3
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 863 deletions
!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
File moved
File moved
File moved
File moved
#!/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 ../../..'
#!/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 ../..
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
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.
;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
#!/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
#!/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
#!/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);
}
contrib/torinst32.ico

4.19 KiB

File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment