Skip to content

Commit c072517

Browse files
committed
FEAT: webtransport
1 parent cd56e9f commit c072517

4 files changed

Lines changed: 68 additions & 53 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
# Run the project
44

5+
```bash
6+
mkcert -install
7+
```
8+
9+
```bash
10+
mkcert localhost
11+
```
12+
513
```bash
614
cargo run
715
```

localhost-key.pem

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
-----BEGIN PRIVATE KEY-----
2-
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCyssrTpejMltyB
3-
26TFLtF/yftX5NF2rv4BIVHhdfe0LuIjqw6qCI4U0QAkQizrvYOd4d6HUZJX+lC2
4-
CRcA0GDzuEiWSB/yUolUNpFH45HHUhOU4sjN/e+wHQNXv4WompYtLnzSV00S4d1J
5-
6e1NWEQOIv8gD6Mj79/qLQ7jJVuics2ZCzYxWtNf3RZYw+VVmGgsjEZD5zJ3oIzY
6-
uv8PjifiNnPxh8pIKS9N8HffL00NXIVUIebUUKVXm2XnzyC7IPqUp0HuFRRhe4C9
7-
BLlOBgO3u+85/QBj4Zp5+wCctX59kgCvnMNFyIxLOaAZqUoCpB5UG1WrHxvwVK3t
8-
0Dn/4bODAgMBAAECggEABt+7z6JtLxmKh/BECVXAt1K0uW/S4ubeXHrEpJCeI68+
9-
AbM90CqeFIzpnXtyMOtMWdFrdvcbUwkM+8Ojv+NEJ3vqRuWlXPPx1mx28DX/0JQG
10-
rs5+fPYMt1CWZVS3toGjzz8fjBPRoi1QDtzRxQzlKUoNWFVhqCs9CMwM643vVXNW
11-
kGAkRuITSuWcuMvZUyALvbf4pAI5yKLKWfYiRMIwNzwhC0MMMVKc/C+PDcmzwHeO
12-
9CTG6A8dfQ5F4q/yzpRHQzV/+Bibz07BGhDlecEo8VhpHZdM43QD2fvs2GtsHAv5
13-
oKNrHq/77Y9Xf43347XJJIsrDxeqER9DGThveWiRqQKBgQDCzQ0wx/qzcWjJFHyu
14-
3S8C0vXn5lmhV5Os1XGDUhR+xftg5gzuBzPjWW0HJ1lg5Vb3OAt5Yx8DDHrg2U+m
15-
I+1ZGJlMYcDp0EkphHDTd2lxv1zJxkIZ5QngRauQNi1UcTKeNVJNzPFx5DdFstTp
16-
kLECZfgKEDpcrnwcRBFxfGvPrQKBgQDq1q9BhmHVTBce0XjbYqScg441V61FSJxc
17-
vN2d+O91LUFxi595ATTVeF4l8b4BDs55UqVMjr3qk9vhQ+21by75x+8sHrNtSsRs
18-
3md3ff+B+dvmmCSp5Z44h2X/8/WuAwWMdLN7p9iQWEHqZ+Y0NAn43PHh3j9Pk8LQ
19-
xrvEkaw17wKBgHDRFnmQ57Vy0c/aqJcRC//js3y5YGFbefAXsWTvbWU6PeqRcR2N
20-
WFSr3sPM2yuNxr7oW2TSrgwy9xsvX7yFhBkccPPWjUYcVbLQvBMMTioNPKyywGeE
21-
ySJ01vZvGfOUl08e7GqYbaCbHhOkjUAzhwAvk+YoHdS9TK2GEmAaQcoFAoGAJcLD
22-
h3u+O3fyt8fi8RPZeDlHIpioid11Fwxfbkla57KRNVrIF8Lz5edm7B8E+FKTLLr3
23-
TWoea5u+3Wf4zxXDrfJSKPv+yfIdx4uzg2lFLncovtlz+8WqPVi4NAHcXVCrEbyq
24-
J5YDoqIuZyyxvW8os1WDp1f/QiJ2Tu/FvYPW9w0CgYAfEao3CQKixSdv+XD3WgEr
25-
09OHHolezrMOpxUlVkrboR2/BGK7MrUVTxQ1w3hgcjkkXAlKs6IiWmSWeUBJjE7O
26-
XnqQV97Ph6Y+DEiP4tZ5kJVISX9MVi2MZv7z/VkvvdXBjzslJ6Pz7rpBaz23UPyY
27-
pSFaxYQQrPVXga2NXdrc/A==
2+
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDuiNLK2vJjnrV3
3+
uQWRR1uLy1U1E4jFvD/qPZ/YyM7UGHJNQFTLreFDHJN/yB+sxoX8uBHU9o6PdnHX
4+
2zJNZ1kRN7E4q8RSnQKrZtxqcUsdHpq2ob3gkx0jPn2nlDWoejDtfbTZIg0Ok0Qy
5+
JtnEAMJQ+JJtxpR/eTNu9m4yu8EifPLhPXSwwXF7EVbPTqvSdn3JGwDrCWy9Rscp
6+
8uWEv5N6ErqYs6XBwDOk7qZU3livNuS1ML9DVKCRLT9mBqq9PiMLxqWa86OKOmTe
7+
aZL3wK3IhEhEuANw2qqToVHjPxUfiaDCjdXWSsJs8xcclqBzZ67NZpbLkWCgyfsi
8+
9JRNXJ+NAgMBAAECggEBAMK93+KPqC6exyasXphCOsJByhngDdzpmQDjONpi70EH
9+
iGH7cH8tQWhqLx22w+1p0sAFg0Fr3e3QVJdXNJUvF+9PmZdb3JdZ6nEHNFKOljV6
10+
4/LQz9VGJha9ERc8kCYxRDrQU1KmUySgJKARSd6UhBBZMCsBYgFEcTJZbJRs5vwA
11+
lRnlkyWH8kT3c+Fu6PCYoT5v/fbUA8xcJ1jY42XmTvct7D677RdboBuutCtTxUzB
12+
BeGa4q+Zycn0gwmYT1te+GCB9HPeqUxxSPFtnd5WbAeIxYo7zEe+eTJkPJ2PUY+v
13+
4sE84B/Mq6hcGRSgggdHdD/5Vg8WYKd+8v0S69UPi4ECgYEA/ohOsg2FZ5KHYWUF
14+
mTNlrmL6xhi5Yy3m1FU693PBordibmUnPOys9PUAll9StM9T6t3Aw7m0Q6j421Iv
15+
CQu5uoasuDqUOsDnvENs/f8QJ1u1Iddenm3dqLhvInhJCf4bGiSVmxAF8XjQV+xn
16+
GBrQJ/InbVEMsgY0wRWGEzxu3qECgYEA7+jnHnyxsp+R/1znZyYAxKXJ5QBDmCnL
17+
Dtl7mYmxx6TkBZ2laibJtUgYb3qP+g1ghoyAjNzaLZuT7gp6KO+61FuUNRumpEIs
18+
noQdE9cRGH/DDeV/mhgeR5ZvOiQdqM1g6CGjiSDu5Gck8hVU6VrWnmd4kUdIX5dw
19+
+yngZHbAtW0CgYEAlaiDzQFSPTHU1BlYD1o/ISgllzCWYJButs5eW3z+j7QP9iUX
20+
yyTGFUmxTLlDofh9uQ0l+G9KZLYHjL1n1oPEcr4Y9EHNQjaGixWCEl5Umy+68uj1
21+
Q2YJ/Nhkz/m1yGBWgyqbpI7pT6/foLLpcyzg03v4XrhXJJ2tixIiwVC5R8ECgYEA
22+
vAyJLMJ83xBo9gsybw3AyGNTb6bXVOxdeBRM57qgmWbMPQKm6B/jN699R9SACnZ1
23+
1MFI+iEa+2jZeVrJClFu1om6EC7OXi5onw/bYvPPOK7ci4X6kSSah26JXL92aBwj
24+
+5ByiUhBONMIiKDj384OMDfWr7l6J0OjkZvvgY/72bkCgYEA585rUVgB/6TQkz6f
25+
LEdIotadjtWyHK3dFoehSiHZ4XFIRik0IgJVYBPM6Jrji1H8lPuQDjDIVePu6h/I
26+
+bqIuUV8vOzcdFk60wB/ENQ1eygCPM1AEjOADJgnHDUcZlfNNE0f6MUN9roGTn5a
27+
lvTS2HFTfsKw7vPnHevU3YguiSQ=
2828
-----END PRIVATE KEY-----

localhost.pem

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIEDDCCAnSgAwIBAgIQUSdvDZnhEZgnkmBdLaRuuTANBgkqhkiG9w0BAQsFADBf
3-
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExGjAYBgNVBAsMEUJSWUFO
4-
XEJyeWFuQEJyeWFuMSEwHwYDVQQDDBhta2NlcnQgQlJZQU5cQnJ5YW5AQnJ5YW4w
5-
HhcNMjUwMjIwMTk1NjU1WhcNMjcwNTIwMTg1NjU1WjBFMScwJQYDVQQKEx5ta2Nl
6-
cnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxGjAYBgNVBAsMEUJSWUFOXEJyeWFu
7-
QEJyeWFuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsrLK06XozJbc
8-
gdukxS7Rf8n7V+TRdq7+ASFR4XX3tC7iI6sOqgiOFNEAJEIs672DneHeh1GSV/pQ
9-
tgkXANBg87hIlkgf8lKJVDaRR+ORx1ITlOLIzf3vsB0DV7+FqJqWLS580ldNEuHd
10-
SentTVhEDiL/IA+jI+/f6i0O4yVbonLNmQs2MVrTX90WWMPlVZhoLIxGQ+cyd6CM
11-
2Lr/D44n4jZz8YfKSCkvTfB33y9NDVyFVCHm1FClV5tl588guyD6lKdB7hUUYXuA
12-
vQS5TgYDt7vvOf0AY+GaefsAnLV+fZIAr5zDRciMSzmgGalKAqQeVBtVqx8b8FSt
13-
7dA5/+GzgwIDAQABo14wXDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYB
14-
BQUHAwEwHwYDVR0jBBgwFoAUR1Gg4yrNJkNHXWmSx5vocseQ+pgwFAYDVR0RBA0w
15-
C4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBgQBn2zbLwtWhau+X01+jCGdo
16-
S/QZ7C4D3MdNnFVXvEUOJw7pW7XXMYKf8/FZyVByV27/b8bNYkipC2ySiWsY85Gy
17-
4MmeCdCOBJnhEF1I4LfGUdNRJInkSITj/14SGdMKL+R5Q1AemnNBtu/DBQ7hn4ha
18-
K9G9m7qqoKrG9/EkTDA/NKcW60hPk3VXazo4UW1r6xx7+NWtafCS12srB1eSNno9
19-
bn39HnVpaID5lSgXrmlIHShB3Jyids2OuDKUggl6y2mDcjdnqp5tm2CwHYsATu43
20-
pkpbpt9C0892jMToV5CUNY5PdICHS0haEyNNThfy4edqyZSuKf1HnfNHd9QK1zzi
21-
pYfLKCHR6nVVpC5pcK5scPl4YBkwtsINisEYyoT2mGwBZmX/WAn3sbJ4lPWj78oR
22-
yoThY5BjguXryuXkRttKm9lKeR6M5DAHCuuPJzFLyagwBuFdsz+9TM+9Y8n4JVFK
23-
lJ+XoqmriQ+TxMgoRH4cAqsBa9cpAgwwYLH8gnWO8Ss=
2+
MIIEQDCCAqigAwIBAgIQXRw8uYqdk8wES4rcsznwVDANBgkqhkiG9w0BAQsFADCB
3+
gTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSswKQYDVQQLDCJCUllB
4+
TlxicnlhbkBicnlhbiAoQnJ5YW4gRmVycmFuZG8pMTIwMAYDVQQDDClta2NlcnQg
5+
QlJZQU5cYnJ5YW5AYnJ5YW4gKEJyeWFuIEZlcnJhbmRvKTAeFw0yNTAzMDMxMTM3
6+
MjBaFw0yNzA2MDMxMDM3MjBaMFYxJzAlBgNVBAoTHm1rY2VydCBkZXZlbG9wbWVu
7+
dCBjZXJ0aWZpY2F0ZTErMCkGA1UECwwiQlJZQU5cYnJ5YW5AYnJ5YW4gKEJyeWFu
8+
IEZlcnJhbmRvKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO6I0sra
9+
8mOetXe5BZFHW4vLVTUTiMW8P+o9n9jIztQYck1AVMut4UMck3/IH6zGhfy4EdT2
10+
jo92cdfbMk1nWRE3sTirxFKdAqtm3GpxSx0emrahveCTHSM+faeUNah6MO19tNki
11+
DQ6TRDIm2cQAwlD4km3GlH95M272bjK7wSJ88uE9dLDBcXsRVs9Oq9J2fckbAOsJ
12+
bL1Gxyny5YS/k3oSupizpcHAM6TuplTeWK825LUwv0NUoJEtP2YGqr0+IwvGpZrz
13+
o4o6ZN5pkvfArciESES4A3DaqpOhUeM/FR+JoMKN1dZKwmzzFxyWoHNnrs1mlsuR
14+
YKDJ+yL0lE1cn40CAwEAAaNeMFwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoG
15+
CCsGAQUFBwMBMB8GA1UdIwQYMBaAFJFB6Pbnnnrh6KjJ07cErKlZM+oCMBQGA1Ud
16+
EQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAYEAEw4FNKnaJ0ibXfh/
17+
PfLDAD1X6Lvvkmfsh+8VjOdTsHMCIrzny2XSN59GfjxGL7ao2SjTalbzeKge4qKw
18+
gcKx5ey2XmmgfxQtQfIn5SDE7vrmOdPAIuN/yPZEPzRgVKsBtRk01gCtLUoMEQqm
19+
P6mBN0J3xdPboYe3Q8jb7ITk9DOpTkJsaITQSkxSwZ8l7f5hZzatAQtch80IA4p5
20+
LyQcLiBjBnE1Yoi9o7bAe3iDw14EEadQM6CcelDCnO4nzmaKHCk901RcQX/6eFRJ
21+
EXI0E3eaUANH0XRyplfRLYH/iQySs8GaF3suNx+2VKXlwuTF9TKoXJg5PF4jqTYe
22+
CL9++rGtJHbnrfx60AgdCnUmvrL6PBDvD5zYQbPsSXpR4zZ86/FX+hl5ghBCekGY
23+
cM11jEKQo+YPMRr9QxzG/uphMrg4hSmYJMQm16xfEzlVZagn2BLxuXiTiGN0ltTM
24+
dcMPu2/XoTju+rulDc/GDtv3151hHgBgEF2P8lR740T6GBJt
2425
-----END CERTIFICATE-----

src/services/docker.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1+
use std::{thread::sleep, time::Duration};
2+
13
use bollard::{errors::Error, secret::{ContainerInspectResponse, ContainerSummary}, system::EventsOptions, Docker};
24
use futures::StreamExt;
35
use serde_json::json;
46
use tokio::sync::broadcast;
57

8+
const INTERVAL: Duration = Duration::from_secs(10);
9+
610
pub fn get_docker_client() -> Result<Docker, Error> {
711
Docker::connect_with_socket_defaults()
812
}
913

1014
pub async fn listen_docker_events(tx: broadcast::Sender<String>) {
11-
let docker = match get_docker_client() {
12-
Ok(docker) => docker,
13-
Err(error) => {
14-
log::error!("Failed to connect to Docker: {:?}", error);
15-
return;
15+
let docker = loop {
16+
match get_docker_client() {
17+
Ok(client) => break client,
18+
Err(error) => {
19+
log::error!("Failed to connect to Docker, retrying in {:?}: {:?}", INTERVAL, error);
20+
sleep(INTERVAL);
21+
}
1622
}
1723
};
1824

0 commit comments

Comments
 (0)