summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Hazel <sah@freehaven.net>2003-10-15 07:19:38 +0000
committerSteven Hazel <sah@freehaven.net>2003-10-15 07:19:38 +0000
commita54a65dfb68b41bf86c5d3e72f33beb6773c6983 (patch)
tree722f7717e186ce2d17b5d05b817e62239b3916b5
parent0149c4ed555db821e9331f1925fae46638a30f46 (diff)
downloadtor-a54a65dfb68b41bf86c5d3e72f33beb6773c6983.tar.gz
tor-a54a65dfb68b41bf86c5d3e72f33beb6773c6983.zip
- cause configure to create a tor.sh which will have directories set
correctly based on how configure was run - cause tor to guess the location of torrc more intelligently - cause cause src/config/torrc and src/conf/sample-server-torrc to be generated with contents that are correct for the way configure was run - cause "make install" to put torrc, sample-server-torrc, and dirservers somewhere intelligent svn:r587
-rw-r--r--configure.in27
-rw-r--r--src/config/Makefile.am4
-rw-r--r--src/config/sample-server-torrc.in20
-rw-r--r--src/config/torrc.in12
-rw-r--r--src/or/config.c4
-rw-r--r--tor.sh.in75
6 files changed, 138 insertions, 4 deletions
diff --git a/configure.in b/configure.in
index 78e0180733..186f80a5ec 100644
--- a/configure.in
+++ b/configure.in
@@ -159,5 +159,30 @@ AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(__int64)
-AC_OUTPUT(Makefile src/Makefile doc/Makefile src/config/Makefile src/common/Makefile src/or/Makefile)
+# $prefix stores the value of the --prefix command line option, or
+# NONE if the option wasn't set. In the case that it wasn't set, make
+# it be the default, so that we can use it to expand directories now.
+if test "x$prefix" = "xNONE"; then
+ prefix=$ac_default_prefix
+fi
+
+# and similarly for $exec_prefix
+if test "x$exec_prefix" = "xNONE"; then
+ exec_prefix=$prefix
+fi
+
+CONFDIR=`eval echo $sysconfdir/tor`
+AC_SUBST(CONFDIR)
+AC_DEFINE_UNQUOTED(CONFDIR,"$CONFDIR")
+AC_DEFINE([CONFDIR], [], [tor's configuration directory])
+
+BINDIR=`eval echo $bindir`
+AC_SUBST(BINDIR)
+
+LOCALSTATEDIR=`eval echo $localstatedir`
+AC_SUBST(LOCALSTATEDIR)
+
+echo "confdir: $CONFDIR"
+
+AC_OUTPUT(Makefile tor.sh src/config/torrc src/config/sample-server-torrc src/Makefile doc/Makefile src/config/Makefile src/common/Makefile src/or/Makefile)
diff --git a/src/config/Makefile.am b/src/config/Makefile.am
index a4401b369b..8ff9132e7d 100644
--- a/src/config/Makefile.am
+++ b/src/config/Makefile.am
@@ -1,3 +1,5 @@
+confdir = $(sysconfdir)/tor
-EXTRA_DIST = dirservers oprc sample-orrc
+EXTRA_DIST = dirservers
+conf_DATA = dirservers torrc sample-server-torrc
diff --git a/src/config/sample-server-torrc.in b/src/config/sample-server-torrc.in
new file mode 100644
index 0000000000..d0005fd81f
--- /dev/null
+++ b/src/config/sample-server-torrc.in
@@ -0,0 +1,20 @@
+# Configuration file for a typical tor node
+
+# The directory for keeping all the config/data for this node
+DataDirectory @LOCALSTATEDIR@/lib/tor
+# A unique handle for this node
+Nickname moria4
+
+# Ports for various services. Comment out or set to 0 if you're not
+# offering that service.
+ORPort 9004 # listening for cell-speaking connections
+APPort 9024 # listening for socks-speaking connections
+#DirPort 0
+
+# Leave this set, or we'll be treated like a client.
+OnionRouter 1
+
+# List of routers. Tor nodes only know about the directory servers
+# at the beginning, and from them they get a list of currently up nodes.
+RouterFile @CONFDIR@/dirservers
+
diff --git a/src/config/torrc.in b/src/config/torrc.in
new file mode 100644
index 0000000000..eabdabe2e6
--- /dev/null
+++ b/src/config/torrc.in
@@ -0,0 +1,12 @@
+# Configuration file for a typical tor client
+# (listen for applications only)
+
+# List of routers. Tor nodes only know about the directory servers
+# at the beginning, and from them they get a list of currently up nodes.
+RouterFile @CONFDIR@/dirservers
+
+# Ports for various services. Comment out if you're not running that
+# service.
+#ORPort 9001
+APPort 9050
+
diff --git a/src/or/config.c b/src/or/config.c
index ae14d3bff7..2402a64e9b 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -220,8 +220,8 @@ int getconfig(int argc, char **argv, or_options_t *options) {
}
if(i < argc-1) { /* we found one */
fname = argv[i+1];
- } else { /* didn't find one, try /etc/torrc */
- fname = "/etc/torrc";
+ } else { /* didn't find one, try CONFDIR */
+ fname = CONFDIR "/torrc";
}
log(LOG_DEBUG,"Opening config file '%s'",fname);
diff --git a/tor.sh.in b/tor.sh.in
new file mode 100644
index 0000000000..37e338f4d2
--- /dev/null
+++ b/tor.sh.in
@@ -0,0 +1,75 @@
+#! /bin/sh
+
+TORBIN=@BINDIR@/tor
+TORPID=@LOCALSTATEDIR@/run/tor.pid
+TORLOG=@LOCALSTATEDIR@/log/tor/tor.log
+TORCONF=@CONFDIR@/torrc
+RETVAL=0
+
+case "$1" in
+
+ start)
+ if [ -f $TORPID ]; then
+ echo "tor appears to be already running (pid file exists)"
+ echo "Maybe you should run: $0 restart ?"
+ RETVAL=1
+ else
+ echo -n "Starting tor..."
+ $TORBIN -f $TORCONF -l warning >$TORLOG 2>&1 &
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ echo " ok"
+ else
+ echo " ERROR!"
+ fi
+ fi
+ ;;
+
+ stop)
+ if [ -f $TORPID ]; then
+ echo -n "Killing tor..."
+ kill `cat $TORPID`
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ echo " ok"
+ else
+ echo " ERROR!"
+ fi
+ else
+ echo "Unable to kill tor: $TORPID does not exist"
+ RETVAL=1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ if [ -f $TORPID ]; then
+ rm -f $TORPID
+ fi
+ $0 start
+ ;;
+
+ status)
+ PID=`cat $TORPID 2>/dev/null`
+ if [ "$PID" != "" ]; then
+ torstat=`ps -p $PID | grep -c "^$PID"`
+ if [ $torstat ]; then
+ echo "tor is running ($PID)"
+ else
+ echo "tor is not running (looks like it crashed, look for core? $PID)"
+ fi
+ else
+ echo "tor is not running (exited gracefully)"
+ fi
+ ;;
+
+ log)
+ cat $TORLOG
+ ;;
+
+ *)
+ echo "Usage: $0 (start|stop|restart|status|log)"
+ exit 1
+esac
+
+exit $RETVAL