Age | Commit message (Collapse) | Author |
|
we temporarily store all buildsystem-set conditionals into
OUR_CPPFLAGS and write it into config.mak as an addition to eventually
user-supplied CPPFLAGS. this should prevent crucial things we set from
being overwritten by a user that has CPPFLAGS exported.
fixes #142
|
|
On Mac OS X, random chain was broken and returned always the last proxy from the
config file. Use fix as suggested by @ravomavain.
Closes #75.
|
|
apparently mktemp on OSX 10.9.5 requires a parameter.
instead of playing whack-a-mole with apple we now use the portable
code from musl's configure script which should work everywhere.
adresses #142
|
|
closes #126
|
|
When hardening flags are set by Debian's auto build system,
the project fails to build due to usage of -pie, which tells the linker
to build a PIE binary, and since the user LDFLAGS are deliberately put
later in the command line to override things, this overrides -shared.
work around by putting it directly in the last position of the linker
command line.
closes #124
Commit message authored by commiter.
|
|
Fix "missing braces around initializer" warning.
|
|
it turned out that calling dlsym() may call malloc() in turn,
so we end up with the same deadlock described in the latest commit.
we thus now put all the fds passed to close pre-init into a list
and close them at init time.
this may finally fix #119.
|
|
it was observed that it is a bad idea to initialize the entire
infrastructure used by proxychains from the close hook,
because the following scenario will lead to a deadlock:
- it is possible that the dynlinker executes the initializer code of
other shared libs first
- if that code directly or indirectly calls malloc()
- which calls close() if it decided to use an mmap based allocation
- will now call our close(), which does
- call pthread_once which requires a lock
- creates a thread which calls malloc()
- which in turn calls our close() another time
- and our close is still in locked state.
so it seems the only save thing to do is to just get the address
of the original close function, and call that when we're in a
pre-init state.
this may hold for other functions that do lazy initialization as well,
however for those just calling the original function is probably
undesired since that could result in unproxified connections.
it will be needed to analyze on a per-function basis what the best
thing to do is, and finally rely only on the execution of the init
function from the gcc initializer.
should fix #119
|
|
|
|
|
|
|
|
http://marc.info/?l=openbsd-bugs&m=145280872431093&w=2
closes #95
|
|
|
|
hostsreader_get() used to assign the IP address to both `name` and `ip`
fields in `struct hostsreader`, which led to proxychains effectively
ignoring the contents of /etc/hosts.
|
|
|
|
|
|
|
|
|
|
closes #94
|
|
this should fix the build of the recently added ipv6 code on MacOS X,
OpenBSD and eventually FreeBSD.
closes #83
closes #85
thanks to @cam13 and @vonnyfly for reporting/testing.
|
|
|
|
config.mak is autogenerated by the configure script since a long time.
there's no need to supply the example anymore, and it appears a lot
of people are looking into the directory expecting to find a binary
distribution.
|
|
if an ipv4-mapped ipv6 address is detected, the ip is converted
into v4 format because it may actually be one of our remote dns ips.
it was reported that a program called "maven", when getting handed our
fake ips in the remote dns subnet, converts the ip to v6 prior to calling
connect():
[proxychains] Strict chain ... 127.0.0.1:1080 ... ::ffff:224.0.0.1:443
<--socket error or timeout!
fixes #77
|
|
|
|
only basic testing was done (with 2 socks5 proxies listening on ::1)
but seems to work as intended.
ipv6 support for the hostsreader (/etc/hosts) is not implemented so far.
|
|
since "user" always points to a statically allocated string buffer,
the test for if(user)... was bogus.
use ulen instead.
this bug should only be visible on socks servers that require auth
if username was not passed, so it was probably not really an issue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the allocatorthread got pointers to RAM which were reallocated
behind the back, and if realloc() couldn't grow in-place, lead
to segfaults in applications that do a lot of DNS-lookups such
as webbrowsers.
closes #66
closes #31
thanks to @ravomavain for tracking down the issue.
|
|
|
|
This reverts commit e79e05a228558e95ee2d3e7cfffd9bbe1e4a368e.
This commit broke link order for a number of people.
|
|
This reverts commit 377b474b40bb34fde018301294e02850dac928fe.
There still are problems with the link order.
Revert to the known-good version.
|
|
|
|
|
|
closes #60
|
|
closes #52
|
|
|
|
Fix LDFLAGS
|
|
add sendto hook to handle MSG_FASTOPEN flag
|
|
- Use user-supplied LDFLAGS
- Use LDFLAGS for linking proxychains4
|
|
|
|
|
|
|