| Age | Commit message (Collapse) | Author |
|
By marking an upload LGC as running earlier than it was actually started
meant that there was a possibility that a probe started on that
connection before the load-generating upload. That caused a violation of
some invariants and caused panics.
Signed-off-by: Will Hawkins <[email protected]>
|
|
Signed-off-by: Will Hawkins <[email protected]>
|
|
Now that tests are run in sequence, it seems like a good idea to support
extended statistics in both directions.
Fixes #58
h/t @moeller0
Signed-off-by: Will Hawkins <[email protected]>
|
|
Beginning of a release candidate for support for IETF 02 tag of the
responsiveness spec.
|
|
Even with previous fixes it was *still* possible for a self-down probe
to have started before the underlying load-generating connection came
online (or so it seems!). This patch will move changing the status of an
underlying lgc from not-running state to running state even later to
eliminate even the smallest possible gap.
Re: #47
|
|
Make an LgcStatus type print nicely with %v format verb.
|
|
A long-overdue change to split certain packages once smashed into the
RPM package into their own package. The resulting code should make it
easier for people to navigate the source code.
In the process, fixed a bug where a self probe being started on a
load-generating connection races with the establishment of the
load-generating connection and causes a panic because the self probe is
not establishing a connection on an already established connection.
|
|
In the case where the scheduler allowed a delay between go threads in a
particular order, it was possible that a self prober would attempt to use a
connection before an HTTP connection was established.
Fixes #45. (at least I hope!)
|
|
Allows user to override DNS for the initial config request. This is
accomplished using a custom DialContext overring the hostname used to
Dial to. This allows for TLS certificate validation to still
happen(optionally) while connecting to TLS secured resources.
Also,
- allows for optional enforcement of certificate verification
- stamp built git version into binary and adds a --version option
- adds a user-agent to all outgoing request
- exit(1) on failures for easier shell error detection
|
|
|
|
When a test_endpoint is returned in the config for a test, all
requests will be sent to that host but the :authority pseudo header
(nee: Host: message header) will contain the host specified in
the various `_url` fields of the config data.
|
|
|
|
Add a structure for wrapping a collection of load-generating
connections so that two or more parallel tasks can access
them safely.
|
|
With this commit the project is being relicensed under GPLv2. All
contributors to the code prior to this commit have given their explicit
approval for the project to be relicensed (see
https://github.com/network-quality/goresponsiveness/issues/41).
|
|
Force http-compression off by:
Sending header "Accept-Encoding: identity" in request.
Checking header "Content-Encoding" in response.
|
|
There were several places where boilerplate language was left in the
license block at the top of files containing source.
|
|
|
|
|
|
This is a WIP for supporting v2 of the RPM spec.
|
|
Now there is functionality for conditionally supporting GetTCPInfo
depending on the platform. If the platform supports it, then the client
can call utilities.GetTCPInfo. In the case that the platform does not
support the GetTCPInfo function call, the result is an error of the type
`NotImplemented`.
|
|
This will only work on *nix systems. Code that displays information
in this PR is only exemplary -- I am sure that there are better
places in the code to display it!
|
|
Fixes #21
|
|
Previously the code relied on the fact that the go runtime would wake up
the saturation go function at exactly 1 second intervals, as we asked.
With this change, the code takes into account any minor fluctuations in
that time when calculating the throughput in an interval. I hope that
this change is an improvement.
|
|
Refactor RPM calculations to make them more reusble. Enable (perhaps
temporarily) probe calculations on the saturated connections. This
change is to check whether this makes our RPM calculations match the
ones generated by Apple's native client.
|
|
This patch begins the work on updated RPM calculations using
the httptrace infrastructure. Because we are still not able
to break out the TLS handshake time due to upstream bugs, there
are some workarounds in place. However, the numbers appear much
more sane.
|
|
1. Make a traceable interface for all things that can be wrapped
in an httptrace.ClientTrace.
2. Refactor debugging system into debug package.
|
|
Two unrelated changes:
1. Add full support for self-signed HTTPS certificates on the server
2. Add support for multiple log levels: So far we only use one, but
adding support for additional levels will help us tier the levels to
filter out excessive messages.
|
|
See Issue #10.
Begin implementing the plumbing required to perform more precise RTT/RPM
measurements.
|
|
The newest version of the specification replaces the term
bearing with the term generating. This patch brings the updated
language to the code to make it easier to track the implementation's
conformance to the spec.
|