mirror of https://github.com/OISF/suricata
rust: stub out configuration access functions
parent
de5bb1f953
commit
949b358b80
@ -0,0 +1,67 @@
|
|||||||
|
/* Copyright (C) 2017 Open Information Security Foundation
|
||||||
|
*
|
||||||
|
* You can copy, redistribute or modify this Program under the terms of
|
||||||
|
* the GNU General Public License version 2 as published by the Free
|
||||||
|
* Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* version 2 along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
* 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
use std::os::raw::c_char;
|
||||||
|
use std::ffi::{CString, CStr};
|
||||||
|
use std::ptr;
|
||||||
|
use std::str;
|
||||||
|
|
||||||
|
use log::*;
|
||||||
|
|
||||||
|
extern {
|
||||||
|
fn ConfGet(key: *const c_char, res: *mut *const c_char) -> i8;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the string value of a configuration value.
|
||||||
|
pub fn conf_get(key: &str) -> Option<&str> {
|
||||||
|
let mut vptr: *const c_char = ptr::null_mut();
|
||||||
|
|
||||||
|
unsafe {
|
||||||
|
if ConfGet(CString::new(key).unwrap().as_ptr(), &mut vptr) != 1 {
|
||||||
|
SCLogInfo!("Failed to find value for key {}", key);
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if vptr == ptr::null() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let value = str::from_utf8(unsafe{
|
||||||
|
CStr::from_ptr(vptr).to_bytes()
|
||||||
|
}).unwrap();
|
||||||
|
|
||||||
|
return Some(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the value of key as a boolean. A value that is not set is
|
||||||
|
// the same as having it set to false.
|
||||||
|
pub fn conf_get_bool(key: &str) -> bool {
|
||||||
|
match conf_get(key) {
|
||||||
|
Some(val) => {
|
||||||
|
match val {
|
||||||
|
"1" | "yes" | "true" | "on" => {
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
_ => {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
None => {},
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
@ -1,2 +1,4 @@
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
pub mod log;
|
pub mod log;
|
||||||
|
|
||||||
|
pub mod conf;
|
||||||
|
|||||||
Loading…
Reference in New Issue