diff options
-rw-r--r-- | changes/ticket26947 | 3 | ||||
-rw-r--r-- | src/feature/api/tor_api.c | 7 | ||||
-rw-r--r-- | src/feature/api/tor_api.h | 12 | ||||
-rw-r--r-- | src/tools/tor_runner.c | 7 |
4 files changed, 26 insertions, 3 deletions
diff --git a/changes/ticket26947 b/changes/ticket26947 new file mode 100644 index 0000000000..620a3a5591 --- /dev/null +++ b/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. diff --git a/src/feature/api/tor_api.c b/src/feature/api/tor_api.c index 2a4458bf69..a53ade1f3e 100644 --- a/src/feature/api/tor_api.c +++ b/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; } - diff --git a/src/feature/api/tor_api.h b/src/feature/api/tor_api.h index ead9493c1f..a08606ee3c 100644 --- a/src/feature/api/tor_api.h +++ b/src/feature/api/tor_api.h @@ -58,6 +58,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. * * The command line arguments from tor_main_configuration_set_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) */ - diff --git a/src/tools/tor_runner.c b/src/tools/tor_runner.c index dd90af3df5..f8805e6500 100644 --- a/src/tools/tor_runner.c +++ b/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 */ } } - |