Commit 4154158d authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Make config/parse_tcp_proxy_line work in the presence of DNS hijacking

We can use our existing mocking functionality to do this: We have
been in this position before.

Fixes part of #40179; bugfix on 0.4.3.1-alpha.
parent 4876409c
Loading
Loading
Loading
Loading

changes/bug40179_part2

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor bugfixes (testing):
    - Fix the config/parse_tcp_proxy_line test so that it works correctly on
      systems where the DNS provider hijacks invalid queries.
      Fixes part of bug 40179; bugfix on 0.4.3.1-alpha.
+4 −2
Original line number Diff line number Diff line
@@ -703,11 +703,13 @@ test_config_parse_tcp_proxy_line(void *arg)
  tor_free(msg);

  /* Bad TCPProxy line - unparsable address/port. */
  ret = parse_tcp_proxy_line("haproxy 95.216.163.36/443", options, &msg);
  MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs);
  ret = parse_tcp_proxy_line("haproxy bogus_address!/300", options, &msg);
  tt_int_op(ret, OP_EQ, -1);
  tt_str_op(msg, OP_EQ, "TCPProxy address/port failed to parse or resolve. "
                        "Please fix.");
  tor_free(msg);
  UNMOCK(tor_addr_lookup);

  /* Good TCPProxy line - ipv4. */
  ret = parse_tcp_proxy_line("haproxy 95.216.163.36:443", options, &msg);
@@ -720,7 +722,7 @@ test_config_parse_tcp_proxy_line(void *arg)
  tor_free(msg);

 done:
  ;
  UNMOCK(tor_addr_lookup);
}

/**