+3
-5
@@ -31,14 +31,12 @@ fn read_body<T: Read + Write>(length: u32, socket: &mut ProxySocket<T>) {
|
||||
let stdin = io::stdin();
|
||||
let mut handle = stdin.lock();
|
||||
|
||||
if let Ok(_) = handle.read_exact(&mut buffer) {
|
||||
if valid_length(length) {
|
||||
socket.write(&buffer).unwrap();
|
||||
if handle.read_exact(&mut buffer).is_ok() && valid_length(length) {
|
||||
socket.write_all(&buffer).unwrap();
|
||||
socket.flush().unwrap();
|
||||
read_response(socket);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn read_response<T: Read>(socket: &mut ProxySocket<T>) {
|
||||
let mut buf = vec![0; BUFFER_SIZE as usize];
|
||||
@@ -52,7 +50,7 @@ fn write_response(buf: &[u8]) {
|
||||
let mut out = stdout.lock();
|
||||
|
||||
out.write_u32::<NativeEndian>(buf.len() as u32).unwrap();
|
||||
out.write(buf).unwrap();
|
||||
out.write_all(buf).unwrap();
|
||||
out.flush().unwrap();
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -44,12 +44,11 @@ pub fn connect(buffer_size: u32) -> io::Result<ProxySocket<UnixStream>> {
|
||||
use std::time::Duration;
|
||||
|
||||
let socket_name = "org.keepassxc.KeePassXC.BrowserServer";
|
||||
let socket: String;
|
||||
if let Ok(dir) = if cfg!(target_os = "macos") {env::var("TMPDIR") } else { env::var("XDG_RUNTIME_DIR") } {
|
||||
socket = format!("{}/{}", dir, socket_name);
|
||||
let socket = if let Ok(dir) = if cfg!(target_os = "macos") {env::var("TMPDIR") } else { env::var("XDG_RUNTIME_DIR") } {
|
||||
format!("{}/{}", dir, socket_name)
|
||||
} else {
|
||||
socket = format!("/tmp/{}", socket_name);
|
||||
}
|
||||
format!("/tmp/{}", socket_name)
|
||||
};
|
||||
let s = UnixStream::connect(socket)?;
|
||||
socket::setsockopt(s.as_raw_fd(), SndBuf, &(buffer_size as usize)).expect("setsockopt for SndBuf failed");
|
||||
socket::setsockopt(s.as_raw_fd(), RcvBuf, &(buffer_size as usize)).expect("setsockopt for RcvBuf failed");
|
||||
|
||||
Reference in New Issue
Block a user