[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] Previously our defaults for DataDirectory, PidFile, RunAsDa...



Update of /home/or/cvsroot/tor/debian/patches
In directory moria:/tmp/cvs-serv21624/debian/patches

Modified Files:
	06_add_compile_time_defaults.dpatch 
	07_log_to_file_by_default.dpatch 
Log Message:
Previously our defaults for DataDirectory, PidFile, RunAsDaemon, and
Log differed from upstreams.  Now Tor behaves just like before (with
our own DataDirectory and all) only when run as the debian-tor user.
If invoked as any other user, Tor will behave just like the pristine
upstream version.


Index: 06_add_compile_time_defaults.dpatch
===================================================================
RCS file: /home/or/cvsroot/tor/debian/patches/06_add_compile_time_defaults.dpatch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -d -r1.6 -r1.7
--- 06_add_compile_time_defaults.dpatch	17 Oct 2005 02:01:43 -0000	1.6
+++ 06_add_compile_time_defaults.dpatch	24 Jul 2006 03:24:25 -0000	1.7
@@ -23,33 +23,97 @@ esac
 exit 0
 
 @DPATCH@
-diff -urNad tor-0.1.1.5/src/or/config.c /tmp/dpep.Xv4cHn/tor-0.1.1.5/src/or/config.c
---- tor-0.1.1.9/src/or/config.c		2005-10-17 03:54:24.917618642 +0200
-+++ /tmp/foo/tor/src/or/config.c	2005-10-17 03:57:52.040022393 +0200
-@@ -111,7 +111,7 @@
-   VAR("ContactInfo",         STRING,   ContactInfo,          NULL),
-   VAR("ControlPort",         UINT,     ControlPort,          "0"),
-   VAR("CookieAuthentication",BOOL,     CookieAuthentication, "0"),
--  VAR("DataDirectory",       STRING,   DataDirectory,        NULL),
-+  VAR("DataDirectory",       STRING,   DataDirectory,        "/var/lib/tor"),
-   VAR("DebugLogFile",        STRING,   DebugLogFile,         NULL),
-   VAR("DirAllowPrivateAddresses",BOOL, DirAllowPrivateAddresses, NULL),
-   VAR("DirBindAddress",      LINELIST, DirBindAddress,       NULL),
-@@ -162,7 +162,7 @@
-   VAR("ORPort",              UINT,     ORPort,               "0"),
-   VAR("OutboundBindAddress", STRING,   OutboundBindAddress,  NULL),
-   VAR("PathlenCoinWeight",   DOUBLE,   PathlenCoinWeight,    "0.3"),
--  VAR("PidFile",             STRING,   PidFile,              NULL),
-+  VAR("PidFile",             STRING,   PidFile,              "/var/run/tor/tor.pid"),
-   VAR("ProtocolWarnings",    BOOL,     ProtocolWarnings,     "0"),
-   VAR("ReachableAddresses",  LINELIST, ReachableAddresses,   NULL),
-   VAR("RecommendedVersions", LINELIST, RecommendedVersions,  NULL),
-@@ -174,7 +174,7 @@
-   VAR("RendPostPeriod",      INTERVAL, RendPostPeriod,       "20 minutes"),
-   VAR("RephistTrackTime",    INTERVAL, RephistTrackTime,     "24 hours"),
-   OBSOLETE("RouterFile"),
--  VAR("RunAsDaemon",         BOOL,     RunAsDaemon,          "0"),
-+  VAR("RunAsDaemon",         BOOL,     RunAsDaemon,          "1"),
-   VAR("RunTesting",          BOOL,     RunTesting,           "0"),
-   VAR("SafeLogging",         BOOL,     SafeLogging,          "1"),
-   VAR("ShutdownWaitLength",  INTERVAL, ShutdownWaitLength,   "30 seconds"),
+diff -urNad tor~/src/or/config.c tor/src/or/config.c
+--- tor~/src/or/config.c	2006-07-23 19:31:29.000000000 +0200
++++ tor/src/or/config.c	2006-07-24 05:13:19.924871985 +0200
+@@ -12,6 +12,7 @@
+  **/
+ 
+ #include "or.h"
++#include <pwd.h>
+ #ifdef MS_WINDOWS
+ #include <shlobj.h>
+ #endif
+@@ -396,6 +397,10 @@
+ static void check_libevent_version(const char *m, const char *v, int server);
+ #endif
+ 
++static int debian_running_as_debiantor();
++static int debian_config_fix_defaults();
++
++
+ /*static*/ or_options_t *options_new(void);
+ 
+ #define OR_OPTIONS_MAGIC 9090909
+@@ -2663,7 +2668,7 @@
+ int
+ options_init_from_torrc(int argc, char **argv)
+ {
+-  or_options_t *oldoptions, *newoptions;
++  or_options_t *oldoptions, *newoptions = NULL;
+   config_line_t *cl;
+   char *cf=NULL, *fname=NULL, *errmsg=NULL;
+   int i, retval;
+@@ -2671,6 +2676,9 @@
+   static char **backup_argv;
+   static int backup_argc;
+ 
++  if (debian_config_fix_defaults() < 0)
++    goto err;
++
+   if (argv) { /* first time we're called. save commandline args */
+     backup_argv = argv;
+     backup_argc = argc;
+@@ -3948,3 +3956,52 @@
+   puts(routerparse_c_id);
+ }
+ 
++/* Checks whether we are running as the debian-tor user.
++ *   Returns -1 on error, 1 if we are debian-tor, 0 if not */
++static int
++debian_running_as_debiantor()
++{
++  struct passwd *pw = NULL;
++  int uid;
++
++  uid = getuid();
++  pw = getpwuid(uid);
++  if (!pw) {
++    log(LOG_WARN, LD_GENERAL, "Could not get passwd information for %d.", uid);
++    return -1;
++  }
++  assert(pw->pw_name);
++  if (strcmp(pw->pw_name, "debian-tor") == 0)
++    return 1;
++  else
++    return 0;
++}
++
++static int
++debian_config_fix_defaults()
++{
++  config_var_t *var;
++  static int fixed = 0;
++  int running_as_debian;
++
++  if (fixed) return 0;
++  fixed = 1;
++
++  running_as_debian = debian_running_as_debiantor();
++  if (running_as_debian < 0) return -1;
++  if (!running_as_debian) return 0;
++
++  var = config_find_option(&options_format, "DataDirectory");
++  tor_assert(var);
++  var->initvalue = tor_strdup("/var/lib/tor");
++
++  var = config_find_option(&options_format, "PidFile");
++  tor_assert(var);
++  var->initvalue = tor_strdup("/var/run/tor/tor.pid");
++
++  var = config_find_option(&options_format, "RunAsDaemon");
++  tor_assert(var);
++  var->initvalue = tor_strdup("1");
++
++  return 0;
++}

Index: 07_log_to_file_by_default.dpatch
===================================================================
RCS file: /home/or/cvsroot/tor/debian/patches/07_log_to_file_by_default.dpatch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -d -r1.9 -r1.10
--- 07_log_to_file_by_default.dpatch	21 Jun 2006 22:13:03 -0000	1.9
+++ 07_log_to_file_by_default.dpatch	24 Jul 2006 03:24:25 -0000	1.10
@@ -23,16 +23,22 @@ esac
 exit 0
 
 @DPATCH@
-diff -urNad tor-0.1.2.0-alpha-cvs/src/or/config.c /tmp/dpep.YwfNhI/tor-0.1.2.0-alpha-cvs/src/or/config.c
---- tor-0.1.2.0-alpha-cvs/src/or/config.c
-+++ /tmp/dpep.YwfNhI/tor-0.1.2.0-alpha-cvs/src/or/config.c
-@@ -2079,7 +2079,7 @@
+diff -urNad tor~/src/or/config.c tor/src/or/config.c
+--- tor~/src/or/config.c	2006-07-24 05:15:02.576170550 +0200
++++ tor/src/or/config.c	2006-07-24 05:18:45.286651501 +0200
+@@ -2118,8 +2118,13 @@
+     REJECT("Failed to normalize old Log options. See logs for details.");
  
    /* Special case on first boot if no Log options are given. */
 -  if (!options->Logs && !options->RunAsDaemon && !from_setconf)
 -    config_line_append(&options->Logs, "Log", "notice stdout");
-+  if (!options->Logs && !from_setconf)
-+    config_line_append(&options->Logs, "Log", "notice file /var/log/tor/log");
++  if (debian_running_as_debiantor()) {
++    if (!options->Logs && !from_setconf)
++      config_line_append(&options->Logs, "Log", "notice file /var/log/tor/log");
++  } else {
++    if (!options->Logs && !options->RunAsDaemon && !from_setconf)
++      config_line_append(&options->Logs, "Log", "notice stdout");
++  }
  
    if (options_init_logs(options, 1)<0) /* Validate the log(s) */
      REJECT("Failed to validate Log options. See logs for details.");