mirror of
https://github.com/chatmail/core.git
synced 2026-05-09 01:46:30 +03:00
fix: peerstate.addr to c string in dc_handle_degrade_event() (#103)
fix: peerstate.addr to c string in dc_handle_degrade_event()
This commit is contained in:
@@ -1078,17 +1078,15 @@ pub unsafe fn dc_handle_degrade_event(context: &Context, peerstate: &Peerstate)
|
|||||||
&context.sql.clone().read().unwrap(),
|
&context.sql.clone().read().unwrap(),
|
||||||
b"SELECT id FROM contacts WHERE addr=?;\x00" as *const u8 as *const libc::c_char,
|
b"SELECT id FROM contacts WHERE addr=?;\x00" as *const u8 as *const libc::c_char,
|
||||||
);
|
);
|
||||||
let c_addr = peerstate.addr.as_ref().map(to_cstring);
|
let c_addr = peerstate.addr.as_ref().map(to_cstring).unwrap_or_default();
|
||||||
sqlite3_bind_text(
|
|
||||||
stmt,
|
let c_addr_ptr = if peerstate.addr.is_some() {
|
||||||
1i32,
|
c_addr.as_ptr()
|
||||||
c_addr
|
} else {
|
||||||
.as_ref()
|
std::ptr::null()
|
||||||
.map(|a| a.as_ptr())
|
};
|
||||||
.unwrap_or_else(|| std::ptr::null()),
|
|
||||||
-1i32,
|
sqlite3_bind_text(stmt, 1i32, c_addr_ptr, -1i32, None);
|
||||||
None,
|
|
||||||
);
|
|
||||||
sqlite3_step(stmt);
|
sqlite3_step(stmt);
|
||||||
contact_id = sqlite3_column_int(stmt, 0i32) as uint32_t;
|
contact_id = sqlite3_column_int(stmt, 0i32) as uint32_t;
|
||||||
sqlite3_finalize(stmt);
|
sqlite3_finalize(stmt);
|
||||||
@@ -1100,13 +1098,7 @@ pub unsafe fn dc_handle_degrade_event(context: &Context, peerstate: &Peerstate)
|
|||||||
&mut contact_chat_id,
|
&mut contact_chat_id,
|
||||||
0 as *mut libc::c_int,
|
0 as *mut libc::c_int,
|
||||||
);
|
);
|
||||||
let msg = dc_stock_str_repl_string(
|
let msg = dc_stock_str_repl_string(context, 37i32, c_addr_ptr);
|
||||||
context,
|
|
||||||
37i32,
|
|
||||||
c_addr
|
|
||||||
.map(|a| a.as_ptr())
|
|
||||||
.unwrap_or_else(|| std::ptr::null()),
|
|
||||||
);
|
|
||||||
dc_add_device_msg(context, contact_chat_id, msg);
|
dc_add_device_msg(context, contact_chat_id, msg);
|
||||||
free(msg as *mut libc::c_void);
|
free(msg as *mut libc::c_void);
|
||||||
(context.cb)(
|
(context.cb)(
|
||||||
|
|||||||
Reference in New Issue
Block a user