Configure tsocks with a simple heuristic.
Consider the proxy has to be in a 'local' network. It means it is directly
reachable by the local machine, even if the local machine has to hop through
one or more gates to reach the proxy (often the case in enterprise networks
where class A 10.0.0.0/8 is in fact sub-divided into smaller networks, each
one of them in a different location, eg. 10.1.0.0/16 in a place, while
10.2.0.0/16 would be on the other side of the world). Not being in the same
subnet does not mean the proxy is not available.
So we will build a mask with at most high bits set, which defines a network
that has both the local machine and the proxy. Because a machine may have
more than one interface, build a mask for each of them, removing 127.0.0.1
which is added automagically by tsocks, and removing duplicate masks.
If all of this does not work, then it means the local machine can NOT in fact
reach the proxy, which in turn means the user mis-configured something (most
probably a typo...).
/trunk/scripts/crosstool.sh | 61 52 9 0 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 52 insertions(+), 9 deletions(-)
1 Patch to correctly handle the MIPS case.
3 It was build up by Yann E. MORIN <yann.morin.1998@anciens.enib.fr> from some
4 bits gathered from buildroot, which is LGPL v2.1
5 License for dmalloc is:
6 * Permission to use, copy, modify, and distribute this software for
7 * any purpose and without fee is hereby granted, provided that the
8 * above copyright notice and this permission notice appear in all
9 * copies, and that the name of Gray Watson not be used in advertising
10 * or publicity pertaining to distribution of the document or software
11 * without specific, written prior permission.
13 * Gray Watson makes no representations about the suitability of the
14 * software described herein for any purpose. It is provided "as is"
15 * without express or implied warranty.
17 I personnaly believe that the resulting code should therefore be
18 LGPL v2.1, but don't believe me, ask your lawyers!
20 diff -dur dmalloc-5.5.2.orig/configure dmalloc-5.5.2/configure
21 --- dmalloc-5.5.2.orig/configure 2007-05-18 12:15:39.000000000 +0200
22 +++ dmalloc-5.5.2/configure 2007-05-18 12:15:48.000000000 +0200
24 echo $ECHO_N "checking return.h macros work... $ECHO_C" >&6
25 if test "$cross_compiling" = yes; then
26 cat >>confdefs.h <<\_ACEOF
27 -#define RETURN_MACROS_WORK 0
28 +#define RETURN_MACROS_WORK 1
30 echo "$as_me:$LINENO: result: no" >&5
31 echo "${ECHO_T}no" >&6
32 diff -dur dmalloc-5.5.2.orig/return.h dmalloc-5.5.2/return.h
33 --- dmalloc-5.5.2.orig/return.h 2007-05-14 19:26:14.000000000 +0200
34 +++ dmalloc-5.5.2/return.h 2007-05-18 12:15:48.000000000 +0200
36 /*************************************/
39 - * For DEC Mips machines running Ultrix
40 + * For Mips machines running Linux
45 - * I have no idea how to get inline assembly with the default cc.
52 * NOTE: we assume here that file is global.
54 - * $31 is the frame pointer. $2 looks to be the return address but maybe
56 + * $31 is the return address.
58 -#define GET_RET_ADDR(file) asm("sw $2, file")
61 +#define GET_RET_ADDR(file) asm("sw $31, %0" : "=m" (file))