fix(peerstate): equality checks are tricky

This commit is contained in:
dignifiedquire
2019-05-15 12:51:31 +02:00
parent 826fe573a4
commit 813addfa1d

View File

@@ -18,7 +18,6 @@ use crate::x::*;
* @class dc_apeerstate_t * @class dc_apeerstate_t
* Library-internal. * Library-internal.
*/ */
#[repr(C)]
pub struct dc_apeerstate_t<'a> { pub struct dc_apeerstate_t<'a> {
pub context: &'a dc_context_t, pub context: &'a dc_context_t,
pub addr: *mut libc::c_char, pub addr: *mut libc::c_char,
@@ -214,7 +213,7 @@ pub unsafe fn dc_apeerstate_apply_header(
peerstate.to_save |= 0x2i32 peerstate.to_save |= 0x2i32
} }
if peerstate.public_key.as_ref() == Some(&header.public_key) { if peerstate.public_key.as_ref() != Some(&header.public_key) {
peerstate.public_key = Some(header.public_key.clone()); peerstate.public_key = Some(header.public_key.clone());
dc_apeerstate_recalc_fingerprint(peerstate); dc_apeerstate_recalc_fingerprint(peerstate);
peerstate.to_save |= 0x2i32; peerstate.to_save |= 0x2i32;