1
0
mirror of https://github.com/rofl0r/proxychains-ng synced 2026-05-14 09:32:35 +08:00
Commit Graph

4 Commits

  • Fix bug in hostsreader
    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.
  • preliminary ipv6 support
    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.
  • hostsreader: use temporary vars for string manipulation
    working directly with the passed variables could lead to bugs when
    some lines in the hosts file aren't well-formed and the loop is taken
    several times while the buf vars are already modified.
  • replace problematic hostentdb with hostsreader
    the hostentdb introduced between 4.2 and 4.3
    (via af5c6f0c6a )
    had several issues:
    - it caused breakage on FreeBSD and was commented out there
    - prevented usage of the hostdb when proxy_dns was turned off
      (issue #42)
    - required dynamic memory allocation which was accessed from several
      threads
    - wouldnt reflect changes to the hosts file made during program run
    
    the only sensible solution is to remove the hostentdb and replace it
    with a home-grown hosts parser (we can't use gethostent() since
    that would mess up the gethostent()-state from different threads).
    
    the new parser used here is deliberately held simple and only meant
    to provide the user with means to reference hardcoded ipv4 addresses
    via his hosts file.
    
    fixes #42