mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
fix ipv6
This commit is contained in:
committed by
Aiden McClelland
parent
b4c0d877cb
commit
10312d89d7
@@ -1,4 +1,4 @@
|
|||||||
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
|
use std::net::{Ipv6Addr, SocketAddr};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
@@ -61,10 +61,7 @@ async fn setup_or_init(cfg_path: Option<PathBuf>) -> Result<(), Error> {
|
|||||||
let ctx = InstallContext::init(cfg_path).await?;
|
let ctx = InstallContext::init(cfg_path).await?;
|
||||||
|
|
||||||
let server = WebServer::install(
|
let server = WebServer::install(
|
||||||
[
|
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
||||||
SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 80),
|
|
||||||
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
|
||||||
],
|
|
||||||
ctx.clone(),
|
ctx.clone(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
@@ -90,10 +87,7 @@ async fn setup_or_init(cfg_path: Option<PathBuf>) -> Result<(), Error> {
|
|||||||
let ctx = SetupContext::init(cfg_path).await?;
|
let ctx = SetupContext::init(cfg_path).await?;
|
||||||
|
|
||||||
let server = WebServer::setup(
|
let server = WebServer::setup(
|
||||||
[
|
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
||||||
SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 80),
|
|
||||||
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
|
||||||
],
|
|
||||||
ctx.clone(),
|
ctx.clone(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
@@ -208,10 +202,7 @@ async fn inner_main(cfg_path: Option<PathBuf>) -> Result<Option<Shutdown>, Error
|
|||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let server = WebServer::diagnostic(
|
let server = WebServer::diagnostic(
|
||||||
[
|
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
||||||
SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 80),
|
|
||||||
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
|
||||||
],
|
|
||||||
ctx.clone(),
|
ctx.clone(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
|
use std::net::{Ipv6Addr, SocketAddr};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
@@ -28,10 +28,7 @@ async fn inner_main(cfg_path: Option<PathBuf>) -> Result<Option<Shutdown>, Error
|
|||||||
.await?;
|
.await?;
|
||||||
embassy::hostname::sync_hostname(&rpc_ctx.account.read().await.hostname).await?;
|
embassy::hostname::sync_hostname(&rpc_ctx.account.read().await.hostname).await?;
|
||||||
let server = WebServer::main(
|
let server = WebServer::main(
|
||||||
[
|
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
||||||
SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 80),
|
|
||||||
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
|
||||||
],
|
|
||||||
rpc_ctx.clone(),
|
rpc_ctx.clone(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
@@ -150,10 +147,7 @@ fn main() {
|
|||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let server = WebServer::diagnostic(
|
let server = WebServer::diagnostic(
|
||||||
[
|
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
||||||
SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 80),
|
|
||||||
SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), 80),
|
|
||||||
],
|
|
||||||
ctx.clone(),
|
ctx.clone(),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|||||||
@@ -88,20 +88,15 @@ struct VHostServer {
|
|||||||
impl VHostServer {
|
impl VHostServer {
|
||||||
async fn new(port: u16, ssl: Arc<SslManager>) -> Result<Self, Error> {
|
async fn new(port: u16, ssl: Arc<SslManager>) -> Result<Self, Error> {
|
||||||
// check if port allowed
|
// check if port allowed
|
||||||
let listeners = TcpListeners::new([
|
let listener = TcpListener::bind(SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), port))
|
||||||
TcpListener::bind(SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), port))
|
.await
|
||||||
.await
|
.with_kind(crate::ErrorKind::Network)?;
|
||||||
.with_kind(crate::ErrorKind::Network)?,
|
|
||||||
TcpListener::bind(SocketAddr::new(Ipv6Addr::UNSPECIFIED.into(), port))
|
|
||||||
.await
|
|
||||||
.with_kind(crate::ErrorKind::Network)?,
|
|
||||||
]);
|
|
||||||
let mapping = Arc::new(RwLock::new(BTreeMap::new()));
|
let mapping = Arc::new(RwLock::new(BTreeMap::new()));
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
mapping: Arc::downgrade(&mapping),
|
mapping: Arc::downgrade(&mapping),
|
||||||
_thread: tokio::spawn(async move {
|
_thread: tokio::spawn(async move {
|
||||||
loop {
|
loop {
|
||||||
match listeners.accept().await {
|
match listener.accept().await {
|
||||||
Ok((stream, _)) => {
|
Ok((stream, _)) => {
|
||||||
let mut stream = BackTrackingReader::new(stream);
|
let mut stream = BackTrackingReader::new(stream);
|
||||||
stream.start_buffering();
|
stream.start_buffering();
|
||||||
|
|||||||
Reference in New Issue
Block a user