From ff1f286882e6a4310301dea7a684c1d158ea7ae8 Mon Sep 17 00:00:00 2001 From: holger krekel Date: Sat, 17 Aug 2019 00:42:33 +0200 Subject: [PATCH] remove goto/current_block logic with ok_to_continue --- src/dc_qr.rs | 48 +++++++++++------------------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/src/dc_qr.rs b/src/dc_qr.rs index 251b3bd2a..d5c7332e2 100644 --- a/src/dc_qr.rs +++ b/src/dc_qr.rs @@ -23,7 +23,7 @@ use crate::x::*; // text1=URL // text1=error string pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc_lot_t { - let mut current_block: u64; + let mut ok_to_continue = true; let mut payload: *mut libc::c_char = 0 as *mut libc::c_char; // must be normalized, if set let mut addr: *mut libc::c_char = 0 as *mut libc::c_char; @@ -91,7 +91,6 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc } } fingerprint = dc_normalize_fingerprint_c(payload); - current_block = 5023038348526654800; } else if strncasecmp( qr, b"mailto:\x00" as *const u8 as *const libc::c_char, @@ -106,7 +105,6 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc *query = 0i32 as libc::c_char } addr = dc_strdup(payload); - current_block = 5023038348526654800; } else if strncasecmp( qr, b"SMTP:\x00" as *const u8 as *const libc::c_char, @@ -121,7 +119,6 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc *colon = 0i32 as libc::c_char } addr = dc_strdup(payload); - current_block = 5023038348526654800; } else if strncasecmp( qr, b"MATMSG:\x00" as *const u8 as *const libc::c_char, @@ -137,12 +134,11 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc if !semicolon.is_null() { *semicolon = 0i32 as libc::c_char } - current_block = 5023038348526654800; } else { (*qr_parsed).state = 400i32; (*qr_parsed).text1 = dc_strdup(b"Bad e-mail address.\x00" as *const u8 as *const libc::c_char); - current_block = 16562876845594826114; + ok_to_continue = false; } } else { if strncasecmp( @@ -191,11 +187,8 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc } dc_free_splitted_lines(lines); } - current_block = 5023038348526654800; } - match current_block { - 16562876845594826114 => {} - _ => { + if ok_to_continue { /* check the parameters ---------------------- */ if !addr.is_null() { @@ -211,33 +204,19 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc (*qr_parsed).text1 = dc_strdup( b"Bad e-mail address.\x00" as *const u8 as *const libc::c_char, ); - current_block = 16562876845594826114; - } else { - current_block = 14116432890150942211; - } - } else { - current_block = 14116432890150942211; - } - match current_block { - 16562876845594826114 => {} - _ => { - if !fingerprint.is_null() { - if strlen(fingerprint) != 40 { + ok_to_continue = false; + } + } + } + if ok_to_continue && !fingerprint.is_null() && strlen(fingerprint) != 40 { (*qr_parsed).state = 400i32; (*qr_parsed).text1 = dc_strdup( b"Bad fingerprint length in QR code.\x00" as *const u8 as *const libc::c_char, ); - current_block = 16562876845594826114; - } else { - current_block = 5409161009579131794; - } - } else { - current_block = 5409161009579131794; - } - match current_block { - 16562876845594826114 => {} - _ => { + ok_to_continue = false; + } + if ok_to_continue { if !fingerprint.is_null() { let peerstate = Peerstate::from_fingerprint( context, @@ -325,12 +304,7 @@ pub unsafe fn dc_check_qr(context: &Context, qr: *const libc::c_char) -> *mut dc if !device_msg.is_null() { dc_add_device_msg(context, chat_id, device_msg); } - } } - } - } - } - } } free(addr as *mut libc::c_void); free(fingerprint as *mut libc::c_void);