Commit d6a5273f authored by nanamicat's avatar nanamicat

docker

parent 2b6c932e
FROM rust:alpine as builder FROM rust:alpine as builder
RUN apk add --no-cache musl-dev
WORKDIR /usr/src/app WORKDIR /usr/src/app
COPY Cargo.* .
RUN mkdir src && \
echo 'fn main() {}' > src/main.rs && \
cargo build && \
cargo clean --package $(awk '/name/ {gsub(/"/,""); print $3}' Cargo.toml | sed ':a;N;$!ba;s/\n//g' | tr -d '\r') && \
rm -rf src
COPY . . COPY . .
RUN cargo install --path . RUN cargo install --path .
......
...@@ -7,7 +7,6 @@ use std::error::Error; ...@@ -7,7 +7,6 @@ use std::error::Error;
use std::intrinsics::transmute; use std::intrinsics::transmute;
use std::io::{Read, Write}; use std::io::{Read, Write};
use std::mem::MaybeUninit; use std::mem::MaybeUninit;
use std::net::ToSocketAddrs;
use std::sync::Arc; use std::sync::Arc;
#[repr(C)] #[repr(C)]
...@@ -51,7 +50,7 @@ lazy_static! { ...@@ -51,7 +50,7 @@ lazy_static! {
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<(), Box<dyn Error>> {
let mut sockets: HashMap<u16, Arc<Socket>> = HashMap::new(); let mut sockets: HashMap<u16, Arc<Socket>> = HashMap::new();
let mut routers: HashMap<u8, Router> = config let routers: HashMap<u8, Router> = config
.routers .routers
.iter() .iter()
.map(|c| Router::new(c, &mut sockets).map(|router| (c.remote_id, router))) .map(|c| Router::new(c, &mut sockets).map(|router| (c.remote_id, router)))
...@@ -69,7 +68,7 @@ fn main() -> Result<(), Box<dyn Error>> { ...@@ -69,7 +68,7 @@ fn main() -> Result<(), Box<dyn Error>> {
let router_writers3: Vec<(Arc<Socket>, HashMap<u8, RouterWriter>)> = router_writers let router_writers3: Vec<(Arc<Socket>, HashMap<u8, RouterWriter>)> = router_writers
.into_iter() .into_iter()
.grouping_by(|(k, v)| v.key()) .grouping_by(|(_, v)| v.key())
.into_iter() .into_iter()
.map(|(k, v)| { .map(|(k, v)| {
( (
...@@ -102,7 +101,7 @@ fn main() -> Result<(), Box<dyn Error>> { ...@@ -102,7 +101,7 @@ fn main() -> Result<(), Box<dyn Error>> {
if let Some(ref addr) = *router.endpoint.read().unwrap() { if let Some(ref addr) = *router.endpoint.read().unwrap() {
router.encrypt(&mut buffer[meta_size..meta_size + n]); router.encrypt(&mut buffer[meta_size..meta_size + n]);
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
router.socket.set_mark(router.config.mark)?; router.socket.set_mark(router.config.mark);
let _ = router.socket.send_to(&buffer[..meta_size + n], addr); let _ = router.socket.send_to(&buffer[..meta_size + n], addr);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment