Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/ooni/netx

OONI's Go net and net/http extensions for performing network measurements
https://github.com/ooni/netx

Clearly mention that netx is not maintained anymore (#152)

* Clearly mention that netx is not maintained anymore

Modify the documentation and the runtim...

11e21a6d1a3abf1990dce7006614e582d3233082 authored almost 5 years ago by Simone Basso <[email protected]>
Migrate to GitHub actions (#151)

4f8d645bce6466bb14380b504623102858075cc7 authored almost 5 years ago by Simone Basso <[email protected]>
Merge pull request #150 from ooni/xhdix-feature/edns-padding

Implement padding for DoT and DoH

4cf9bd2fda9455cf5eb24f345badc29e4e146385 authored almost 5 years ago by Simone Basso <[email protected]>
ooniresolver/padding: add unit tests and fix issues

1. my understanding of the RFC is that the whole query must be
a multiple of the desired size, s...

69859059a436f607e6d0213f34cc4de8bb00d4e7 authored almost 5 years ago by Simone Basso <[email protected]>
ooniresolver: add EDNS Padding option

According to RFC8467.

Close #95.

dbb94370a7436df2f653f5459016910af6525b78 authored almost 5 years ago by xhdix <[email protected]>
Remove the experimental scoreboard (#149)

1. this code cannot stay in this repository because it is poised
to change quite frequently alo...

24ca17149d153683d0003181bd69d74d61beaa80 authored almost 5 years ago by Simone Basso <[email protected]>
netx: allow skipping certificate verification (#148)

Closes #127. Related to https://github.com/ooni/probe-engine/issues/2.

9c81a8088bb3a8b8199acbc56720be3d56028fd7 authored almost 5 years ago by Simone Basso <[email protected]>
Run go get -u -v to update deps (#147)

57079947570350364c1bfb711a1ac65b5fd8a9d8 authored almost 5 years ago by Simone Basso <[email protected]>
Merge pull request #146 from ooni/feature/fork_for_probe_engine

Detach porcelain from netx/internal

cc9be0ff637c8965c406dec75a813bfc142cf710 authored almost 5 years ago by Simone Basso <[email protected]>
DESIGN.md: reduce details about experimental packages

It makes sense to discuss the scoreboard, because this is a
functionality that we hope will even...

7ca3d08ac7368c113b86f0a4007c93f8e3bd5d9b authored almost 5 years ago by Simone Basso <[email protected]>
x: clarify that these packages are experimental

It was not always made obvious enough.

9ce476abeaace8a290342d86a70671250f4a18b0 authored almost 5 years ago by Simone Basso <[email protected]>
go.mod: clarifty that go 1.13 is the minimum

c7c4bb433032595ff50245f1363f067673fbd50b authored almost 5 years ago by Simone Basso <[email protected]>
http: last resort error wrapping must be in internal

We were previously wrapping the error in porcelain, which was not
100% correct, because technica...

dc5e999284045da0a5b0fa362f9b33177acf0bef authored almost 5 years ago by Simone Basso <[email protected]>
modelx: export ComputeSnapSize

This is an internal implementation detail currently used by x/porcelain. We
are planning on fork...

0f8ea3819fb3400c277a457180bbdc46c90713f4 authored almost 5 years ago by Simone Basso <[email protected]>
Make sure regress tests are all green on travis (#145)

* ooniresolver_test.go: clarify when this test may fail

It certainly fails in my house. I hav...

4d36a130f0f895cb81af000d92f962c7b5cc1bdc authored almost 5 years ago by Simone Basso <[email protected]>
[API CHANGE] x/porcelain: rewrite confusing return-error API (#142)

8b6135339b0318dc4b1e06de3d33f97fcc9ed816 authored about 5 years ago by Simone Basso <[email protected]>
x/logger: don't explicitly depend on apex/log (#140)

It's more flexible to depend on an apex/log like interface.

1db22423ffb2f2dc2a051beccb8f612980579e10 authored about 5 years ago by Simone Basso <[email protected]>
Merge pull request #139 from ooni/develop

cURL like logs, support Accept{,-Language}, disable auto-followup for bogons

01cf606d5441604906bbeec0f53dbadfbd185848 authored about 5 years ago by Simone Basso <[email protected]>
x/logger: rewrite to be cURL like

Closes #137

68ad428581e4638c611438375c58b50b0a888e50 authored about 5 years ago by Simone Basso <[email protected]>
porcelain: support Accept{,-Language}

Closes #113

cea23a809aa55e14319ce2e0801f365871bd20ad authored about 5 years ago by Simone Basso <[email protected]>
dns: don't automatically fail when a bogon is found

In principle, we may want to measure a website from a place where it has
a bogon address, so we ...

dff0d7fba96d6c77254b08bbca6cf6f15433fb96 authored about 5 years ago by Simone Basso <[email protected]>
Merge pull request #134 from ooni/develop

porcelain: add proxy and byte counting support

75e074291fcae01a0730154079c569ff0d5057dc authored about 5 years ago by Simone Basso <[email protected]>
x/porcelain: measure sent/recv bytes

Closes #133

62d1f36c77f321d14f81a38cde8c2e228123e07c authored about 5 years ago by Simone Basso <[email protected]>
x/porcelain/porcelain.go: add support for proxy

Closes #131

7358ecb882ec1024aaed80140ef3e0b815b22600 authored about 5 years ago by Simone Basso <[email protected]>
httpx/httpx.go: implement NewClientWithProxyFunc

Closes #130

d4974a14cbabf12388fd38dcb58818838e88f397 authored about 5 years ago by Simone Basso <[email protected]>
model: publish SNI when we force it being different (#129)

This helps with analysing tests for SNI triggered RST injection.

bdfd74d9fb6809c6c93cf05995e4991171defd0c authored about 5 years ago by Simone Basso <[email protected]>
DESIGN.md: fix name of event

af540e347965233d0129a7aeb69884bc2bef4ab2 authored about 5 years ago by Simone Basso <[email protected]>
DESIGN.md: fix obvious typo

7011d1451771deb0ed043dcaa9d8e4c7f8ecfb20 authored about 5 years ago by Simone Basso <[email protected]>
README.md: slightly change the wording (#124)

* README.md: slightly change the wording

* Update README.md

31fc6a647fd23ddb8de7def566e353b25bdeeae3 authored about 5 years ago by Simone Basso <[email protected]>
http: always enforce a body snap size (#123)

* http: always enforce a body snap size

If the user explicitly requests for unbounded bodies,...

0563295d50dc324b28b9f6d680d2de53fab04777 authored about 5 years ago by Simone Basso <[email protected]>
HTTPRoundTripDone: prefix Response to response fields (#122)

This is for clarity. Noticed when integrating with probe-engine.

17bb320715da8cd0eb14cf72312a3a305a617e80 authored about 5 years ago by Simone Basso <[email protected]>
refactor: rename model modelx (#121)

It otherwise clashes with ooni/probe-engine/model and hence it's
a bit confusing when you quick...

fe289ef7db5065b9578a268c0c7074eaf3db04b8 authored about 5 years ago by Simone Basso <[email protected]>
DESIGN.md: simplify and reorganize after recent changes (#119)

No real API change. What changes is the way in which I think
about next, so updated the documen...

afcb2ca2dcdba641e53f633b94f04cf7d9a94607 authored about 5 years ago by Simone Basso <[email protected]>
Make sure clients for measurements don't use proxy (#117)

Related to #9 but implemented differently.

2f2b9491ea55b45c3ac6e75b9790052aa263a66a authored about 5 years ago by Simone Basso <[email protected]>
Make sure README.md is accurate (#116)

c844c78252254194d4108b14eb7102bd05b3e635 authored about 5 years ago by Simone Basso <[email protected]>
Add contributing guidelines (#115)

Closes #20

928d81dd8de85de71aba0d2f4271cb6cc2eed9c5 authored about 5 years ago by Simone Basso <[email protected]>
roundTripQuery: trust the first error more (#114)

The first error is the one that is most likely to be caused by the network. Subsequent errors ar...

aa7ac6327b11545103def2a4b38807dfa8c18c32 authored about 5 years ago by Simone Basso <[email protected]>
internal: no keepalive if doh with handler (#113)

Complement the previous path by forcing no keepalives if the
user requests doh with a handler.
...

6a7f2c572fb1644193e910205b4f8cb9c783dd2e authored about 5 years ago by Simone Basso <[email protected]>
internal: use global doh client with NoHandler (#112)

As explained in the code, this allows us to avoid worrying about
closing the connections that a...

1366c49511ff5f613a4c5788035ea851374ddae5 authored about 5 years ago by Simone Basso <[email protected]>
Attribute error to a major operation (#111)

Not necessarily needed but very helpful to implement OONI tests.

Xref: https://github.com/oon...

0f827f754d5353ad929b73d31289ac2e539e5b7e authored about 5 years ago by Simone Basso <[email protected]>
Fix several DNS issues when testing with jafar (#110)

* errwrapper: map the TLS handshake timeout error

* ooniresolver: correctly recognize and han...

84abe2feb585c1f33b75ea33fcd9a092c7b9a695 authored about 5 years ago by Simone Basso <[email protected]>
Automatically investigate possible SNI blocking (#109)

c53a3e99fadbdeedb32b92cce5bcf1239cf1948a authored about 5 years ago by Simone Basso <[email protected]>
porcelain: Implement automatic DNS fallback (#108)

Xref:
- https://github.com/ooni/probe-engine/issues/87
- https://github.com/ooni/probe-engine/...

894dd761a14ad8d0942ce41d50a4552ff103d32e authored about 5 years ago by Simone Basso <[email protected]>
Expose the scoreboard (#107)

Functional to enable follow-up measurements.

Xref: https://github.com/ooni/probe-engine/issue...

5197c35de0592010242a55a793551825a59b700c authored about 5 years ago by Simone Basso <[email protected]>
Merge nervousresolver chaining with stable code (#106)

Now, rather than using nervousresolver as an opt-in that is not
so easy to use, you can chain a...

c29f7ee6479268c15e748e984f8882e2fc8849de authored about 5 years ago by Simone Basso <[email protected]>
Make bogon detection a first class citizen (#105)

While there make sure netx.go has 100% coverage

d7d1d5801404c5c76cc6ab5fa6e3e223415abd1b authored about 5 years ago by Simone Basso <[email protected]>
Make sure every toplevel op is cancellable (#104)

* Make sure every toplevel op is cancellable

* Significantly reduce risk of flaky tests

b4ad002651f0c160811166b492ece17d5ffe1b7a authored about 5 years ago by Simone Basso <[email protected]>
Make sure all packages have 100% coverage (#103)

* Make sure all packages have 100% coverage

* porcelain: add test for late write on channel

39e3589530f5b625492c21f0caf19ea93c311a4e authored about 5 years ago by Simone Basso <[email protected]>
Rewrite porcelain to be easier to run OONI tests (#102)

While there, zap existing clients that were creating significant
test burden and replace them...

3c7e2a4701b94fa6dbfd7de31b078e98fe214c99 authored about 5 years ago by Simone Basso <[email protected]>
http: change body reading strategy (#101)

* http: change body reading strategy

Always read snapshots of all bodies. Limit snapshot to 1...

099f66c20ae3aab3ad9b9a8f93a14100e1e21b13 authored about 5 years ago by Simone Basso <[email protected]>
fix(internal.go): make sure system resolver emits events (#100)

We were creating a system resolver that was not correctly wrapped
using the emittingresolver, h...

c5355670ee0ce544db61543fe6eaa8e30fd41183 authored about 5 years ago by Simone Basso <[email protected]>
resolve: let transports identify themselves (#99)

359d01d95da6954b794f03ecde6274db9f832d70 authored about 5 years ago by Simone Basso <[email protected]>
internal: let the resolver emit resolve events (#98)

* internal: let the resolver emit resolve events

This fixes a bug where a standalone Resolver...

318609d03d541d14477949d5971b75726887199e authored about 5 years ago by Simone Basso <[email protected]>
dialer: no need to emit "resolve" of IPs (#97)

There is no actual resolve of IPs. We include the TxID also in
the connect event, so there's ac...

28a2da98b15358efbf5431f6d07b6ddd99367a4b authored about 5 years ago by Simone Basso <[email protected]>
Add porcelain to facilitate SNI injection testing (#96)

* Add porcelain to facilitate SNI injection testing

* Repair broken tests

Package flags mu...

7b08df0915e34431daa9c7b40817d21795ca07de authored about 5 years ago by Simone Basso <[email protected]>
nervousresolver: use cloudflare IP address (#94)

We should probably introduce a longer chain of fallbacks in the
nervous resolver, but, for now,...

1ec4f0b6c9851ae4fedec9a7daa8003d722f70dc authored about 5 years ago by Simone Basso <[email protected]>
porcelain: also expose the TLS handshake results (#93)

Not immediately necessary, but nice to have.

54fdd2659fc190d64091c56f6b974d12caddf139 authored about 5 years ago by Simone Basso <[email protected]>
Add enough porcelain to make Telegram simple (#92)

I've determined that it's better to add more porcelain here as
an extension, and keep ooni/prob...

759012337249c61e8efbc6e45634c778b6589a78 authored about 5 years ago by Simone Basso <[email protected]>
http: implement easy handling of round trips (#91)

This diff implements easy handling of round trips by putting into
the same event all the inform...

8f0b06eba40ea8571853794d3df10ac21b0c4093 authored about 5 years ago by Simone Basso <[email protected]>
Adapt the HTTP configuration more to OONI needs (#90)

We need to observe real headers, so reduce the magic performed
under the hood by Go. The really...

272a23deefc56b4163a80200167c8d2bf2e40439 authored about 5 years ago by Simone Basso <[email protected]>
Rework nervous resolver and make it opt-in (#89)

* Rework nervous resolver and make it opt-in

I realised it was not a good idea to have it hid...

37f2a8ac1bd89000d584f689dfb23708bb4a0df9 authored about 5 years ago by Simone Basso <[email protected]>
Make sure our DNS retry policy is sane (#88)

Implement retries for queries. Tested with unit testing as well
as configuring ooni/jafar to dr...

9a94f46faf2b19b5cfd7133d7b9ca4274799f579 authored about 5 years ago by Simone Basso <[email protected]>
nervousresolver: fix processing of bogons (#87)

For now let us limit to act if we see any bogon. If we see at
least one, we cannot trust the up...

6a17ce1db59458a4ffff712a8fe150c1050a9212 authored about 5 years ago by Simone Basso <[email protected]>
Add some porcelain to simplify using netx (#86)

* Add some porcelain to simplify using netx

* fix embarrassing bug

* much better tests for...

547cc5f05d97daf8744663277611f188a0ddd336 authored about 5 years ago by Simone Basso <[email protected]>
Significantly improve scoreboard tests (#85)

More confidence, less stress.

1731186d7be509e130afbe9399aad30b872c4c38 authored about 5 years ago by Simone Basso <[email protected]>
Extend scoreboard to also track TLS handshake RST (#82)

The scoreboard package will probably benefit from some more
precise unit testing with respect t...

5972a625ebdb72484bad08d62e2ffd2116d75366 authored about 5 years ago by Simone Basso <[email protected]>
Make nervous system data more immediately actionable (#84)

Implement a scoreboard and write there what we see. The follow up
action may or may not be requ...

48cfb0ec46d74c535da03db8d6c455148a44d304 authored about 5 years ago by Simone Basso <[email protected]>
Teach transport to report their address and network (#83)

I will soon use this feature to implement interim resolves info.

bd3538c10d03ee4125af444b62541fe053c9ea70 authored about 5 years ago by Simone Basso <[email protected]>
Clarify that logger is an experimental/extension (#81)

19a7837864ba320c9743cc7bc924226787bf23da authored about 5 years ago by Simone Basso <[email protected]>
Nervous system: nervous resolver that handles bogons (#80)

I am not 100% sold yet on what is the actionable top-level event
to in order to clarify in the l...

f91678a13f557681637ba27f9721db65bf959e6b authored about 5 years ago by Simone Basso <[email protected]>
dnsdialer: allow to divert lookuphost (#79)

A MeasurementRoot can contain an alternative LookupHost function
which may be used to bypass th...

944c6eadc91173999f4ebdfb1f0482915cbd42eb authored about 5 years ago by Simone Basso <[email protected]>
Make events actionable for OONI's nervous system (#78)

After trial and error, I have determined that, in general, to decide
whether we need follow-up ...

518daf982fce6f5a0692ca7bc0dd7d9b767ac1dc authored about 5 years ago by Simone Basso <[email protected]>
testdata: remove now obsolete code and data

f434bb88bffebf590109c33406398c4b6c65854d authored about 5 years ago by Simone Basso <[email protected]>
Make sure errors are MK compatible (#77)

* Make sure errors are MK compatible

* we now require Go v1.13

be033a6e89c1298dc10a286d9874e9d30217ee72 authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] Update the data model for consistency (#76)

Mainly naming suggestions by @hellais. Also, mention context
rooted measurements as an alternat...

faedc58314b84cfe259827f421c951b5b0fb79c2 authored about 5 years ago by Simone Basso <[email protected]>
Capture, emit, and log DNS messages (#75)

ebab5efa7210c5109f57fe7662ea5a4c0a2a11e0 authored about 5 years ago by Simone Basso <[email protected]>
Cross reference dials and transactions (#74)

1. make sure that, when we start a DoH transaction to resolve a
domain name, we know which di...

ce51b9450d6efaed1f5997653757da38da604169 authored about 5 years ago by Simone Basso <[email protected]>
Introduce pretty logging of events (#73)

* Introduce pretty logging of events

It turns out I'm much more efficient at reading such log...

9cdf74141ef2de04a1dfb4de3741916e5d2d9f83 authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] HTTPRequestDone: add error (#72)

This is useful to distinguish the case where the error was in
sending the request from the one ...

58588556024b7492d62d1ca44007d98bdab66078 authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] Split the resolve event (#71)

Lots of stuff may happen between the beginning and the end of a
resolver, therefore, it makes s...

d158701706c31a9379f4d8ec2b25d093a9dca010 authored about 5 years ago by Simone Basso <[email protected]>
internal: make measurements context rooted (#70)

No hurry to do that externally, for now. Paves the way for
doing that quite easily, however.

a31a2a5ef1a1a5dffe4dd0cb03cedede5aeffeb8 authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] let net/http perform TLS handshake (#69)

I'm starting to think it would be better to pass the handler
through a context, and to have a u...

5c4b0039af2bff30494332c6cdc004a9b4fa280f authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] Simplify header-handling code (#68)

122648e3cb1d053be693739c0a2cd0d45d9d46b4 authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] Clearly identify the round trip (#67)

The round trip is what happens since we start thinking about
sending a request until when we re...

432ee74e4df5dad68064a414e6643498ba6a76ec authored about 5 years ago by Simone Basso <[email protected]>
internal: no more than a single connection per host (#66)

07692e1b65801e4ac7e2f7a46b434681f421d151 authored about 5 years ago by Simone Basso <[email protected]>
Use ConnID that we can generate from HTTP (#65)

We are using the local port and the protocol. This makes it
possible to join HTTP and network l...

ce6b618f675e428b45491a4a37df889fdff1abc8 authored about 5 years ago by Simone Basso <[email protected]>
http: move configuration code in the internal package (#64)

28722ce585faebb1db80e1e9af91040318e12062 authored about 5 years ago by Simone Basso <[email protected]>
http: split round-trip events from body wrapping (#63)

55a53fe5cbe47bf9ca76e70c7c795f6f93464ce5 authored about 5 years ago by Simone Basso <[email protected]>
toptripper: add diff I didn't include #62

fac71f7f72f38a3595834b471e04aaaac0a3c682 authored about 5 years ago by Simone Basso <[email protected]>
http: continue splitting transport in smaller pieces (#62)

c31233f41a8901710ad5b14c305602ea0e4bf758 authored about 5 years ago by Simone Basso <[email protected]>
http: start splitting the httptransport (#61)

* http: start splitting the httptransport

* Drop support for Go v1.11

It does not have Clo...

96ac367b93abecf13d88eb4193bf7ab96b525b74 authored about 5 years ago by Simone Basso <[email protected]>
dnsconf sleeps with the fishes (#60)

6cf64f0f1d2e19f22b8090fb8251d311bea3d029 authored about 5 years ago by Simone Basso <[email protected]>
resolver: move configuration-like code to internal (#59)

* resolver: move configuration-like code to internal

* internal.go: forgot to simplify using ...

1dccd42fadb17144ae0990c1a78ecddb806fbcb6 authored about 5 years ago by Simone Basso <[email protected]>
dialer: move former dialerapi inside internal (#58)

Now everything inside dialer more or less makes sense and we
have got rid of a good amount of s...

61daeb1a7c1cbf9604ebe453bc68f630b17412c7 authored about 5 years ago by Simone Basso <[email protected]>
dialer: factor out real Dialer{,TLS} factories (#57)

What remains code support for version 0.1.0's API

810b237b88b9fe4b3b6bab7a2918af24c3f10451 authored about 5 years ago by Simone Basso <[email protected]>
dialer: refactor DNS handling code in dnsdialer (#56)

887c35b0b61837a5f4a76744124664a29ca34cc0 authored about 5 years ago by Simone Basso <[email protected]>
dialer: refactor TLS dialing as model.TLSDialer (#55)

0c64bee8c4794855348a8e82dd9d7274a8b79b19 authored about 5 years ago by Simone Basso <[email protected]>
dialerbase: refactor to be a real dialer (#54)

d6c36a645a5772c1c1400b84d083e906bf3b2c1b authored about 5 years ago by Simone Basso <[email protected]>
[DATA CHANGE] fix: distinguish between connect and dial (#53)

A dial may consist of more than a single connect, so it is
actually wrong to use the same ID fo...

f5fdf9e772bd44fb370f325f48eb3b8ef4698903 authored about 5 years ago by Simone Basso <[email protected]>
Move everything dialer-related in internal/dialer (#52)

0963a5a51db2742db1e183e870c20383c878765d authored about 5 years ago by Simone Basso <[email protected]>