summaryrefslogtreecommitdiff
path: root/lgc
AgeCommit message (Collapse)Author
2024-01-19[Bugfix] Marking Upload LGC as Running Too SoonWill Hawkins
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]>
2023-07-25[Feature] Add support for L4SWill Hawkins
Signed-off-by: Will Hawkins <[email protected]>
2023-07-19[Feature] Add extended-stats for uploadsWill Hawkins
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]>
2023-06-21Major Update/Refactor to Support IETF 02Will Hawkins
Beginning of a release candidate for support for IETF 02 tag of the responsiveness spec.
2023-04-25[Bugfix] Tighten up check for probe connection reuseWill Hawkins
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
2023-04-25Make LgcStatus String()-ableWill Hawkins
Make an LgcStatus type print nicely with %v format verb.
2023-04-22[Refactor] Move components into separate packagesWill Hawkins
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.
2023-04-19[Bugfix] Probers starting too soon caused panicWill Hawkins
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!)
2023-02-22new flag: --connect-toRandall Meyer
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
2023-02-20lint/deprecation cleanupRandall Meyer
2022-12-12[Feature] Add support for test_endpointWill Hawkins
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.
2022-12-12[Bugfix] Keylogger use message always outputWill Hawkins
2022-11-20[Feature] Add structure for wrapping collection of LGCsWill Hawkins
Add a structure for wrapping a collection of load-generating connections so that two or more parallel tasks can access them safely.
2022-10-14Relicense with GPLv2Will Hawkins
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).
2022-08-18Force No CompressionJeroen Schickendantz
Force http-compression off by: Sending header "Accept-Encoding: identity" in request. Checking header "Content-Encoding" in response.
2022-08-10Fix typos in the license textWill Hawkins
There were several places where boilerplate language was left in the license block at the top of files containing source.
2022-07-02[Feature] Support spec v2 3/nWill Hawkins
2022-07-01[Feature] Support spec v2 2/nWill Hawkins
2022-07-01[Feature] Support spec v2Will Hawkins
This is a WIP for supporting v2 of the RPM spec.
2022-06-04[Feature] Add conditional compilation support for GetTCPInfoWill Hawkins
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`.
2022-06-04[Feature] Access TCP_INFO about underlying TCP connectionsWill Hawkins
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!
2022-06-04[Bugfix #21] Bad alignment of elements in structs accessed atomicallyWill Hawkins
Fixes #21
2022-05-13[Improvement] Increase granularity of transfer rate calculationWill Hawkins
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.
2022-05-11Refactor RPM calculationsWill Hawkins
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.
2022-05-05Upgraded RPM Calculation Support (Take 1)Will Hawkins
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.
2022-05-04Make Traceable Interface and Refactor DebuggingWill Hawkins
1. Make a traceable interface for all things that can be wrapped in an httptrace.ClientTrace. 2. Refactor debugging system into debug package.
2022-05-04Fully support self-signed certificates (and add debug levels)Will Hawkins
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.
2022-03-26Feature: More Precise RTT/RPM calculationWill Hawkins
See Issue #10. Begin implementing the plumbing required to perform more precise RTT/RPM measurements.
2022-03-19Rename: Change bearing to generatingWill Hawkins
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.