Browse Source

Add a new function, tor_api_get_provider_version()

Closes ticket 26947.
Nick Mathewson 5 years ago
parent
commit
772106c6bc
4 changed files with 26 additions and 3 deletions
  1. 3 0
      changes/ticket26947
  2. 6 1
      src/feature/api/tor_api.c
  3. 11 1
      src/feature/api/tor_api.h
  4. 6 1
      src/tools/tor_runner.c

+ 3 - 0
changes/ticket26947

@@ -0,0 +1,3 @@
+  o Minor features (in-process API):
+    - The tor_api now has a function that returns the name and version
+      of the backend implementing the API. Closes ticket 26947.

+ 6 - 1
src/feature/api/tor_api.c

@@ -61,6 +61,12 @@ tor_main_configuration_free(tor_main_configuration_t *cfg)
   raw_free(cfg);
 }
 
+const char *
+tor_api_get_provider_version(void)
+{
+  return "tor " VERSION;
+}
+
 /* Main entry point for the Tor process.  Called from main().
  *
  * This function is distinct from main() only so we can link main.c into
@@ -85,4 +91,3 @@ tor_main(int argc, char *argv[])
   tor_main_configuration_free(cfg);
   return rv;
 }
-

+ 11 - 1
src/feature/api/tor_api.h

@@ -57,6 +57,17 @@ int tor_main_configuration_set_command_line(tor_main_configuration_t *cfg,
  */
 void tor_main_configuration_free(tor_main_configuration_t *cfg);
 
+/**
+ * Return the name and version of the software implementing the tor_api
+ * functionality.  Current implementors are "tor" and "libtorrunner".
+ *
+ * Note that if you're using libtorrunner, you'll see the version of
+ * libtorrunner, not the version of Tor that it's invoking for you.
+ *
+ * Added in Tor 0.3.5.1-alpha.
+ **/
+const char *tor_api_get_provider_version(void);
+
 /**
  * Run the tor process, as if from the command line.
  *
@@ -98,4 +109,3 @@ int tor_run_main(const tor_main_configuration_t *);
 int tor_main(int argc, char **argv);
 
 #endif /* !defined(TOR_API_H) */
-

+ 6 - 1
src/tools/tor_runner.c

@@ -46,6 +46,12 @@
 static void child(const tor_main_configuration_t *cfg)
   __attribute__((noreturn));
 
+const char *
+tor_api_get_provider_version(void)
+{
+  return "libtorrunner " VERSION;
+}
+
 int
 tor_run_main(const tor_main_configuration_t *cfg)
 {
@@ -98,4 +104,3 @@ child(const tor_main_configuration_t *cfg)
     abort(); /* Unreachable */
   }
 }
-