mirror of
https://github.com/chatmail/core.git
synced 2026-05-16 21:36:30 +03:00
Pass setup_code to dc_continue_key_transfer as &str
This commit is contained in:
committed by
holger krekel
parent
8165b76001
commit
60bd053095
@@ -1573,7 +1573,9 @@ pub unsafe extern "C" fn dc_continue_key_transfer(
|
|||||||
}
|
}
|
||||||
let ffi_context = &*context;
|
let ffi_context = &*context;
|
||||||
ffi_context
|
ffi_context
|
||||||
.with_inner(|ctx| dc_imex::dc_continue_key_transfer(ctx, msg_id, setup_code) as libc::c_int)
|
.with_inner(|ctx| {
|
||||||
|
dc_imex::dc_continue_key_transfer(ctx, msg_id, as_str(setup_code)) as libc::c_int
|
||||||
|
})
|
||||||
.unwrap_or(0)
|
.unwrap_or(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -327,11 +327,6 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E
|
|||||||
arg1.strdup() as *const _
|
arg1.strdup() as *const _
|
||||||
};
|
};
|
||||||
let arg2 = args.next().unwrap_or_default();
|
let arg2 = args.next().unwrap_or_default();
|
||||||
let arg2_c = if arg2.is_empty() {
|
|
||||||
std::ptr::null()
|
|
||||||
} else {
|
|
||||||
arg2.strdup() as *const _
|
|
||||||
};
|
|
||||||
|
|
||||||
match arg0 {
|
match arg0 {
|
||||||
"help" | "?" => match arg1 {
|
"help" | "?" => match arg1 {
|
||||||
@@ -451,7 +446,7 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E
|
|||||||
!arg1.is_empty() && !arg2.is_empty(),
|
!arg1.is_empty() && !arg2.is_empty(),
|
||||||
"Arguments <msg-id> <setup-code> expected"
|
"Arguments <msg-id> <setup-code> expected"
|
||||||
);
|
);
|
||||||
if !dc_continue_key_transfer(context, arg1.parse()?, arg2_c) {
|
if !dc_continue_key_transfer(context, arg1.parse()?, &arg2) {
|
||||||
bail!("Continue key transfer failed");
|
bail!("Continue key transfer failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1001,7 +996,6 @@ pub unsafe fn dc_cmdline(context: &Context, line: &str) -> Result<(), failure::E
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(arg1_c as *mut _);
|
free(arg1_c as *mut _);
|
||||||
free(arg2_c as *mut _);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,12 +253,8 @@ pub fn dc_create_setup_code(_context: &Context) -> String {
|
|||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn dc_continue_key_transfer(
|
pub unsafe fn dc_continue_key_transfer(context: &Context, msg_id: u32, setup_code: &str) -> bool {
|
||||||
context: &Context,
|
if msg_id <= 9i32 as libc::c_uint {
|
||||||
msg_id: u32,
|
|
||||||
setup_code: *const libc::c_char,
|
|
||||||
) -> bool {
|
|
||||||
if msg_id <= 9i32 as libc::c_uint || setup_code.is_null() {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,7 +271,7 @@ pub unsafe fn dc_continue_key_transfer(
|
|||||||
|
|
||||||
if let Some(filename) = msg.get_file(context) {
|
if let Some(filename) = msg.get_file(context) {
|
||||||
if let Ok(buf) = dc_read_file(context, filename) {
|
if let Ok(buf) = dc_read_file(context, filename) {
|
||||||
let norm_sc = CString::yolo(dc_normalize_setup_code(as_str(setup_code)));
|
let norm_sc = CString::yolo(dc_normalize_setup_code(setup_code));
|
||||||
let armored_key = dc_decrypt_setup_file(context, norm_sc.as_ptr(), buf.as_ptr().cast());
|
let armored_key = dc_decrypt_setup_file(context, norm_sc.as_ptr(), buf.as_ptr().cast());
|
||||||
if armored_key.is_null() {
|
if armored_key.is_null() {
|
||||||
warn!(context, "Cannot decrypt Autocrypt Setup Message.",);
|
warn!(context, "Cannot decrypt Autocrypt Setup Message.",);
|
||||||
|
|||||||
Reference in New Issue
Block a user