comparison src/libpam/environ.rs @ 106:49d9e2b5c189

An irresponsible mix of implementing libpam-sys and other stuff.
author Paul Fisher <paul@pfish.zone>
date Thu, 26 Jun 2025 22:41:28 -0400
parents 13b4d2a19674
children
comparison
equal deleted inserted replaced
105:13b4d2a19674 106:49d9e2b5c189
31 fn environ_set(&mut self, key: &OsStr, value: Option<&OsStr>) -> Result<Option<OsString>> { 31 fn environ_set(&mut self, key: &OsStr, value: Option<&OsStr>) -> Result<Option<OsString>> {
32 let old = self.environ_get(key); 32 let old = self.environ_get(key);
33 if old.is_none() && value.is_none() { 33 if old.is_none() && value.is_none() {
34 // pam_putenv returns an error if we try to remove a non-existent 34 // pam_putenv returns an error if we try to remove a non-existent
35 // environment variable, so just avoid that entirely. 35 // environment variable, so just avoid that entirely.
36 return Ok(None) 36 return Ok(None);
37 } 37 }
38 let total_len = key.len() + value.map(OsStr::len).unwrap_or_default() + 2; 38 let total_len = key.len() + value.map(OsStr::len).unwrap_or_default() + 2;
39 let mut result = Vec::with_capacity(total_len); 39 let mut result = Vec::with_capacity(total_len);
40 result.extend(key.as_bytes()); 40 result.extend(key.as_bytes());
41 if let Some(value) = value { 41 if let Some(value) = value {