Mercurial > crates > nonstick
comparison src/conv.rs @ 14:51b097c12d3c
make PamResultCode an enum
author | Anthony Nowell <anthony@algorithmia.com> |
---|---|
date | Sat, 23 Sep 2017 14:30:18 -0600 |
parents | 30831c70e5c0 |
children |
comparison
equal
deleted
inserted
replaced
13:cc39d168aeb8 | 14:51b097c12d3c |
---|---|
1 use libc::{c_char, c_int}; | 1 use libc::{c_char, c_int}; |
2 use std::ptr; | 2 use std::ptr; |
3 use std::ffi::{CStr, CString}; | 3 use std::ffi::{CStr, CString}; |
4 | 4 |
5 use constants; | 5 use constants::PamResultCode; |
6 use constants::*; | 6 use constants::*; |
7 use module::{PamItem, PamResult}; | 7 use module::{PamItem, PamResult}; |
8 | 8 |
9 #[allow(missing_copy_implementations)] | 9 #[allow(missing_copy_implementations)] |
10 pub enum AppDataPtr {} | 10 pub enum AppDataPtr {} |
59 msg: CString::new(msg).unwrap().as_ptr(), | 59 msg: CString::new(msg).unwrap().as_ptr(), |
60 }; | 60 }; |
61 | 61 |
62 let ret = (self.conv)(1, &&msg, &mut resp_ptr, self.appdata_ptr); | 62 let ret = (self.conv)(1, &&msg, &mut resp_ptr, self.appdata_ptr); |
63 | 63 |
64 if constants::PAM_SUCCESS == ret { | 64 if PamResultCode::PAM_SUCCESS == ret { |
65 if resp_ptr.is_null() { | 65 if resp_ptr.is_null() { |
66 Ok(None) | 66 Ok(None) |
67 } else { | 67 } else { |
68 let bytes = unsafe { CStr::from_ptr((*resp_ptr).resp).to_bytes() }; | 68 let bytes = unsafe { CStr::from_ptr((*resp_ptr).resp).to_bytes() }; |
69 Ok(String::from_utf8(bytes.to_vec()).ok()) | 69 Ok(String::from_utf8(bytes.to_vec()).ok()) |