Browse Source

r12945@catbus: nickm | 2007-05-25 10:37:12 -0400
Add a "force" option to tor-resolve so we can make it look up .onion addresses if we know that this will create a virtual mapping we want.


svn:r10323

Nick Mathewson 18 years ago
parent
commit
e9c294654d
2 changed files with 11 additions and 3 deletions
  1. 5 0
      ChangeLog
  2. 6 3
      src/tools/tor-resolve.c

+ 5 - 0
ChangeLog

@@ -121,6 +121,11 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
       whether the current version is recommended, and whether any versions
       whether the current version is recommended, and whether any versions
       are good, and how many authorities agree. (Patch from shibz.)
       are good, and how many authorities agree. (Patch from shibz.)
 
 
+  o Minor features (tor-resolve):
+    - Add an "-F" option to force a resolve for a .onion address.  Thanks
+      to the AutomapHostsOnResolve option, this is no longer a completely
+      silly thing to do.
+
   o Minor features (other):
   o Minor features (other):
     - More unit tests.
     - More unit tests.
     - Warn when using a version of libevent before 1.3b to run a server on
     - Warn when using a version of libevent before 1.3b to run a server on

+ 6 - 3
src/tools/tor-resolve.c

@@ -259,7 +259,8 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport,
 static void
 static void
 usage(void)
 usage(void)
 {
 {
-  puts("Syntax: tor-resolve [-4] [-v] [-x] hostname [sockshost:socksport]");
+  puts("Syntax: tor-resolve [-4] [-v] [-x] [-F] "
+       "hostname [sockshost:socksport]");
   exit(1);
   exit(1);
 }
 }
 
 
@@ -269,7 +270,7 @@ main(int argc, char **argv)
 {
 {
   uint32_t sockshost;
   uint32_t sockshost;
   uint16_t socksport;
   uint16_t socksport;
-  int isSocks4 = 0, isVerbose = 0, isReverse = 0;
+  int isSocks4 = 0, isVerbose = 0, isReverse = 0, force = 0;
   char **arg;
   char **arg;
   int n_args;
   int n_args;
   struct in_addr a;
   struct in_addr a;
@@ -296,6 +297,8 @@ main(int argc, char **argv)
       isSocks4 = 0;
       isSocks4 = 0;
     else if (!strcmp("-x", arg[0]))
     else if (!strcmp("-x", arg[0]))
       isReverse = 1;
       isReverse = 1;
+    else if (!strcmp("-F", arg[0]))
+      force = 1;
     else {
     else {
       fprintf(stderr, "Unrecognized flag '%s'\n", arg[0]);
       fprintf(stderr, "Unrecognized flag '%s'\n", arg[0]);
       usage();
       usage();
@@ -331,7 +334,7 @@ main(int argc, char **argv)
     usage();
     usage();
   }
   }
 
 
-  if (!strcasecmpend(arg[0], ".onion")) {
+  if (!strcasecmpend(arg[0], ".onion") && !force) {
     fprintf(stderr,
     fprintf(stderr,
        "%s is a hidden service; those don't have IP addresses.\n\n"
        "%s is a hidden service; those don't have IP addresses.\n\n"
        "To connect to a hidden service, you need to send the hostname\n"
        "To connect to a hidden service, you need to send the hostname\n"