Skip to content
Snippets Groups Projects
Commit ae62216b authored by Adrien Béraud's avatar Adrien Béraud
Browse files

rust: update to 2021, fix memory issues

parent cd92eeaa
No related branches found
No related tags found
No related merge requests found
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
name = "opendht" name = "opendht"
version = "0.1.0" version = "0.1.0"
authors = ["Sébastien Blin <sebastien.blin@savoirfairelinux.com>"] authors = ["Sébastien Blin <sebastien.blin@savoirfairelinux.com>"]
edition = "2018" edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
libc="0.2.0" libc="0.2"
os_socketaddr="0.2.3" os_socketaddr="0.2.3"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
...@@ -56,6 +56,7 @@ impl DhtRunnerConfig { ...@@ -56,6 +56,7 @@ impl DhtRunnerConfig {
privatekey: ptr::null_mut(), privatekey: ptr::null_mut(),
certificate: ptr::null_mut(), certificate: ptr::null_mut(),
}, },
log: true,
}); });
unsafe { unsafe {
dht_runner_config_default(&mut *config); dht_runner_config_default(&mut *config);
...@@ -64,23 +65,23 @@ impl DhtRunnerConfig { ...@@ -64,23 +65,23 @@ impl DhtRunnerConfig {
} }
pub fn set_proxy_server(&mut self, proxy_server: &str) { pub fn set_proxy_server(&mut self, proxy_server: &str) {
self.proxy_server = CString::new(proxy_server).unwrap().as_ptr(); self.proxy_server = CString::new(proxy_server).unwrap().into_raw();
} }
pub fn set_push_node_id(&mut self, push_node_id: &str) { pub fn set_push_node_id(&mut self, push_node_id: &str) {
self.push_node_id = CString::new(push_node_id).unwrap().as_ptr(); self.push_node_id = CString::new(push_node_id).unwrap().into_raw();
} }
pub fn set_push_token(&mut self, push_token: &str) { pub fn set_push_token(&mut self, push_token: &str) {
self.push_token = CString::new(push_token).unwrap().as_ptr(); self.push_token = CString::new(push_token).unwrap().into_raw();
} }
pub fn set_push_topic(&mut self, push_topic: &str) { pub fn set_push_topic(&mut self, push_topic: &str) {
self.push_topic = CString::new(push_topic).unwrap().as_ptr(); self.push_topic = CString::new(push_topic).unwrap().into_raw();
} }
pub fn set_push_platform(&mut self, push_platform: &str) { pub fn set_push_platform(&mut self, push_platform: &str) {
self.push_platform = CString::new(push_platform).unwrap().as_ptr(); self.push_platform = CString::new(push_platform).unwrap().into_raw();
} }
pub fn set_identity(&mut self, certificate: Box<DhtCertificate>, privatekey: Box<PrivateKey>) { pub fn set_identity(&mut self, certificate: Box<DhtCertificate>, privatekey: Box<PrivateKey>) {
...@@ -93,7 +94,7 @@ impl DhtRunnerConfig { ...@@ -93,7 +94,7 @@ impl DhtRunnerConfig {
impl DhtNodeConfig impl DhtNodeConfig
{ {
pub fn set_persist_path(&mut self, persist_path: &str) { pub fn set_persist_path(&mut self, persist_path: &str) {
self.persist_path = CString::new(persist_path).unwrap().as_ptr(); self.persist_path = CString::new(persist_path).unwrap().into_raw();
} }
} }
...@@ -197,8 +198,8 @@ impl DhtRunner { ...@@ -197,8 +198,8 @@ impl DhtRunner {
pub fn bootstrap(&mut self, host: &str, service: u16) { pub fn bootstrap(&mut self, host: &str, service: u16) {
unsafe { unsafe {
dht_runner_bootstrap(&mut *self, dht_runner_bootstrap(&mut *self,
CString::new(host).unwrap().as_ptr(), CString::new(host).unwrap().into_raw(),
CString::new(service.to_string()).unwrap().as_ptr()) CString::new(service.to_string()).unwrap().into_raw())
} }
} }
......
...@@ -124,9 +124,9 @@ pub struct DhtRunnerConfig ...@@ -124,9 +124,9 @@ pub struct DhtRunnerConfig
pub peer_publish: bool, pub peer_publish: bool,
pub server_ca: *mut DhtCertificate, pub server_ca: *mut DhtCertificate,
pub client_identity: DhtIdentity, pub client_identity: DhtIdentity,
pub log: bool,
} }
#[link(name = "opendht-c")] #[link(name = "opendht-c")]
extern { extern {
// dht::Value // dht::Value
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment