mirror of https://github.com/dnomd343/ClearDNS
Dnomd343
2 years ago
8 changed files with 125 additions and 84 deletions
@ -0,0 +1,3 @@ |
|||||
|
language = "C" |
||||
|
pragma_once = true |
||||
|
include_version = true |
@ -0,0 +1,65 @@ |
|||||
|
// mod fetch;
|
||||
|
//
|
||||
|
// use std::env::set_var;
|
||||
|
//
|
||||
|
// use crate::fetch::Asset;
|
||||
|
|
||||
|
use std::ffi::{c_char, CStr}; |
||||
|
|
||||
|
// const TIMEOUT: u64 = 60;
|
||||
|
//
|
||||
|
// const ASSETS_DIR: &str = "/cleardns/assets/";
|
||||
|
|
||||
|
#[no_mangle] |
||||
|
pub unsafe extern "C" fn rust_test(ptr: *const *const c_char) { |
||||
|
println!("enter rust function"); |
||||
|
|
||||
|
unsafe { |
||||
|
|
||||
|
println!("ptr: {:?}", ptr); |
||||
|
|
||||
|
|
||||
|
let mut index = 0; |
||||
|
while *ptr.offset(index) != std::ptr::null() { |
||||
|
|
||||
|
let p = *ptr.offset(index); |
||||
|
|
||||
|
println!("loop: {:?}", p); |
||||
|
|
||||
|
let s = String::from( |
||||
|
CStr::from_ptr(p).to_str().unwrap() |
||||
|
); |
||||
|
|
||||
|
println!("content: {}", s); |
||||
|
|
||||
|
index += 1; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
println!("exit rust function"); |
||||
|
} |
||||
|
|
||||
|
// #[tokio::main]
|
||||
|
// async fn main() {
|
||||
|
//
|
||||
|
// set_var("RUST_LOG", "trace");
|
||||
|
// env_logger::init();
|
||||
|
//
|
||||
|
// let d = vec![
|
||||
|
// String::from("https://res.343.re/Share/cleardns/gfwlist.txt"),
|
||||
|
// String::from("/tmp/gfwlist.txt"),
|
||||
|
// ];
|
||||
|
// let info = Asset {
|
||||
|
// name: String::from("demo"),
|
||||
|
// timeout: TIMEOUT,
|
||||
|
// workdir: String::from(ASSETS_DIR),
|
||||
|
// sources: d,
|
||||
|
// };
|
||||
|
// fetch::asset_fetch(&info).await;
|
||||
|
//
|
||||
|
//
|
||||
|
// println!("end demo");
|
||||
|
//
|
||||
|
// }
|
Loading…
Reference in new issue