summaryrefslogtreecommitdiff
path: root/src-repo/src/un_hide_input.rs
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2026-03-11 14:15:45 +0100
committerDennis Kobert <dennis@kobert.dev>2026-03-11 14:16:07 +0100
commita9a74679fbec07cf158f2295513e3d4c4adc2666 (patch)
tree5dcac28283ef53c2869bdedb9badff0896900bb6 /src-repo/src/un_hide_input.rs
parent116bd5a46adc7e9caa27f58b19cafe68d3e085f0 (diff)
Port pam-any from pam-bindings to nonstick crateHEADmain
The pam-bindings crate has a critical bug where pam_try! returns PAM_SUCCESS on error in release builds (anowell/pam-rs#16), causing authentication to always succeed. This replaces it with nonstick and a custom pam_client module with raw PAM FFI for thread-safe conversation forwarding.
Diffstat (limited to 'src-repo/src/un_hide_input.rs')
-rw-r--r--src-repo/src/un_hide_input.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src-repo/src/un_hide_input.rs b/src-repo/src/un_hide_input.rs
new file mode 100644
index 0000000..6350739
--- /dev/null
+++ b/src-repo/src/un_hide_input.rs
@@ -0,0 +1,9 @@
+use std::io;
+use termios::{ECHO, ICANON, TCSANOW, tcsetattr, Termios};
+
+pub fn un_hide_input() -> io::Result<()> {
+ let mut termios = Termios::from_fd(libc::STDIN_FILENO)?;
+ termios.c_lflag |= ECHO | ICANON;
+ tcsetattr(libc::STDIN_FILENO, TCSANOW, &termios)?;
+ Ok(())
+} \ No newline at end of file