Directories ¶
Path | Synopsis |
---|---|
Package implements a Saver type that saves network, TCP, DNS, and TLS events.
|
Package implements a Saver type that saves network, TCP, DNS, and TLS events. |
Package atomicx extends sync/atomic.
|
Package atomicx extends sync/atomic. |
Package bytecounter contains code to track the number of bytes sent and received by a probe.
|
Package bytecounter contains code to track the number of bytes sent and received by a probe. |
cmd
|
|
apitool
Command apitool is a simple tool to fetch individual OONI measurements.
|
Command apitool is a simple tool to fetch individual OONI measurements. |
getresources
Command getresources downloads the resources
|
Command getresources downloads the resources |
jafar
Jafar is a censorship simulation tool used for testing OONI.
|
Jafar is a censorship simulation tool used for testing OONI. |
jafar/badproxy
Package badproxy implements misbehaving proxies.
|
Package badproxy implements misbehaving proxies. |
jafar/flagx
Package flagx contains extensions for the standard library flag package.
|
Package flagx contains extensions for the standard library flag package. |
jafar/httpproxy
Package httpproxy contains a censoring HTTP proxy.
|
Package httpproxy contains a censoring HTTP proxy. |
jafar/iptables
Package iptables contains code for managing firewall rules.
|
Package iptables contains code for managing firewall rules. |
jafar/resolver
Package resolver contains a censoring DNS resolver.
|
Package resolver contains a censoring DNS resolver. |
jafar/tlsproxy
Package tlsproxy contains a censoring TLS proxy.
|
Package tlsproxy contains a censoring TLS proxy. |
jafar/uncensored
Package uncensored contains code used by Jafar to evade its own censorship efforts by taking alternate routes.
|
Package uncensored contains code used by Jafar to evade its own censorship efforts by taking alternate routes. |
miniooni
Command miniooni is a simple binary for research and QA purposes with a CLI interface similar to MK and OONI Probe v2.x.
|
Command miniooni is a simple binary for research and QA purposes with a CLI interface similar to MK and OONI Probe v2.x. |
oohelper
Command oohelper contains a simple command line client for the Web Connectivity test helper.
|
Command oohelper contains a simple command line client for the Web Connectivity test helper. |
oohelperd
Command oohelperd contains the Web Connectivity test helper.
|
Command oohelperd contains the Web Connectivity test helper. |
oohelperd/internal/websteps
Package websteps implements the websteps test helper.
|
Package websteps implements the websteps test helper. |
printversion
Command printversion prints the current version of this repository.
|
Command printversion prints the current version of this repository. |
ptxclient
Command ptxclient implements a pluggable transports CLI client.
|
Command ptxclient implements a pluggable transports CLI client. |
Package engine contains the engine API.
|
Package engine contains the engine API. |
experiment/dash
Package dash implements the DASH network experiment.
|
Package dash implements the DASH network experiment. |
experiment/dnscheck
Package dnscheck contains the DNS check experiment.
|
Package dnscheck contains the DNS check experiment. |
experiment/example
Package example contains a simple example experiment.
|
Package example contains a simple example experiment. |
experiment/fbmessenger
Package fbmessenger contains the Facebook Messenger network experiment.
|
Package fbmessenger contains the Facebook Messenger network experiment. |
experiment/hhfm
Package hhfm contains the HTTP Header Field Manipulation network experiment.
|
Package hhfm contains the HTTP Header Field Manipulation network experiment. |
experiment/hirl
Package hirl contains the HTTP Invalid Request Line network experiment.
|
Package hirl contains the HTTP Invalid Request Line network experiment. |
experiment/httphostheader
Package httphostheader contains the HTTP host header network experiment.
|
Package httphostheader contains the HTTP host header network experiment. |
experiment/ndt7
Package ndt7 contains the ndt7 network experiment.
|
Package ndt7 contains the ndt7 network experiment. |
experiment/psiphon
Package psiphon implements the psiphon network experiment.
|
Package psiphon implements the psiphon network experiment. |
experiment/riseupvpn
Package riseupvpn contains the RiseupVPN network experiment.
|
Package riseupvpn contains the RiseupVPN network experiment. |
experiment/run
Package run contains code to run other experiments.
|
Package run contains code to run other experiments. |
experiment/signal
Package signal contains the Signal network experiment.
|
Package signal contains the Signal network experiment. |
experiment/sniblocking
Package sniblocking contains the SNI blocking network experiment.
|
Package sniblocking contains the SNI blocking network experiment. |
experiment/stunreachability
Package stunreachability contains the STUN reachability experiment.
|
Package stunreachability contains the STUN reachability experiment. |
experiment/telegram
Package telegram contains the Telegram network experiment.
|
Package telegram contains the Telegram network experiment. |
experiment/tlstool
Package tlstool contains a TLS tool that we are currently using for running quick and dirty experiments.
|
Package tlstool contains a TLS tool that we are currently using for running quick and dirty experiments. |
experiment/tlstool/internal
Package internal contains the implementation of tlstool.
|
Package internal contains the implementation of tlstool. |
experiment/tor
Package tor contains the tor experiment.
|
Package tor contains the tor experiment. |
experiment/torsf
Package torsf contains the torsf experiment.
|
Package torsf contains the torsf experiment. |
experiment/urlgetter
Package urlgetter implements a nettest that fetches a URL.
|
Package urlgetter implements a nettest that fetches a URL. |
experiment/webconnectivity
Package webconnectivity implements OONI's Web Connectivity experiment.
|
Package webconnectivity implements OONI's Web Connectivity experiment. |
experiment/webconnectivity/internal
Package internal contains internal code.
|
Package internal contains internal code. |
experiment/websteps
Package websteps implements the websteps experiment.
|
Package websteps implements the websteps experiment. |
experiment/webstepsx
Package webstepsx contains a websteps implementation based on the internal/measurex package.
|
Package webstepsx contains a websteps implementation based on the internal/measurex package. |
experiment/whatsapp
Package whatsapp contains the WhatsApp network experiment.
|
Package whatsapp contains the WhatsApp network experiment. |
geolocate
Package geolocate implements IP lookup, resolver lookup, and geolocation.
|
Package geolocate implements IP lookup, resolver lookup, and geolocation. |
httpheader
Package httpheader contains code to set common HTTP headers.
|
Package httpheader contains code to set common HTTP headers. |
internal/httpfailure
Package httpfailure groups a bunch of extra HTTP failures.
|
Package httpfailure groups a bunch of extra HTTP failures. |
internal/sessionresolver
Package sessionresolver contains the resolver used by the session.
|
Package sessionresolver contains the resolver used by the session. |
legacy/assetsdir
Package assetsdir contains code to cleanup the assets dir.
|
Package assetsdir contains code to cleanup the assets dir. |
mockable
Package mockable contains mockable objects
|
Package mockable contains mockable objects |
netx
Package netx contains code to perform network measurements.
|
Package netx contains code to perform network measurements. |
netx/archival
Package archival contains data formats used for archival.
|
Package archival contains data formats used for archival. |
netx/dialer
Package dialer allows you to create a net.Dialer-compatible DialContext-enabled dialer with error wrapping, optional logging, optional network-events saving, and optional proxying.
|
Package dialer allows you to create a net.Dialer-compatible DialContext-enabled dialer with error wrapping, optional logging, optional network-events saving, and optional proxying. |
netx/httptransport
Package httptransport contains HTTP transport extensions.
|
Package httptransport contains HTTP transport extensions. |
probeservices
Package probeservices contains code to contact OONI probe services.
|
Package probeservices contains code to contact OONI probe services. |
probeservices/testorchestra
Package testorchestra helps with testing the OONI orchestra API.
|
Package testorchestra helps with testing the OONI orchestra API. |
Package fakefill contains code to fill structs for testing.
|
Package fakefill contains code to fill structs for testing. |
Package fsx contains io/fs extensions.
|
Package fsx contains io/fs extensions. |
Package httpx contains http extensions.
|
Package httpx contains http extensions. |
Package humanize is like dustin/go-humanize.
|
Package humanize is like dustin/go-humanize. |
Package kvstore implements model.KeyValueStore.
|
Package kvstore implements model.KeyValueStore. |
Package measurex contains measurement extensions.
|
Package measurex contains measurement extensions. |
Package mlablocate contains a locate.measurementlab.net client implementing v1 of the locate API.
|
Package mlablocate contains a locate.measurementlab.net client implementing v1 of the locate API. |
Package mlablocatev2 implements m-lab locate services API v2.
|
Package mlablocatev2 implements m-lab locate services API v2. |
Package model contains the shared interfaces and data structures.
|
Package model contains the shared interfaces and data structures. |
mocks
Package mocks contains mocks for internal/model interfaces.
|
Package mocks contains mocks for internal/model interfaces. |
Package multierror contains code to manage multiple errors.
|
Package multierror contains code to manage multiple errors. |
Package netxlite contains network extensions.
|
Package netxlite contains network extensions. |
filtering
Package filtering allows to implement self-censorship.
|
Package filtering allows to implement self-censorship. |
quictesting
Package quictesting contains code useful to test QUIC.
|
Package quictesting contains code useful to test QUIC. |
Package ooapi contains a client for the OONI API.
|
Package ooapi contains a client for the OONI API. |
apimodel
Package apimodel describes the data types used by OONI's API.
|
Package apimodel describes the data types used by OONI's API. |
internal/generator
Command generator generates code in the ooapi package.
|
Command generator generates code in the ooapi package. |
internal/openapi
Package openapi contains data structures for Swagger v2.0.
|
Package openapi contains data structures for Swagger v2.0. |
Package platform allows you to obtain the platform name.
|
Package platform allows you to obtain the platform name. |
Package ptx contains code to use pluggable transports.
|
Package ptx contains code to use pluggable transports. |
Package randx contains math/rand extensions.
|
Package randx contains math/rand extensions. |
Package runtimex contains runtime extensions.
|
Package runtimex contains runtime extensions. |
Package shellx runs external commands.
|
Package shellx runs external commands. |
Package stuninput contains stun targets as well as code to format such targets according to various conventions.
|
Package stuninput contains stun targets as well as code to format such targets according to various conventions. |
Package tunnel allows to create tunnels to speak with OONI backends and other services.
|
Package tunnel allows to create tunnels to speak with OONI backends and other services. |
tutorial
|
|
experiment/torsf/chapter01
-=-=- StartHere -=-=- # Chapter I: main.go using the real torsf implementation In this chapter we will write together a `main.go` file that uses the real `torsf` implementation to run the experiment.
|
-=-=- StartHere -=-=- # Chapter I: main.go using the real torsf implementation In this chapter we will write together a `main.go` file that uses the real `torsf` implementation to run the experiment. |
experiment/torsf/chapter02
-=-=- StartHere -=-=- ## The torsf.go file This file will contain the implementation of the `NewExperimentMeasurer` function.
|
-=-=- StartHere -=-=- ## The torsf.go file This file will contain the implementation of the `NewExperimentMeasurer` function. |
generator
Command generator generates or re-generates the tutorial chapters.
|
Command generator generates or re-generates the tutorial chapters. |
measurex/chapter01
-=-=- StartHere -=-=- # Chapter I: using the system resolver In this chapter we explain how to measure DNS resolutions performed using the system resolver.
|
-=-=- StartHere -=-=- # Chapter I: using the system resolver In this chapter we explain how to measure DNS resolutions performed using the system resolver. |
measurex/chapter02
-=-=- StartHere -=-=- # Chapter II: establishing TCP connections In this chapter we explain how to measure establishing TCP connections.
|
-=-=- StartHere -=-=- # Chapter II: establishing TCP connections In this chapter we explain how to measure establishing TCP connections. |
measurex/chapter03
-=-=- StartHere -=-=- # Chapter III: using a custom DNS-over-UDP resolver In this chapter we learn how to measure sending DNS queries to a DNS server speaking the DNS-over-UDP protocol.
|
-=-=- StartHere -=-=- # Chapter III: using a custom DNS-over-UDP resolver In this chapter we learn how to measure sending DNS queries to a DNS server speaking the DNS-over-UDP protocol. |
measurex/chapter04
-=-=- StartHere -=-=- # Chapter IV: TLS handshaking This chapter describes measuring TLS handshakes.
|
-=-=- StartHere -=-=- # Chapter IV: TLS handshaking This chapter describes measuring TLS handshakes. |
measurex/chapter05
-=-=- StartHere -=-=- # Chapter V: QUIC handshaking This chapter describes measuring QUIC handshakes.
|
-=-=- StartHere -=-=- # Chapter V: QUIC handshaking This chapter describes measuring QUIC handshakes. |
measurex/chapter06
-=-=- StartHere -=-=- # Chapter VI: Getting a webpage from an HTTP/HTTPS/HTTP3 endpoint.
|
-=-=- StartHere -=-=- # Chapter VI: Getting a webpage from an HTTP/HTTPS/HTTP3 endpoint. |
measurex/chapter07
-=-=- StartHere -=-=- # Chapter VII: Measuring all the HTTPEndpoints for a domain We are now going to combine DNS resolutions with getting HTTPEndpoints.
|
-=-=- StartHere -=-=- # Chapter VII: Measuring all the HTTPEndpoints for a domain We are now going to combine DNS resolutions with getting HTTPEndpoints. |
measurex/chapter08
-=-=- StartHere -=-=- # Chapter VII: HTTPSSvc DNS queries The program we see here is _really_ similar to the one we discussed in the previous chapter.
|
-=-=- StartHere -=-=- # Chapter VII: HTTPSSvc DNS queries The program we see here is _really_ similar to the one we discussed in the previous chapter. |
measurex/chapter09
-=-=- StartHere -=-=- # Chapter IX: Parallel HTTPEndpoint measurements The program we see here is _really_ similar to the one we discussed in the previous chapter.
|
-=-=- StartHere -=-=- # Chapter IX: Parallel HTTPEndpoint measurements The program we see here is _really_ similar to the one we discussed in the previous chapter. |
measurex/chapter10
-=-=- StartHere -=-=- # Chapter IX: Parallel DNS lookups The program we see here is _really_ similar to the one we discussed in the previous chapter.
|
-=-=- StartHere -=-=- # Chapter IX: Parallel DNS lookups The program we see here is _really_ similar to the one we discussed in the previous chapter. |
measurex/chapter11
-=-=- StartHere -=-=- # Chapter XI: Measuring a URL This program shows how to measure an HTTP/HTTPS URL.
|
-=-=- StartHere -=-=- # Chapter XI: Measuring a URL This program shows how to measure an HTTP/HTTPS URL. |
measurex/chapter12
-=-=- StartHere -=-=- # Chapter XII: Following redirections.
|
-=-=- StartHere -=-=- # Chapter XII: Following redirections. |
measurex/chapter13
-=-=- StartHere -=-=- # Chapter XIII: Rewriting Web Connectivity This chapter contains an exercise.
|
-=-=- StartHere -=-=- # Chapter XIII: Rewriting Web Connectivity This chapter contains an exercise. |
measurex/chapter14
-=-=- StartHere -=-=- # Chapter XIV: A possible rewrite of Web Connectivity In this chapter we try to solve the exercise laid out in the previous chapter, using `measurex` primitives.
|
-=-=- StartHere -=-=- # Chapter XIV: A possible rewrite of Web Connectivity In this chapter we try to solve the exercise laid out in the previous chapter, using `measurex` primitives. |
netxlite/chapter01
-=-=- StartHere -=-=- # Chapter I: establishing TCP connections In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection.
|
-=-=- StartHere -=-=- # Chapter I: establishing TCP connections In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection. |
netxlite/chapter02
-=-=- StartHere -=-=- # Chapter I: TLS handshakes In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection.
|
-=-=- StartHere -=-=- # Chapter I: TLS handshakes In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection. |
netxlite/chapter03
-=-=- StartHere -=-=- # Chapter I: TLS parroting In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection.
|
-=-=- StartHere -=-=- # Chapter I: TLS parroting In this chapter we will write together a `main.go` file that uses netxlite to establish a new TCP connection and then performs a TLS handshake using the established connection. |
netxlite/chapter04
-=-=- StartHere -=-=- # Chapter I: Using QUIC In this chapter we will write together a `main.go` file that uses netxlite to establish a new QUIC session with an UDP endpoint.
|
-=-=- StartHere -=-=- # Chapter I: Using QUIC In this chapter we will write together a `main.go` file that uses netxlite to establish a new QUIC session with an UDP endpoint. |
netxlite/chapter05
-=-=- StartHere -=-=- # Chapter I: Using the "system" DNS resolver In this chapter we will write together a `main.go` file that uses the "system" DNS resolver to lookup domain names.
|
-=-=- StartHere -=-=- # Chapter I: Using the "system" DNS resolver In this chapter we will write together a `main.go` file that uses the "system" DNS resolver to lookup domain names. |
netxlite/chapter06
-=-=- StartHere -=-=- # Chapter I: Using a custom UDP resolver In this chapter we will write together a `main.go` file that uses a custom UDP DNS resolver to lookup domain names.
|
-=-=- StartHere -=-=- # Chapter I: Using a custom UDP resolver In this chapter we will write together a `main.go` file that uses a custom UDP DNS resolver to lookup domain names. |
netxlite/chapter07
-=-=- StartHere -=-=- # Chapter I: HTTP GET with TLS conn In this chapter we will write together a `main.go` file that uses netxlite to establish a TLS connection to a remote endpoint and then fetches a webpage from it using GET.
|
-=-=- StartHere -=-=- # Chapter I: HTTP GET with TLS conn In this chapter we will write together a `main.go` file that uses netxlite to establish a TLS connection to a remote endpoint and then fetches a webpage from it using GET. |
netxlite/chapter08
-=-=- StartHere -=-=- # Chapter I: HTTP GET with QUIC sess In this chapter we will write together a `main.go` file that uses netxlite to establish a QUIC session to a remote endpoint and then fetches a webpage from it using GET.
|
-=-=- StartHere -=-=- # Chapter I: HTTP GET with QUIC sess In this chapter we will write together a `main.go` file that uses netxlite to establish a QUIC session to a remote endpoint and then fetches a webpage from it using GET. |
Package version contains version information
|
Package version contains version information |
Click to show internal directories.
Click to hide internal directories.