Merge remote-tracking branch 'origin/main'
						commit
						80f1c21fd0
					
				| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					name: Rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ main ]
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    branches: [ main ]
 | 
				
			||||||
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  CARGO_TERM_COLOR: always
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					    - name: Build
 | 
				
			||||||
 | 
					      run: cargo build --verbose
 | 
				
			||||||
 | 
					    - name: Run tests
 | 
				
			||||||
 | 
					      run: cargo test --verbose
 | 
				
			||||||
| 
						 | 
					@ -345,9 +345,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "fltk"
 | 
					name = "fltk"
 | 
				
			||||||
version = "1.2.7"
 | 
					version = "1.2.8"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "0953c34fd5b0c6ac1b615fdcda8845c81ed364165b115ddac46ae8953d456640"
 | 
					checksum = "889d9b2176b88c6f8f90ba64b0b030e52807ed1d6e416df0c15611225b40cc1d"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "bitflags",
 | 
					 "bitflags",
 | 
				
			||||||
 "fltk-sys",
 | 
					 "fltk-sys",
 | 
				
			||||||
| 
						 | 
					@ -356,9 +356,9 @@ dependencies = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "fltk-sys"
 | 
					name = "fltk-sys"
 | 
				
			||||||
version = "1.2.7"
 | 
					version = "1.2.8"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "e2df700440c014123cc1644fbef7d33dcdda18cdd80373a7552a9d5cec47ca63"
 | 
					checksum = "e38b2f3fb23b4bd46fc492d5d8d099b0bf766a7ab5d18b8424d93089ae934a48"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "cmake",
 | 
					 "cmake",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -226,4 +226,4 @@ For now, either email me (if you know me personally) or make a pull request to a
 | 
				
			||||||
PTTH is licensed under the
 | 
					PTTH is licensed under the
 | 
				
			||||||
[GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html)
 | 
					[GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Copyright 2020 "Trish"
 | 
					Copyright 2020-2021 "Trish"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +52,6 @@ Lorem ipsum dolor set amet
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<a href="endless_sink">Data sink (POST only)</a>
 | 
					<a href="endless_sink">Data sink (POST only)</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>Persistent toggle is <pre>{{persistent_toggle}}</pre></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<form action="toggle" method="post">
 | 
					<form action="toggle" method="post">
 | 
				
			||||||
<input type="submit" value="Toggle">
 | 
					<input type="submit" value="Toggle">
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,10 @@
 | 
				
			||||||
	.entry_list div:nth-child(odd) {
 | 
						.entry_list div:nth-child(odd) {
 | 
				
			||||||
		background-color: #ddd;
 | 
							background-color: #ddd;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						.fine {
 | 
				
			||||||
 | 
							color: #444;
 | 
				
			||||||
 | 
							font-size: 12px;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
<title>PTTH relay</title>
 | 
					<title>PTTH relay</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
| 
						 | 
					@ -33,5 +37,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p class="fine">
 | 
				
			||||||
 | 
					Rendered by PTTH relay server.
 | 
				
			||||||
 | 
					Copyright 2020-2021 "Trish" ReactorScram. Licensed under the 
 | 
				
			||||||
 | 
					<a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU AGPLv3.</a>
 | 
				
			||||||
 | 
					<a href="https://six-five-six-four.com/git/reactor/ptth">Download source code</a>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -95,6 +95,13 @@ Git version: {{git_version}}
 | 
				
			||||||
{{else}}
 | 
					{{else}}
 | 
				
			||||||
Not built from Git
 | 
					Not built from Git
 | 
				
			||||||
{{/if}}
 | 
					{{/if}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Rendered by PTTH relay server.
 | 
				
			||||||
 | 
					Copyright 2020-2021 "Trish" ReactorScram. Licensed under the 
 | 
				
			||||||
 | 
					<a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU AGPLv3.</a>
 | 
				
			||||||
 | 
					<a href="https://six-five-six-four.com/git/reactor/ptth">Download source code</a>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,10 @@ AIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAA" rel="icon" type="image/x-icon" />
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		transition: var(--dark-mode-transition);
 | 
							transition: var(--dark-mode-transition);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						.fine {
 | 
				
			||||||
 | 
							color: #444;
 | 
				
			||||||
 | 
							font-size: 12px;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	.light_switch {
 | 
						.light_switch {
 | 
				
			||||||
		display: none;
 | 
							display: none;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -40,7 +44,7 @@ AIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAA" rel="icon" type="image/x-icon" />
 | 
				
			||||||
	.light_switch_label::before {
 | 
						.light_switch_label::before {
 | 
				
			||||||
		content: "[ ] ";
 | 
							content: "[ ] ";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	a {
 | 
						.app a {
 | 
				
			||||||
		color: var(--main-link-color);
 | 
							color: var(--main-link-color);
 | 
				
			||||||
		transition: var(--dark-mode-transition);
 | 
							transition: var(--dark-mode-transition);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -122,6 +126,15 @@ AIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAA" rel="icon" type="image/x-icon" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!-- Doesn't work perfectly yet -->
 | 
					<!-- Doesn't work perfectly yet -->
 | 
				
			||||||
<!--<label for="light_switch" class="light_switch_label">Dark mode</label>-->
 | 
					<!--<label for="light_switch" class="light_switch_label">Dark mode</label>-->
 | 
				
			||||||
</page>
 | 
					
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p class="fine">
 | 
				
			||||||
 | 
					Rendered by PTTH end server.
 | 
				
			||||||
 | 
					Copyright 2020-2021 "Trish" ReactorScram. Licensed under the 
 | 
				
			||||||
 | 
					<a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU AGPLv3.</a>
 | 
				
			||||||
 | 
					<a href="https://six-five-six-four.com/git/reactor/ptth">Download source code</a>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,10 @@
 | 
				
			||||||
	.entry_list div:nth-child(even) {
 | 
						.entry_list div:nth-child(even) {
 | 
				
			||||||
		background-color: #ddd;
 | 
							background-color: #ddd;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						.fine {
 | 
				
			||||||
 | 
							color: #444;
 | 
				
			||||||
 | 
							font-size: 12px;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
<title>{{metrics_startup.server_name}}</title>
 | 
					<title>{{metrics_startup.server_name}}</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
| 
						 | 
					@ -22,10 +26,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h1>{{metrics_startup.server_name}}</h1>
 | 
					<h1>{{metrics_startup.server_name}}</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>Gauges</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>RSS MiB: {{metrics_interval.rss_mib}}</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="entry_list">
 | 
					<div class="entry_list">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div>
 | 
					<div>
 | 
				
			||||||
| 
						 | 
					@ -40,5 +40,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p class="fine">
 | 
				
			||||||
 | 
					Rendered by PTTH end server.
 | 
				
			||||||
 | 
					Copyright 2020-2021 "Trish" ReactorScram. Licensed under the 
 | 
				
			||||||
 | 
					<a href="https://www.gnu.org/licenses/agpl-3.0.html">GNU AGPLv3.</a>
 | 
				
			||||||
 | 
					<a href="https://six-five-six-four.com/git/reactor/ptth">Download source code</a>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@ license = "AGPL-3.0"
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
anyhow = "1.0.38"
 | 
					anyhow = "1.0.38"
 | 
				
			||||||
blake3 = "1.0.0"
 | 
					blake3 = "1.0.0"
 | 
				
			||||||
fltk = "1.2.7"
 | 
					fltk = "1.2.8"
 | 
				
			||||||
quic_demo = { path = "../quic_demo" }
 | 
					quic_demo = { path = "../quic_demo" }
 | 
				
			||||||
quinn = "0.7.2"
 | 
					quinn = "0.7.2"
 | 
				
			||||||
rand = "0.8.4"
 | 
					rand = "0.8.4"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,7 +136,9 @@ impl GuiClient <'_> {
 | 
				
			||||||
		ports_col: &mut Flex,
 | 
							ports_col: &mut Flex,
 | 
				
			||||||
		fltk_tx: fltk::app::Sender <Message>
 | 
							fltk_tx: fltk::app::Sender <Message>
 | 
				
			||||||
	) {
 | 
						) {
 | 
				
			||||||
		if self.ports.len () >= 5 {
 | 
							const MAX_PORTS: usize = 15;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if self.ports.len () >= MAX_PORTS {
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
| 
						 | 
					@ -151,7 +153,7 @@ impl GuiClient <'_> {
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		self.ports.push (port);
 | 
							self.ports.push (port);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		if self.ports.len () >= 5 {
 | 
							if self.ports.len () >= MAX_PORTS {
 | 
				
			||||||
			self.but_add_port.deactivate ();
 | 
								self.but_add_port.deactivate ();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -224,7 +226,7 @@ fn main () -> anyhow::Result <()> {
 | 
				
			||||||
	let connection_p2_p3 = rt.block_on (async move {
 | 
						let connection_p2_p3 = rt.block_on (async move {
 | 
				
			||||||
		let server_cert = match opt.cert_url.as_ref () {
 | 
							let server_cert = match opt.cert_url.as_ref () {
 | 
				
			||||||
			Some (url) => reqwest::get (url).await?.bytes ().await?,
 | 
								Some (url) => reqwest::get (url).await?.bytes ().await?,
 | 
				
			||||||
			None => tokio::fs::read ("ptth_quic_output/quic_server.crt").await?.into (),
 | 
								None => tokio::fs::read ("ptth_quic_output/quic_server.crt").await.context ("can't read quic_server.crt from disk")?.into (),
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		let endpoint = make_client_endpoint ("0.0.0.0:0".parse ()?, &[&server_cert])?;
 | 
							let endpoint = make_client_endpoint ("0.0.0.0:0".parse ()?, &[&server_cert])?;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								todo.md
								
								
								
								
							
							
						
						
									
										1
									
								
								todo.md
								
								
								
								
							| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
Interesting issues will get a unique ID with
 | 
					Interesting issues will get a unique ID with
 | 
				
			||||||
`dd if=/dev/urandom bs=5 count=1 | base32`
 | 
					`dd if=/dev/urandom bs=5 count=1 | base32`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- PTTH_QUIC: Report errors on client GUI (At least whether it's P2 or P4)
 | 
				
			||||||
- Fix long-running downloads restarting in the middle
 | 
					- Fix long-running downloads restarting in the middle
 | 
				
			||||||
- [DMX6CO4G](issues/2021-01Jan/status-DMX6CO4G.md) fire-and-forget logs / key-value status data
 | 
					- [DMX6CO4G](issues/2021-01Jan/status-DMX6CO4G.md) fire-and-forget logs / key-value status data
 | 
				
			||||||
- ptth_tail
 | 
					- ptth_tail
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue