summaryrefslogtreecommitdiff
path: root/init/src/host/sethn.rs
diff options
context:
space:
mode:
Diffstat (limited to 'init/src/host/sethn.rs')
-rw-r--r--init/src/host/sethn.rs37
1 files changed, 0 insertions, 37 deletions
diff --git a/init/src/host/sethn.rs b/init/src/host/sethn.rs
deleted file mode 100644
index 1857297..0000000
--- a/init/src/host/sethn.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-use std::{ffi::CString, fs, io};
-use libc::{sethostname, c_char, size_t};
-use crate::log::{log_warning};
-
-pub fn try_set_hostname() {
- let content = fs::read_to_string("/etc/hostname")
- .map(|s| s.trim().to_string())
- .unwrap_or_else(|_| "localhost".to_string());
-
- if let Err(e) = perform_set_hostname(&content) {
- log_warning(&format!("Failed to set hostname to '{}': {}. Falling back to localhost.", content, e));
- let _ = perform_set_hostname("localhost");
- }
-}
-
-fn perform_set_hostname(name: &str) -> io::Result<()> {
- if name.len() > 64 {
- return Err(io::Error::new(io::ErrorKind::InvalidInput, "Hostname too long"));
- }
-
- let c_str = CString::new(name).map_err(|_| {
- io::Error::new(io::ErrorKind::InvalidInput, "Hostname contains null byte")
- })?;
-
- let res = unsafe {
- sethostname(
- c_str.as_ptr() as *const c_char,
- name.len() as size_t,
- )
- };
-
- if res != 0 {
- return Err(io::Error::last_os_error());
- }
-
- Ok(())
-} \ No newline at end of file