mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 06:13:38 +00:00
Fix ssh agent on flatpak and mac app store (#13324)
This commit is contained in:
@@ -31,26 +31,17 @@ impl Stream for PeercredUnixListenerStream {
|
|||||||
Ok(peer) => match peer.pid() {
|
Ok(peer) => match peer.pid() {
|
||||||
Some(pid) => pid,
|
Some(pid) => pid,
|
||||||
None => {
|
None => {
|
||||||
return Poll::Ready(Some(Err(io::Error::new(
|
return Poll::Ready(Some(Ok((stream, PeerInfo::unknown()))));
|
||||||
io::ErrorKind::Other,
|
|
||||||
"Failed to get peer PID",
|
|
||||||
))));
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Err(err) => {
|
Err(_) => {
|
||||||
return Poll::Ready(Some(Err(io::Error::new(
|
return Poll::Ready(Some(Ok((stream, PeerInfo::unknown()))));
|
||||||
io::ErrorKind::Other,
|
|
||||||
format!("Failed to get peer credentials: {}", err),
|
|
||||||
))));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let peer_info = peerinfo::gather::get_peer_info(pid as u32);
|
let peer_info = peerinfo::gather::get_peer_info(pid as u32);
|
||||||
match peer_info {
|
match peer_info {
|
||||||
Ok(info) => Poll::Ready(Some(Ok((stream, info)))),
|
Ok(info) => Poll::Ready(Some(Ok((stream, info)))),
|
||||||
Err(err) => Poll::Ready(Some(Err(io::Error::new(
|
Err(_) => Poll::Ready(Some(Ok((stream, PeerInfo::unknown())))),
|
||||||
io::ErrorKind::Other,
|
|
||||||
format!("Failed to get peer info: {}", err),
|
|
||||||
)))),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Poll::Ready(Err(err)) => Poll::Ready(Some(Err(err))),
|
Poll::Ready(Err(err)) => Poll::Ready(Some(Err(err))),
|
||||||
|
|||||||
@@ -29,4 +29,8 @@ impl PeerInfo {
|
|||||||
pub fn process_name(&self) -> &str {
|
pub fn process_name(&self) -> &str {
|
||||||
&self.process_name
|
&self.process_name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn unknown() -> Self {
|
||||||
|
Self::new(0, 0, "Unknown application".to_string())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,11 +47,21 @@ impl BitwardenDesktopAgent {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let is_flatpak = std::env::var("container") == Ok("flatpak".to_string());
|
||||||
|
if !is_flatpak {
|
||||||
ssh_agent_directory
|
ssh_agent_directory
|
||||||
.join(".bitwarden-ssh-agent.sock")
|
.join(".bitwarden-ssh-agent.sock")
|
||||||
.to_str()
|
.to_str()
|
||||||
.expect("Path should be valid")
|
.expect("Path should be valid")
|
||||||
.to_owned()
|
.to_owned()
|
||||||
|
} else {
|
||||||
|
ssh_agent_directory
|
||||||
|
.join(".var/app/com.bitwarden.desktop/data/.bitwarden-ssh-agent.sock")
|
||||||
|
.to_str()
|
||||||
|
.expect("Path should be valid")
|
||||||
|
.to_owned()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user