diff --git a/changes/ticket26947 b/changes/ticket26947 new file mode 100644 index 0000000000000000000000000000000000000000..620a3a55917da0622505fda3e8dcf89e0a163dbf --- /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 2a4458bf6938fb1917172cd7715db014c08e99d1..a53ade1f3ef69f35b53e8412a8566f7fcd442274 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 ead9493c1f093c71bf1f2ae6a235c3de41f9d890..a08606ee3cb514de3b813181e5c2485c9cbfcb9f 100644 --- a/src/feature/api/tor_api.h +++ b/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) */ - diff --git a/src/tools/tor_runner.c b/src/tools/tor_runner.c index dd90af3df5dbda9bda32caad6ccfbefe8f990f2a..f8805e650093c72572392a3e5450e01cc9283838 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 */ } } -