[tor-dev] Embedding tor in an application and using tor without opening a port

Navin Francis navin.kurupacheril at gmail.com
Fri Apr 12 01:29:44 UTC 2013

I managed to build it with MSVC after tinkering with the code a little. Did
you guys make any progress in making tor a library? It seems like I can
directly call functions like handle_getinfo_helper in control.c to control

//Application that starts tor in a new thread in the same process
#include <future>
#include <iostream>
#include "libtor.h"
using namespace std;
int main(int argc, char *argv[]){
auto tor_return=async(launch::async,start_tor_main,argc, argv);
while (tor_return.wait_for(chrono::seconds(2))!=future_status::ready){
char *ans;
const char *errmsg;
handle_getinfo_helper(NULL, "config/names", &ans, &errmsg);
cout<<"application is running! ["<<ans<<"]"<<endl;
return tor_return.get();

//Duplicates the definitions in Tor. If there is a way around this, do
tell! :)
extern "C"{
int start_tor_main(int argc, char *argv[]);//Tor's main() is renamed to
handle_getinfo_helper(void *control_conn,
const char *question, char **answer,
const char **err_out);

It seems like handle_getinfo_helper is called asynchronously by tor
whenever a GETINFO is recieved on the control port so I don't need
locking/synchronization. Can someone confirm this?

On Sun, Apr 7, 2013 at 4:40 AM, Gisle Vanem <gvanem at broadpark.no> wrote:
> I didn't read the original messege on this, but you have problem building
> Tor and it's libs using MSVC? If so,
> you could try my "GNU make" based system for MingW +
> MSVC here:
>  http://home.broadpark.no/~**gvanem/misc/#tor<http://home.broadpark.no/~gvanem/misc/#tor>
>  http://home.broadpark.no/~**gvanem/misc/tor-windows.zip<http://home.broadpark.no/~gvanem/misc/tor-windows.zip>
> I just tested it with today's Tor Git-repo. And it works for me.
> --gv
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20130411/ad04f9e2/attachment.html>

More information about the tor-dev mailing list