From 5062efb035f424f55360cc82d44d4bbc6cb803e2 Mon Sep 17 00:00:00 2001 From: Henry Schimke Date: Thu, 8 Sep 2022 13:34:13 -0500 Subject: [PATCH] exotic uri pass --- src/client/result/ResultParser.rs | 12 +++++++++++- src/client/result/URIParsedResultTestCase.rs | 10 ++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/client/result/ResultParser.rs b/src/client/result/ResultParser.rs index 402f37e..b4bf074 100644 --- a/src/client/result/ResultParser.rs +++ b/src/client/result/ResultParser.rs @@ -222,7 +222,17 @@ pub fn isSubstringOfDigits(value: &str, offset: usize, length: usize) -> bool { let matcher = Regex::new(DIGITS).unwrap(); let sub_seq = &value[offset as usize..max]; - value.len() >= max && matcher.is_match(sub_seq) + let is_a_match = if let Some(mtch) = matcher.find(sub_seq){ + if mtch.start() == 0 && mtch.end() == sub_seq.len() { + true + }else { + false + } + }else{ + false + }; + + value.len() >= max && is_a_match } pub fn parseNameValuePairs(uri: &str) -> Option> { diff --git a/src/client/result/URIParsedResultTestCase.rs b/src/client/result/URIParsedResultTestCase.rs index ee8aad5..87f7757 100644 --- a/src/client/result/URIParsedResultTestCase.rs +++ b/src/client/result/URIParsedResultTestCase.rs @@ -121,14 +121,8 @@ fn test_exotic() { "bitcoin:mySD89iqpmptrK3PhHFW9fa7BXiP7ANy3Y", "", ); - do_test("BTCTX:-TC4TO3$ZYZTC5NC83/SYOV+YGUGK:$BSF0P8/STNTKTKS.V84+JSA$LB+EHCG+8A725.2AZ-NAVX3VBV5K4MH7UL2.2M:/ - F*M9HSL*$2P7T*FX.ZT80GWDRV0QZBPQ+O37WDCNZBRM3EQ0S9SZP+3BPYZG02U/LA*89C2U.V1TS.CT1VF3DIN*HN3W-O-/ - 0ZAKOAB32/.8:J501GJJTTWOA+5/6$MIYBERPZ41NJ6-WSG/*Z48ZH*LSAOEM*IXP81L:$F*W08Z60CR*C*P.JEEVI1F02J07L6+/ - W4L1G$/IC*$16GK6A+:I1-:LJ:Z-P3NW6Z6ADFB-F2AKE$2DWN23GYCYEWX9S8L+LF$VXEKH7/R48E32PU+A:9H:8O5", - "BTCTX:-TC4TO3$ZYZTC5NC83/SYOV+YGUGK:$BSF0P8/STNTKTKS.V84+JSA$LB+EHCG+8A725.2AZ-NAVX3VBV5K4MH7UL2.2M:/ - F*M9HSL*$2P7T*FX.ZT80GWDRV0QZBPQ+O37WDCNZBRM3EQ0S9SZP+3BPYZG02U/LA*89C2U.V1TS.CT1VF3DIN*HN3W-O-/ - 0ZAKOAB32/.8:J501GJJTTWOA+5/6$MIYBERPZ41NJ6-WSG/*Z48ZH*LSAOEM*IXP81L:$F*W08Z60CR*C*P.JEEVI1F02J07L6+/ - W4L1G$/IC*$16GK6A+:I1-:LJ:Z-P3NW6Z6ADFB-F2AKE$2DWN23GYCYEWX9S8L+LF$VXEKH7/R48E32PU+A:9H:8O5", + do_test("BTCTX:-TC4TO3$ZYZTC5NC83/SYOV+YGUGK:$BSF0P8/STNTKTKS.V84+JSA$LB+EHCG+8A725.2AZ-NAVX3VBV5K4MH7UL2.2M:F*M9HSL*$2P7T*FX.ZT80GWDRV0QZBPQ+O37WDCNZBRM3EQ0S9SZP+3BPYZG02U/LA*89C2U.V1TS.CT1VF3DIN*HN3W-O-0ZAKOAB32/.8:J501GJJTTWOA+5/6$MIYBERPZ41NJ6-WSG/*Z48ZH*LSAOEM*IXP81L:$F*W08Z60CR*C*P.JEEVI1F02J07L6+W4L1G$/IC*$16GK6A+:I1-:LJ:Z-P3NW6Z6ADFB-F2AKE$2DWN23GYCYEWX9S8L+LF$VXEKH7/R48E32PU+A:9H:8O5", + "BTCTX:-TC4TO3$ZYZTC5NC83/SYOV+YGUGK:$BSF0P8/STNTKTKS.V84+JSA$LB+EHCG+8A725.2AZ-NAVX3VBV5K4MH7UL2.2M:F*M9HSL*$2P7T*FX.ZT80GWDRV0QZBPQ+O37WDCNZBRM3EQ0S9SZP+3BPYZG02U/LA*89C2U.V1TS.CT1VF3DIN*HN3W-O-0ZAKOAB32/.8:J501GJJTTWOA+5/6$MIYBERPZ41NJ6-WSG/*Z48ZH*LSAOEM*IXP81L:$F*W08Z60CR*C*P.JEEVI1F02J07L6+W4L1G$/IC*$16GK6A+:I1-:LJ:Z-P3NW6Z6ADFB-F2AKE$2DWN23GYCYEWX9S8L+LF$VXEKH7/R48E32PU+A:9H:8O5", ""); do_test( "opc.tcp://test.samplehost.com:4841",