[torsocks/osx] Fix 'symbol res_send() was not found in any shared library'

commit 441fb10e475efa3cf9977fcf223db8344b005555 Author: Robert Hogan <robert@roberthogan.net> Date: Sun Feb 13 12:41:23 2011 +0000 Fix 'symbol res_send() was not found in any shared library' Solution found by Nicolas Pouillard (nicolas.pouillard@gmail.com). However I am still not clear why this is necessary for just this symbol on Linux. To test that it works: cd test/ gcc -fPIC -g -O2 -Wall -I. -o resinit resinit.c -lc -lresolv cd .. export TORSOCKS_DEBUG=2 torsocks test/resinit Expected result: 12:45:33 libtorsocks(21307): Got res_send request http://code.google.com/p/torsocks/issues/detail?id=3 --- src/expansion_table.h | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/src/expansion_table.h b/src/expansion_table.h index 441a009..e981f5d 100644 --- a/src/expansion_table.h +++ b/src/expansion_table.h @@ -1,6 +1,6 @@ /*************************************************************************** * * - * Copyright (C) 2010 alex@ohmantics.net * + * Copyright (C) 2010 Alex Rosenberg <alex@ohmantics.net> * * Copyright (C) 2011 Robert Hogan <robert@roberthogan.net> * * * * This program is free software; you can redistribute it and/or modify * @@ -76,7 +76,12 @@ /*RES_FUNC (ERR, int, RES_INIT_, res_init, res_init, "res_init") */ RES_FUNC (ERR, int, RES_QUERY_, res_query, res_query, "res_query") RES_FUNC (ERR, int, RES_SEARCH_, res_search, res_search, "res_search") +#if defined(__APPLE__) || defined(__darwin__) RES_FUNC (ERR, int, RES_SEND_, res_send, res_send, "res_send") +#else +/* It is a bit of a mystery why this is required on Linux. See http://code.google.com/p/torsocks/issues/detail?id=3 */ +RES_FUNC (ERR, int, RES_SEND_, res_send, res_send, "__res_send") +#endif RES_FUNC (ERR, int, RES_QUERYDOMAIN_, res_querydomain, res_querydomain, "res_querydomain") DNS_FUNC (ERR, struct hostent *, GETHOSTBYNAME_, gethostbyname, gethostbyname, "gethostbyname")
participants (1)
-
hoganrobert@torproject.org