Skip to content

Commit cd56e9f

Browse files
committed
FIX: webtransport
1 parent 1de137f commit cd56e9f

10 files changed

Lines changed: 132 additions & 253 deletions

File tree

certificats.bat

Lines changed: 0 additions & 34 deletions
This file was deleted.

localhost-key.pem

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----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==
28+
-----END PRIVATE KEY-----

localhost.pem

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
-----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=
24+
-----END CERTIFICATE-----

src/controllers/docker.rs

Lines changed: 0 additions & 103 deletions
This file was deleted.

src/controllers/mod.rs

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/main.rs

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,17 @@
1-
mod routes;
2-
mod controllers;
31
mod errors;
42
mod webtransport;
53
mod services;
64

7-
use axum::http::{HeaderValue, Method};
8-
use routes::setup_routes;
95
use rustls::crypto::{ring::default_provider, CryptoProvider};
10-
use tower_http::cors::{AllowOrigin, CorsLayer};
116

127
#[tokio::main]
138
async fn main() {
149
env_logger::builder().filter_level(log::LevelFilter::Info).init();
1510
CryptoProvider::install_default(default_provider())
1611
.expect("Failed to install default crypto provider");
1712

18-
let cors = CorsLayer::new()
19-
.allow_methods(vec![Method::GET, Method::POST, Method::PUT, Method::DELETE])
20-
.allow_origin(AllowOrigin::list([
21-
HeaderValue::from_str("https://admin.bryan-ferrando.fr").unwrap(),
22-
HeaderValue::from_str("http://localhost:5173").unwrap()
23-
]));
24-
25-
let app = setup_routes()
26-
.layer(cors);
27-
28-
tokio::spawn(async move {
29-
match webtransport::start_webtransport().await {
30-
Ok(_) => log::info!("WebTransport server stopped"),
31-
Err(e) => log::error!("WebTransport server failed: {:?}", e)
32-
};
33-
});
34-
35-
tokio::spawn(async move {
36-
match webtransport::start_client().await {
37-
Ok(_) => log::info!("WebTransport client stopped"),
38-
Err(e) => log::error!("WebTransport client failed: {:?}", e)
39-
};
40-
});
41-
42-
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
43-
log::info!("Listening on {}", listener.local_addr().unwrap());
44-
45-
axum::serve(listener, app).await.unwrap();
13+
match webtransport::start_webtransport().await {
14+
Ok(_) => log::info!("WebTransport server stopped"),
15+
Err(e) => log::error!("WebTransport server failed: {:?}", e)
16+
};
4617
}

src/routes/docker.rs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/routes/mod.rs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/services/docker.rs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,44 @@
1-
use bollard::{errors::Error, secret::{ContainerInspectResponse, ContainerSummary}, Docker};
1+
use bollard::{errors::Error, secret::{ContainerInspectResponse, ContainerSummary}, system::EventsOptions, Docker};
2+
use futures::StreamExt;
3+
use serde_json::json;
4+
use tokio::sync::broadcast;
25

36
pub fn get_docker_client() -> Result<Docker, Error> {
47
Docker::connect_with_socket_defaults()
58
}
69

10+
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;
16+
}
17+
};
18+
19+
let options = Some(EventsOptions::<String>::default());
20+
let mut events = docker.events(options);
21+
22+
while let Some(event) = events.next().await {
23+
match event {
24+
Ok(event) => {
25+
let event_str = json!(event).to_string();
26+
log::info!("Docker event: [{:?}:{:?}]", event.action, event.typ);
27+
28+
match tx.send(event_str){
29+
Ok(_) => {},
30+
Err(error) => {
31+
log::error!("Failed to send Docker event: {:?}", error);
32+
}
33+
};
34+
}
35+
Err(error) => {
36+
log::error!("Failed to receive Docker event: {:?}", error);
37+
}
38+
}
39+
}
40+
}
41+
742
pub async fn ping() -> i8 {
843
let docker = get_docker_client();
944

0 commit comments

Comments
 (0)