Make Aheader::from_imffields accept &str, not const char *

This commit is contained in:
Dmitry Bogatov
2019-09-12 06:32:13 +00:00
parent cdfc7281d0
commit 7c4d7fb3dd
2 changed files with 5 additions and 8 deletions

View File

@@ -7,7 +7,6 @@ use mmime::mailimf_types::*;
use crate::constants::*; use crate::constants::*;
use crate::contact::*; use crate::contact::*;
use crate::dc_tools::as_str;
use crate::key::*; use crate::key::*;
/// Possible values for encryption preference /// Possible values for encryption preference
@@ -64,11 +63,8 @@ impl Aheader {
} }
} }
pub fn from_imffields( pub fn from_imffields(wanted_from: &str, header: *const mailimf_fields) -> Option<Self> {
wanted_from: *const libc::c_char, if header.is_null() {
header: *const mailimf_fields,
) -> Option<Self> {
if wanted_from.is_null() || header.is_null() {
return None; return None;
} }
@@ -94,7 +90,7 @@ impl Aheader {
match Self::from_str(value) { match Self::from_str(value) {
Ok(test) => { Ok(test) => {
if addr_cmp(&test.addr, as_str(wanted_from)) { if addr_cmp(&test.addr, wanted_from) {
if fine_header.is_none() { if fine_header.is_none() {
fine_header = Some(test); fine_header = Some(test);
} else { } else {

View File

@@ -408,7 +408,8 @@ impl E2eeHelper {
} }
} }
let mut peerstate = None; let mut peerstate = None;
let autocryptheader = Aheader::from_imffields(from, imffields); let autocryptheader =
as_opt_str(from).and_then(|from| Aheader::from_imffields(from, imffields));
if message_time > 0 && !from.is_null() { if message_time > 0 && !from.is_null() {
peerstate = Peerstate::from_addr(context, &context.sql, as_str(from)); peerstate = Peerstate::from_addr(context, &context.sql, as_str(from));