diff --git a/configure.ac b/configure.ac index e268dc5d..84414dc1 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,7 @@ AC_INIT(rtorrent, 0.9.1, jaris@ifi.uio.no) +AC_DEFINE(API_VERSION, 1, api version) + AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) AM_PATH_CPPUNIT(1.9.6) diff --git a/src/command_local.cc b/src/command_local.cc index cd3225f2..9ca9a77c 100644 --- a/src/command_local.cc +++ b/src/command_local.cc @@ -328,6 +328,7 @@ initialize_command_local() { CMD2_ANY ("system.hostname", std::bind(&system_hostname)); CMD2_ANY ("system.pid", std::bind(&getpid)); + CMD2_VAR_C_STRING("system.api_version", (int64_t)API_VERSION); CMD2_VAR_C_STRING("system.client_version", PACKAGE_VERSION); CMD2_VAR_C_STRING("system.library_version", torrent::version()); CMD2_VAR_VALUE ("system.file.allocate", 0); diff --git a/src/main.cc b/src/main.cc index 2d50006c..796a96a2 100644 --- a/src/main.cc +++ b/src/main.cc @@ -188,9 +188,6 @@ main(int argc, char** argv) { control = new Control; - worker_thread = new ThreadWorker(); - worker_thread->init_thread(); - srandom(cachedTime.usec()); srand48(cachedTime.usec()); @@ -217,6 +214,9 @@ main(int argc, char** argv) { torrent::main_thread()->slot_do_work() = tr1::bind(&client_perform); torrent::main_thread()->slot_next_timeout() = tr1::bind(&client_next_timeout, control); + worker_thread = new ThreadWorker(); + worker_thread->init_thread(); + // Initialize option handlers after libtorrent to ensure // torrent::ConnectionManager* are valid etc. initialize_commands();