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 From http://www.uwsg.iu.edu/hypermail/linux/kernel/0307.2/att-1234/01-kmap-types-cleanup.patch
2 See http://www.uwsg.iu.edu/hypermail/linux/kernel/0307.2/1234.html
4 From: Marc-Christian Petersen (m.c.p@wolk-project.de)
7 > > internal.h:19:28: asm/kmap_types.h: No such file or directory
8 > Same on s390 and some other platforms.We should just get rid of
9 > this problem by providing a generic kmap_types header.
10 I agree on this but your patch is bogus. Please use the attached one instead.
12 Marcello, please apply this one instead. Against 2.4.22-BK (2.4.21-bk14)
14 [ I commented out the hunk
15 #+++ b/include/asm-mips/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
16 to get this to apply to linux-2.4.26.
19 diff -Naurp a/crypto/internal.h b/crypto/internal.h
20 --- a/crypto/internal.h 2003-07-19 14:09:06.000000000 +0200
21 +++ b/crypto/internal.h 2003-07-19 14:18:58.000000000 +0200
24 #include <linux/highmem.h>
25 #include <linux/init.h>
26 +#include <linux/kmap_types.h>
27 #include <asm/hardirq.h>
28 #include <asm/softirq.h>
29 -#include <asm/kmap_types.h>
31 extern enum km_type crypto_km_types[];
33 diff -Naurp a/include/asm-i386/fixmap.h b/include/asm-i386/fixmap.h
34 --- a/include/asm-i386/fixmap.h 2003-07-19 14:09:31.000000000 +0200
35 +++ b/include/asm-i386/fixmap.h 2003-07-19 14:18:58.000000000 +0200
39 #include <linux/threads.h>
40 -#include <asm/kmap_types.h>
41 +#include <linux/kmap_types.h>
45 diff -Naurp a/include/asm-i386/highmem.h b/include/asm-i386/highmem.h
46 --- a/include/asm-i386/highmem.h 2003-07-15 10:28:54.000000000 +0200
47 +++ b/include/asm-i386/highmem.h 2003-07-19 14:18:58.000000000 +0200
49 #include <linux/config.h>
50 #include <linux/init.h>
51 #include <linux/interrupt.h>
52 -#include <asm/kmap_types.h>
53 #include <asm/pgtable.h>
55 #ifdef CONFIG_DEBUG_HIGHMEM
56 diff -Naurp a/include/asm-i386/kmap_types.h b/include/asm-i386/kmap_types.h
57 --- a/include/asm-i386/kmap_types.h 2003-07-19 14:09:31.000000000 +0200
58 +++ b/include/asm-i386/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
60 -#ifndef _ASM_KMAP_TYPES_H
61 -#define _ASM_KMAP_TYPES_H
66 - KM_SKB_DATA_SOFTIRQ,
76 diff -Naurp a/include/asm-m68k/kmap_types.h b/include/asm-m68k/kmap_types.h
77 --- a/include/asm-m68k/kmap_types.h 2003-07-19 14:09:33.000000000 +0200
78 +++ b/include/asm-m68k/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
81 -#ifndef _ASM_KMAP_TYPES_H
82 -#define _ASM_KMAP_TYPES_H
87 - KM_SKB_DATA_SOFTIRQ,
97 -#endif /* __KERNEL__ */
98 diff -Naurp a/include/asm-mips/fixmap.h b/include/asm-mips/fixmap.h
99 --- a/include/asm-mips/fixmap.h 2002-09-27 23:26:03.000000000 +0200
100 +++ b/include/asm-mips/fixmap.h 2003-07-19 14:18:58.000000000 +0200
102 #include <asm/page.h>
103 #ifdef CONFIG_HIGHMEM
104 #include <linux/threads.h>
105 -#include <asm/kmap_types.h>
106 +#include <linux/kmap_types.h>
110 diff -Naurp a/include/asm-mips/highmem.h b/include/asm-mips/highmem.h
111 --- a/include/asm-mips/highmem.h 2002-12-18 01:03:59.000000000 +0100
112 +++ b/include/asm-mips/highmem.h 2003-07-19 14:18:58.000000000 +0200
115 #include <linux/init.h>
116 #include <linux/interrupt.h>
117 -#include <asm/kmap_types.h>
118 #include <asm/pgtable.h>
120 /* undef for production */
121 #diff -Naurp a/include/asm-mips/kmap_types.h b/include/asm-mips/kmap_types.h
122 #--- a/include/asm-mips/kmap_types.h 2002-12-18 01:03:59.000000000 +0100
123 #+++ b/include/asm-mips/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
125 #-#ifndef _ASM_KMAP_TYPES_H
126 #-#define _ASM_KMAP_TYPES_H
130 #- KM_SKB_SUNRPC_DATA,
131 #- KM_SKB_DATA_SOFTIRQ,
139 diff -Naurp a/include/asm-ppc/highmem.h b/include/asm-ppc/highmem.h
140 --- a/include/asm-ppc/highmem.h 2003-07-19 14:09:33.000000000 +0200
141 +++ b/include/asm-ppc/highmem.h 2003-07-19 14:18:58.000000000 +0200
144 #include <linux/init.h>
145 #include <linux/interrupt.h>
146 -#include <asm/kmap_types.h>
147 +#include <linux/kmap_types.h>
148 #include <asm/pgtable.h>
150 /* undef for production */
151 diff -Naurp a/include/asm-ppc/kmap_types.h b/include/asm-ppc/kmap_types.h
152 --- a/include/asm-ppc/kmap_types.h 2003-07-19 14:09:33.000000000 +0200
153 +++ b/include/asm-ppc/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
156 -#ifndef _ASM_KMAP_TYPES_H
157 -#define _ASM_KMAP_TYPES_H
161 - KM_SKB_SUNRPC_DATA,
162 - KM_SKB_DATA_SOFTIRQ,
172 -#endif /* __KERNEL__ */
173 diff -Naurp a/include/asm-ppc64/kmap_types.h b/include/asm-ppc64/kmap_types.h
174 --- a/include/asm-ppc64/kmap_types.h 2003-07-19 14:09:35.000000000 +0200
175 +++ b/include/asm-ppc64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
178 -#ifndef _ASM_KMAP_TYPES_H
179 -#define _ASM_KMAP_TYPES_H
183 - KM_SKB_SUNRPC_DATA,
184 - KM_SKB_DATA_SOFTIRQ,
199 -#endif /* __KERNEL__ */
200 diff -Naurp a/include/asm-sparc/highmem.h b/include/asm-sparc/highmem.h
201 --- a/include/asm-sparc/highmem.h 2003-07-15 10:28:56.000000000 +0200
202 +++ b/include/asm-sparc/highmem.h 2003-07-19 14:18:58.000000000 +0200
206 #include <linux/interrupt.h>
207 -#include <asm/kmap_types.h>
208 +#include <linux/kmap_types.h>
210 /* undef for production */
211 #define HIGHMEM_DEBUG 1
212 diff -Naurp a/include/asm-sparc/kmap_types.h b/include/asm-sparc/kmap_types.h
213 --- a/include/asm-sparc/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
214 +++ b/include/asm-sparc/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
216 -#ifndef _ASM_KMAP_TYPES_H
217 -#define _ASM_KMAP_TYPES_H
221 - KM_SKB_SUNRPC_DATA,
222 - KM_SKB_DATA_SOFTIRQ,
232 diff -Naurp a/include/asm-sparc64/kmap_types.h b/include/asm-sparc64/kmap_types.h
233 --- a/include/asm-sparc64/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
234 +++ b/include/asm-sparc64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
236 -#ifndef _ASM_KMAP_TYPES_H
237 -#define _ASM_KMAP_TYPES_H
239 -/* Dummy header just to define km_type. None of this
240 - * is actually used on sparc64. -DaveM
245 - KM_SKB_SUNRPC_DATA,
246 - KM_SKB_DATA_SOFTIRQ,
256 diff -Naurp a/include/asm-x86_64/kmap_types.h b/include/asm-x86_64/kmap_types.h
257 --- a/include/asm-x86_64/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
258 +++ b/include/asm-x86_64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
260 -#ifndef _ASM_KMAP_TYPES_H
261 -#define _ASM_KMAP_TYPES_H
266 - KM_SKB_DATA_SOFTIRQ,
275 diff -Naurp a/include/linux/highmem.h b/include/linux/highmem.h
276 --- a/include/linux/highmem.h 2003-07-19 14:09:37.000000000 +0200
277 +++ b/include/linux/highmem.h 2003-07-19 14:18:58.000000000 +0200
279 #define _LINUX_HIGHMEM_H
281 #include <linux/config.h>
282 +#include <linux/kmap_types.h>
283 #include <asm/pgalloc.h>
285 #ifdef CONFIG_HIGHMEM
286 diff -Naurp a/include/linux/kmap_types.h b/include/linux/kmap_types.h
287 --- a/include/linux/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
288 +++ b/include/linux/kmap_types.h 2003-07-19 14:18:58.000000000 +0200
290 +#ifndef _LINUX_KMAP_TYPES_H
291 +#define _LINUX_KMAP_TYPES_H
295 + KM_SKB_SUNRPC_DATA,
296 + KM_SKB_DATA_SOFTIRQ,