diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index d9e31fe9..d44aee97 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -154,14 +154,13 @@ jobs: name: easytier-web-dashboard path: easytier-web/frontend/dist/ - - name: Cargo cache + - uses: Swatinem/rust-cache@v2 if: ${{ ! endsWith(matrix.TARGET, 'freebsd') }} - uses: actions/cache@v4 with: - path: | - ~/.cargo - ./target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + # The prefix cache key, this can be changed to start a new cache manually. + # default: "v0-rust" + prefix-key: "" + - name: Setup protoc uses: arduino/setup-protoc@v3 diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index 146406c6..5516a35c 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -151,13 +151,11 @@ jobs: pnpm -r install pnpm -r build - - name: Cargo cache - uses: actions/cache@v4 + - uses: Swatinem/rust-cache@v2 with: - path: | - ~/.cargo - ./target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + # The prefix cache key, this can be changed to start a new cache manually. + # default: "v0-rust" + prefix-key: "" - name: Install rust target run: bash ./.github/workflows/install_rust.sh diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index b122c411..dec7d255 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -98,13 +98,11 @@ jobs: pnpm -r install pnpm -r build - - name: Cargo cache - uses: actions/cache@v4 + - uses: Swatinem/rust-cache@v2 with: - path: | - ~/.cargo - ./target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + # The prefix cache key, this can be changed to start a new cache manually. + # default: "v0-rust" + prefix-key: "" - name: Install rust target run: | diff --git a/easytier/src/gateway/tokio_smoltcp/socket.rs b/easytier/src/gateway/tokio_smoltcp/socket.rs index 46dc7a9f..414093b9 100644 --- a/easytier/src/gateway/tokio_smoltcp/socket.rs +++ b/easytier/src/gateway/tokio_smoltcp/socket.rs @@ -156,11 +156,14 @@ impl TcpStream { } let (peer_addr, local_addr) = { let socket = reactor.get_socket::(*listener.handle); - ( - // should be Some, because the state is Established - ep2sa(&socket.remote_endpoint().unwrap()), - ep2sa(&socket.local_endpoint().unwrap()), - ) + match (socket.remote_endpoint(), socket.local_endpoint()) { + (Some(remote_endpoint), Some(local_endpoint)) => ( + // should be Some, because the state is Established + ep2sa(&remote_endpoint), + ep2sa(&local_endpoint), + ), + _ => return Err(io::ErrorKind::NotConnected.into()), + } }; Ok((