Anti-censorship issueshttps://gitlab.torproject.org/groups/tpo/anti-censorship/-/issues2024-03-04T08:42:02Zhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40340Add a mechanism to retest the client NAT type2024-03-04T08:42:02ZCecylia BocovichAdd a mechanism to retest the client NAT typeWhile we do periodically retest the NAT type of proxies, a client's NAT type is only checked once on startup. The result is that if, after the initial check, a client's network conditions change, they may have difficulty connecting to pr...While we do periodically retest the NAT type of proxies, a client's NAT type is only checked once on startup. The result is that if, after the initial check, a client's network conditions change, they may have difficulty connecting to proxies in their pool. Since client usage of snowflake is much more time-sensitive than proxies, the trigger for a retest could be a threshold of a certain number of failed Datachannel attempts.https://gitlab.torproject.org/tpo/anti-censorship/bridge-port-scan/-/issues/7Build process needs updating2024-02-07T13:11:37ZKezBuild process needs updatingThe web team's lektor site build process has changed a bit since this repo was last updated, and the repo no longer builds with the instructions provided (the build instructions seem a bit incomplete even without these build changes). So...The web team's lektor site build process has changed a bit since this repo was last updated, and the repo no longer builds with the instructions provided (the build instructions seem a bit incomplete even without these build changes). So the build process needs to be updated, and more thoroughly documented.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext/-/issues/88Firefox Android support2024-02-27T11:18:30ZcypherpunksFirefox Android supportHi. 14 December, 2023 onwards, Firefox Android has now allowed all extensions to be installed on Android, as long as they are made (and marked as) compatible with it.
Could the Snowflake addon be updated to allow Android installs? Or is...Hi. 14 December, 2023 onwards, Firefox Android has now allowed all extensions to be installed on Android, as long as they are made (and marked as) compatible with it.
Could the Snowflake addon be updated to allow Android installs? Or is there any pending work before that can happen?https://gitlab.torproject.org/tpo/anti-censorship/gettor-project/OnionSproutsBot/-/issues/56"The Tor Browser" -> "Tor Browser"2024-02-27T11:04:51ZRoger Dingledine"The Tor Browser" -> "Tor Browser"In working on https://gitlab.torproject.org/tpo/web/support/-/issues/341 I noticed that gettor has "the Tor Browser" in its strings too.
We should go through and get rid of the "the" when appropriate.
There is also a screenshot on the ...In working on https://gitlab.torproject.org/tpo/web/support/-/issues/341 I noticed that gettor has "the Tor Browser" in its strings too.
We should go through and get rid of the "the" when appropriate.
There is also a screenshot on the https://tb-manual.torproject.org/downloading/ page that could probably use an update once the new strings are in place.
We could also use this opportunity to update the rest of the strings as needed, but it is fine if not too. :) Thanks!https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues/29Add CI to the project2023-04-12T15:41:01Zmeskiomeskio@torproject.orgAdd CI to the projectEven if there is no tests for now we could just check that it compiles.Even if there is no tests for now we could just check that it compiles.https://gitlab.torproject.org/tpo/anti-censorship/connectivity-measurement/bridgestatus/-/issues/2Bridgestatus Readme2023-02-21T12:24:14ZDecade6641Bridgestatus ReadmeI imagine the readme file is a generic one and I was not able to figure out how to contribute to it.I imagine the readme file is a generic one and I was not able to figure out how to contribute to it.https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/137Proposal - to edit message of getbridges bot2023-01-31T15:41:25ZninaProposal - to edit message of getbridges botI want to offer to remove the phrase "Your bridges:" that @GetBridgesBot sends with the list of bridges (or split it into two different messages)
When the users copy the bridges from the message on the smartphone, they have to copy the...I want to offer to remove the phrase "Your bridges:" that @GetBridgesBot sends with the list of bridges (or split it into two different messages)
When the users copy the bridges from the message on the smartphone, they have to copy the whole message with the phrase "Your bridges:" and then remove this piece already in the TBA/Orbot/Onion Browser. So removing these words from the message would make the user experience bettermeskiomeskio@torproject.orgmeskiomeskio@torproject.org2023-01-11https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40232snowflake proxy README includes an old version of ./proxy --help2023-07-29T22:27:43ZRoger Dingledinesnowflake proxy README includes an old version of ./proxy --helpIn snowflake/proxy/README, we have this section:
```
The Snowflake proxy can be run with the following options:
Usage of ./proxy:
-broker string
broker URL (default "https://snowflake-broker.torproject.net/")
-capacity uint...In snowflake/proxy/README, we have this section:
```
The Snowflake proxy can be run with the following options:
Usage of ./proxy:
-broker string
broker URL (default "https://snowflake-broker.torproject.net/")
-capacity uint
maximum concurrent clients
-keep-local-addresses
keep local LAN address ICE candidates
-log string
log filename
-relay string
websocket relay URL (default "wss://snowflake.torproject.net/")
-stun string
stun URL (default "stun:stun.stunprotocol.org:3478")
-unsafe-logging
prevent logs from being scrubbed
```
but ./proxy --help now shows more options than that:
```
Usage of ./proxy:
-allow-non-tls-relay
allow relay without tls encryption
-allowed-relay-hostname-pattern string
a pattern to specify allowed hostname pattern for relay URL. (default "snowflake.torproject.net$")
-broker string
broker URL (default "https://snowflake-broker.torproject.net/")
-capacity uint
maximum concurrent clients
-ephemeral-ports-range string
ICE UDP ephemeral ports range (format:"<min>:<max>")
-keep-local-addresses
keep local LAN address ICE candidates
-log string
log filename
-nat-retest-interval duration
the time interval in second before NAT type is retested, 0s disables retest. Valid time units are "s", "m", "h". (default 24h0m0s)
-relay string
websocket relay URL (default "wss://snowflake.bamsoftware.com/")
-stun string
STUN URL (default "stun:stun.stunprotocol.org:3478")
-summary-interval duration
the time interval to output summary, 0s disables summaries. Valid time units are "s", "m", "h". (default 1h0m0s)
-unsafe-logging
prevent logs from being scrubbed
-verbose
increase log verbosity
```
The really simple fix would be to update the README with the newer text. The more robust approach would be to stop trying to maintain the same data in both places (because it's clearly not working), and change the README to teach you how to run ./proxy --help to get the usage, and/or change it to list just the most important options.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40229Proxy log scrubbing misses URL-encoded IPv6 addresses2022-11-28T20:58:21ZDavid Fifielddcf@torproject.orgProxy log scrubbing misses URL-encoded IPv6 addressesThe log scrubbing patterns (tpo/anti-censorship/pluggable-transports/snowflake#21304, tpo/anti-censorship/pluggable-transports/snowflake#40115)
miss IPv6 addresses in URLs, where `:` is encoded as `%3A` or `%3a`.
URLs like these may be l...The log scrubbing patterns (tpo/anti-censorship/pluggable-transports/snowflake#21304, tpo/anti-censorship/pluggable-transports/snowflake#40115)
miss IPv6 addresses in URLs, where `:` is encoded as `%3A` or `%3a`.
URLs like these may be logged in the case of HTTP errors.
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext/-/merge_requests/55#note_2851695
> `error dialing relay: wss://snowflake.torproject.net/?client_ip=2001%3Adb8%3A4000%3A%3A1234 = dial tcp: lookup snowflake.torproject.net: no such host`https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/130Upgrade telebot library to version 32022-11-03T16:39:33Zmeskiomeskio@torproject.orgUpgrade telebot library to version 3We use [telebot](https://github.com/tucnak/telebot) in our [bridges bot](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/telegram.md). But we are using the version 2 of the library, let's update it to version 3.We use [telebot](https://github.com/tucnak/telebot) in our [bridges bot](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/telegram.md). But we are using the version 2 of the library, let's update it to version 3.https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/128Add microsoft onedrive provider to gettor2022-10-05T13:37:27Zmeskiomeskio@torproject.orgAdd microsoft onedrive provider to gettorThe [gettor updater](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/gettor.md) could upload Tor Browser also to a [microsoft OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive), like already do to o...The [gettor updater](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/gettor.md) could upload Tor Browser also to a [microsoft OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive), like already do to other providers: https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/tree/main/pkg/presentation/updaters/gettor
OneDrive free plan is only 5GBs, which is too small for our current needs, but this requirement might be reduced in the near future. Or we might consider paying for the service as OneDrive is probably reachable in most places.https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/127Add dropbox provider to gettor2022-10-05T13:19:15Zmeskiomeskio@torproject.orgAdd dropbox provider to gettorThe [gettor updater](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/gettor.md) could upload Tor Browser also to a [dropbox](https://dropbox.com), like already do to other providers: https://gitlab.torproject.org/...The [gettor updater](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/gettor.md) could upload Tor Browser also to a [dropbox](https://dropbox.com), like already do to other providers: https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/tree/main/pkg/presentation/updaters/gettorhttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/126Telegram distributor: give some guidance on how to use bridges2022-10-28T15:58:28Zmeskiomeskio@torproject.orgTelegram distributor: give some guidance on how to use bridgesProvide some information on how to use bridges when the bot hands bridges over telegram. For example the following text might work:
```
Here are your bridges:
obfs4 ...
obfs4 ...
If you are using Tor Browser:
1. Choose "☰ ▸ Settings ▸...Provide some information on how to use bridges when the bot hands bridges over telegram. For example the following text might work:
```
Here are your bridges:
obfs4 ...
obfs4 ...
If you are using Tor Browser:
1. Choose "☰ ▸ Settings ▸ Tor" to open your Tor settings.
2. In the "Bridges" section, enter your bridge in the "Provide a bridge" field.
If you don't have Tor Browser you can download it from https://torbrowser.org or if this website is blocked ask the gettor bot for it: @gettor_bot
```
The implementation of the distributor is here: https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/pkg/presentation/distributors/telegram/telegram.gohttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/125Add a prometheus exporter to gettor updater2022-10-05T12:53:23Zmeskiomeskio@torproject.orgAdd a prometheus exporter to gettor updaterLet's produce some metrics on the gettor updater for the latest TB version we have updated per platform and provider.
Some inspiration can be taken from how is the prometheus exporter in gettor: https://gitlab.torproject.org/tpo/anti-ce...Let's produce some metrics on the gettor updater for the latest TB version we have updated per platform and provider.
Some inspiration can be taken from how is the prometheus exporter in gettor: https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/pkg/usecases/distributors/gettor/gettor.gohttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/124Add a prometheus exporter to moat distributor2024-03-21T12:29:24Zmeskiomeskio@torproject.orgAdd a prometheus exporter to moat distributorLet's collect prometheus metrics on the Circumvention Settings [moat distributor](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/moat.md). We might want to collect metrics for:
* Requests to settings with country...Let's collect prometheus metrics on the Circumvention Settings [moat distributor](https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/doc/moat.md). We might want to collect metrics for:
* Requests to settings with country and *valid shim token* as labels
* Requests to other API endpoints with the endpoint as label (settings, defaults, map, builtin)
Some inspiration can be taken from how is the prometheus exporter in gettor: https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/blob/main/pkg/usecases/distributors/gettor/gettor.gomeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40208"./proxy -h" does not show default value of a -capacity parameter2022-12-04T17:19:49Zslrslr"./proxy -h" does not show default value of a -capacity parameterHello at
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/tree/main/proxy
"proxy -h"
Regarding “-capacity” parameter it would be handy to know what value is used when i do not use the -capacity switch.Hello at
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/tree/main/proxy
"proxy -h"
Regarding “-capacity” parameter it would be handy to know what value is used when i do not use the -capacity switch.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40204pion errors don't go into the log2022-12-03T13:45:30ZRoger Dingledinepion errors don't go into the logMy snowflake proxy tells me, I guess on either stdout or stderr,
```
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0...My snowflake proxy tells me, I guess on either stdout or stderr,
```
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
sctp ERROR: 2022/10/03 13:47:32 [0xc002986380] stream 1 not found)
```
but I am using -log, and these lines don't show up in the log. It is unexpected that "error" category messages would be the ones that are transient and not captured for posterity.
(Also, the timestamps in the log seem to be utc, and the timestamps on my stdout/stderr appear to be local timezone. Not sure if that merits a separate ticket -- let me know if yes and I can open it.)Linus Nordberglinus@torproject.orgLinus Nordberglinus@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40197nil pointer dereference in PeerConnection.PendingLocalDescription2022-10-03T11:53:14Zcypherpunksnil pointer dereference in PeerConnection.PendingLocalDescription```
info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for circuit' state. Leaving it on buffer.
info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for circuit' state. Leaving it on...```
info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for circuit' state. Leaving it on buffer.
info] {EDGE} connection_edge_process_inbuf(): data from edge while in 'waiting for circuit' state. Leaving it on buffer.
info] {NET} parse_socks_client(): SOCKS 5 client: continuing without authentication
info] {NET} connection_read_proxy_handshake(): Proxy Client: OR connection (handshaking (proxy)) with 192.0.2.3:80 ID=1zOHpg+FxqQfi/6jDLtCpHHqBTH8gjYmCKXkus1D5Ko RSA_ID=2B280B23E1107BB62ABFC40DDCC8824814F80A72 successful
info] {BTRACK} bto_update_best(): ORCONN BEST_ANY state 2->3 gid=4
notice] {CONTROL} Bootstrapped 10% (conn_done): Connected to a relay
info] {BTRACK} bto_update_best(): ORCONN BEST_AP state 2->3 gid=4
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: panic: runtime error: invalid memory address or nil pointer dereference
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: [signal 0xc0000005 code=0x0 addr=0x0 pc=0x5ed17d]
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error:
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: goroutine 53 [running]:
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: github.com/pion/webrtc.(*PeerConnection).PendingLocalDescription(0x0)
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/github.com/pion/webrtc/peerconnection.go:2026 +0x1d
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: github.com/pion/webrtc.(*PeerConnection).LocalDescription(0xc00034c000)
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/github.com/pion/webrtc/peerconnection.go:1007 +0x1e
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.(*WebRTCPeer).connect(0xc00034c000, 0x0, 0xc000345d48)
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/webrtc.go:150 +0xd8
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.NewWebRTCPeerWithEvents(0x35ee40, 0xc0000d6000, {0x223f8f30008, 0xc00022e220})
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/webrtc.go:73 +0x38b
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.WebRTCDialer.Catch(...)
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/rendezvous.go:172
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.(*Peers).Collect(0xc000234080)
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/peers.go:69 +0x223
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.connectLoop({0x846bd0, 0xc000234080})
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/snowflake.go:345 +0x56
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: created by git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib.(*Transport).Dial
info] {PT} managed_proxy_stderr_callback(): Managed proxy at 'PluggableTransports\snowflake-client.exe' reported via standard error: /var/tmp/dist/gopath/src/git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib/snowflake.go:170 +0x206
info] {NET} TLS error: <syscall error while handshaking> (errno=10054: Connection reset by peer [WSAECONNRESET ]; state=SSLv3/TLS write client hello)
info] {OR} connection_tls_continue_handshake(): tls error [connection reset]. breaking connection.
info] {CIRC} circuit_n_chan_done(): Channel failed; closing circ.
info] {GENERAL} circuit_mark_for_close_(): Circuit 0 (id: 1) marked for close at circuitbuild.c:687 (orig reason: 8, new reason: 0)
info] {HANDSHAKE} connection_or_note_state_when_broken(): Connection died in state 'handshaking (TLS) with SSL state SSLv3/TLS write client hello in HANDSHAKE'
info] {BTRACK} bto_status_rcvr(): ORCONN DELETE gid=4 status=2 reason=4
warn] {CONTROL} Problem bootstrapping. Stuck at 10% (conn_done): Connected to a relay. (CONNECTRESET; CONNECTRESET; count 1; recommendation warn; host 2B280B23E1107BB62ABFC40DDCC8824814F80A72 at 192.0.2.3:80)
warn] {HANDSHAKE} 1 connections have failed:
warn] {HANDSHAKE} 1 connections died in state handshaking (TLS) with SSL state SSLv3/TLS write client hello in HANDSHAKE
info] {OR} circuit_build_failed(): Our circuit 0 (id: 1) died before the first hop with no connection
info] {GUARD} entry_guards_note_guard_failure(): Recorded failure for primary guard $2B280B23E1107BB62ABFC40DDCC8824814F80A72 ($2B280B23E1107BB62ABFC40DDCC8824814F80A72)
info] {CIRC} circuit_free_(): Circuit 0 (id: 1) has been freed.
warn] {PT} Pluggable Transport process terminated with status code 2
```https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40185overflow in bandwidth reporting2022-11-21T15:34:42Ztrinity-1686aoverflow in bandwidth reportingA user reported on `#tor` they see strange bandwidth report on their snowflake proxy.
![image](/uploads/2840f9598f1d194a89058c04a84023e4/image.png)
It looks very much like an overflowed signed 32b integer. They use snowflake on raspber...A user reported on `#tor` they see strange bandwidth report on their snowflake proxy.
![image](/uploads/2840f9598f1d194a89058c04a84023e4/image.png)
It looks very much like an overflowed signed 32b integer. They use snowflake on raspberry pi 3 (64 bit), however I've heard more than one time of things going 32b on raspberries, so may be reproducible only in 32b modehttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40184fixed unit for bandwidth logging2022-11-11T14:38:01Zinvokedfixed unit for bandwidth loggingCurrently, the proxy logs bandwidth in changing units as the bandwidth scales up (KB->MB->GB). It might be preferable for the proxy operators to have a fixed unit instead. The problems associated with the way it currently works is:
1....Currently, the proxy logs bandwidth in changing units as the bandwidth scales up (KB->MB->GB). It might be preferable for the proxy operators to have a fixed unit instead. The problems associated with the way it currently works is:
1. If the proxy operator wants to scrape the logs for bandwidth data for use in other programs, the unit keeps changing.
2. Units like GB can cause the values of 1 or 2 to be far less meaningful when the proxy won't see bandwidth in the GB range consistently.
I would suggest fixing the values to KB unit.