use fd_change_cloexec helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
6b9bfd7fe9
commit
935ee97b17
|
@ -6,7 +6,6 @@ use futures::future::{FutureExt, TryFutureExt};
|
||||||
use hyper::body::Body;
|
use hyper::body::Body;
|
||||||
use hyper::http::request::Parts;
|
use hyper::http::request::Parts;
|
||||||
use hyper::upgrade::Upgraded;
|
use hyper::upgrade::Upgraded;
|
||||||
use nix::fcntl::{fcntl, FcntlArg, FdFlag};
|
|
||||||
use serde_json::{json, Value};
|
use serde_json::{json, Value};
|
||||||
use tokio::io::{AsyncBufReadExt, BufReader};
|
use tokio::io::{AsyncBufReadExt, BufReader};
|
||||||
|
|
||||||
|
@ -145,18 +144,10 @@ async fn termproxy(
|
||||||
move |worker| async move {
|
move |worker| async move {
|
||||||
// move inside the worker so that it survives and does not close the port
|
// move inside the worker so that it survives and does not close the port
|
||||||
// remove CLOEXEC from listenere so that we can reuse it in termproxy
|
// remove CLOEXEC from listenere so that we can reuse it in termproxy
|
||||||
let fd = listener.as_raw_fd();
|
tools::fd_change_cloexec(listener.as_raw_fd(), false)?;
|
||||||
let mut flags = match fcntl(fd, FcntlArg::F_GETFD) {
|
|
||||||
Ok(bits) => FdFlag::from_bits_truncate(bits),
|
|
||||||
Err(err) => bail!("could not get fd: {}", err),
|
|
||||||
};
|
|
||||||
flags.remove(FdFlag::FD_CLOEXEC);
|
|
||||||
if let Err(err) = fcntl(fd, FcntlArg::F_SETFD(flags)) {
|
|
||||||
bail!("could not set fd: {}", err);
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut arguments: Vec<&str> = Vec::new();
|
let mut arguments: Vec<&str> = Vec::new();
|
||||||
let fd_string = fd.to_string();
|
let fd_string = listener.as_raw_fd().to_string();
|
||||||
arguments.push(&fd_string);
|
arguments.push(&fd_string);
|
||||||
arguments.extend_from_slice(&[
|
arguments.extend_from_slice(&[
|
||||||
"--path",
|
"--path",
|
||||||
|
|
Loading…
Reference in New Issue