• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ooni / probe-cli / 6247085500 / 1
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 20 Sep 2023 11:15AM UTC
Files 503
Run time 9s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Sep 2023 10:08AM UTC coverage: 81.439% (+0.2%) from 81.262%
6247085500.1

push

github

web-flow
feat(enginenetx): add configurable HTTPS dialer (#1283)

This commit introduces a configurable HTTPS dialer that we will use for
implementing beacons, and possibly also other functionality.

We need to perform TCP connect and TLS handshake as part of the same
goroutine, because we cannot consider a dialing attempt successful after
a successful TCP connect. Due to network interference, the dialing may
also fail later during the TLS handshake.

To support several possible HTTPS dialing strategies, we need to extend
what happens during a LookupHost operation. Generally, one would like to
have addresses to dial. Rather, here we have tactics, where a single IP
address MAY be included into more than a single tactic, if we need to
try different tricks with the same address.

Also, tactics include a delay, which is useful to (a) avoid performing
all operations in parallel, which is not gentle towards otherwise
perfectly functioning networks and (b) give penalty to tactics that
utilize circumvention, such that we don't even attempt them unless we
need to.

In turn, the DNS resolver is wrapped by a policy for configuring TLS
dialing. Basically, the policy observes the IP addresses returned by an
underlying resolver and then it will decide which tactics to produce
based on that. Note that the policy could also extend the set of
returned IP addresses when the domain for which we connect is such that
we have known IP addresses in advance for such a domain.

The default policy we introduce in this commit behaves as follows:

1. it asks the engine to create 16 goroutines for dialing;

2. it uses the DNS lookup results w/o adding any extra IP addr;

3. it produces a tactic for each IP address where we use the domain as
the SNI and we add a 300 millisecond delay to the second tactic, 600 to
the third, and so on--which is similar to implementing happy eyeballs.

It's also worth noting that, tactics MAY override the TLS handshaker
b... (continued)

23342 of 28662 relevant lines covered (81.44%)

24.03 hits per line

Source Files on job 0 - 6247085500.1
  • Tree
  • List 0
  • Changed 20
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 6247085500
  • dff7cedd on github
  • Prev Job for on master (#6235215729.1)
  • Next Job for on master (#6248086970.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc