mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-04 01:24:09 +02:00
push: add all local ips as trusted proxies
This commit is contained in:
parent
761fe285a7
commit
6a043913fa
6 changed files with 116 additions and 45 deletions
|
|
@ -86,7 +86,7 @@ impl ServiceTrait for Oc {
|
|||
cloud_id: &str,
|
||||
config: &HazeConfig,
|
||||
) -> Result<Vec<String>> {
|
||||
if let Some(ip) = self.get_ip(docker, cloud_id).await? {
|
||||
if let Some(ip) = self.get_ips(docker, cloud_id).await?.next() {
|
||||
let container = self.container_name(cloud_id).unwrap();
|
||||
let addr = config.proxy.addr(&container, ip);
|
||||
println!("OC running on {addr}");
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ use crate::service::ServiceTrait;
|
|||
use bollard::container::{Config, CreateContainerOptions, NetworkingConfig};
|
||||
use bollard::models::{EndpointSettings, HostConfig};
|
||||
use bollard::Docker;
|
||||
use local_ip_address::list_afinet_netifas;
|
||||
use maplit::hashmap;
|
||||
use miette::{IntoDiagnostic, Result};
|
||||
|
||||
|
|
@ -87,14 +88,28 @@ impl ServiceTrait for NotifyPush {
|
|||
cloud_id: &str,
|
||||
config: &HazeConfig,
|
||||
) -> Result<Vec<String>> {
|
||||
let ip = self.get_ip(docker, cloud_id).await?.unwrap();
|
||||
let addr = config
|
||||
.proxy
|
||||
.addr_with_port(&self.container_name(cloud_id).unwrap(), ip, 7867);
|
||||
Ok(vec![
|
||||
format!("occ config:system:set trusted_proxies 1 --value {}", ip),
|
||||
format!("occ notify_push:setup {}", addr),
|
||||
])
|
||||
let mut ips: Vec<_> = self.get_ips(docker, cloud_id).await?.collect();
|
||||
if let Ok(local_interfaces) = list_afinet_netifas() {
|
||||
ips.extend(local_interfaces.into_iter().map(|(_, ip)| ip));
|
||||
}
|
||||
|
||||
let mut commands: Vec<_> = ips
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(i, ip)| {
|
||||
format!(
|
||||
"occ config:system:set trusted_proxies {} --value {ip}",
|
||||
i + 1
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
|
||||
let addr =
|
||||
config
|
||||
.proxy
|
||||
.addr_with_port(&self.container_name(cloud_id).unwrap(), ips[0], 7867);
|
||||
commands.push(format!("occ notify_push:setup {}", addr));
|
||||
Ok(commands)
|
||||
}
|
||||
|
||||
fn proxy_port(&self) -> u16 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue