@@ -219,15 +219,17 @@ ${error.stderr || ''}`;
219219 let score = 0 ;
220220 if ( results . sourcePing ) score += 10 ;
221221 if ( results . sourcePort443 ) score += 10 ;
222- if ( results . targetPing ) score += 20 ;
223- if ( results . port80 ) score += 20 ;
224- if ( results . port443 ) score += 25 ;
225- if ( results . port22 ) score += 7 ;
226- if ( results . port53 ) score += 8 ;
227- if ( results . tracerouteAvailable && results . tracerouteReachedTarget ) score += 5 ;
228- if ( results . mtrAvailable && results . mtrLossPercent !== null ) {
229- if ( results . mtrLossPercent <= 5 ) score += 5 ;
230- else if ( results . mtrLossPercent <= 20 ) score += 2 ;
222+ if ( results . targetPing ) {
223+ score += 20 ;
224+ if ( results . port80 ) score += 20 ;
225+ if ( results . port443 ) score += 25 ;
226+ if ( results . port22 ) score += 7 ;
227+ if ( results . port53 ) score += 8 ;
228+ if ( results . tracerouteAvailable && results . tracerouteReachedTarget ) score += 5 ;
229+ if ( results . mtrAvailable && results . mtrLossPercent !== null ) {
230+ if ( results . mtrLossPercent <= 5 ) score += 5 ;
231+ else if ( results . mtrLossPercent <= 20 ) score += 2 ;
232+ }
231233 }
232234 results . targetReachability = Math . min (
233235 100 ,
@@ -305,23 +307,26 @@ ${error.stderr || ''}`;
305307
306308 const testResults = await this . runWithConcurrency ( tasks , this . maxConcurrent ) ;
307309 testResults . filter ( Boolean ) . forEach ( ( result ) => {
308- if ( result . connectivityScore > 0 ) {
310+ const isMtrPassed = result . stageResults ?. mtr === 'passed' ;
311+ const pingStats = result . targetPingStats || { } ;
312+ const pingBadge = ( pingStats . transmitted !== null && pingStats . received !== null )
313+ ? `{ping ${ pingStats . received } /${ pingStats . transmitted } }`
314+ : '{ping N/A}' ;
315+ const latencyBadge = pingStats . averageLatencyMs !== null
316+ ? `{latency ${ pingStats . averageLatencyMs } ms}`
317+ : '{latency N/A}' ;
318+
319+ if ( isMtrPassed ) {
309320 providerResults . successfulConnections . push ( result ) ;
310321 if ( ! providerResults . bestConnection ||
311322 result . connectivityScore > providerResults . bestConnection . connectivityScore ) {
312323 providerResults . bestConnection = result ;
313324 }
314- const pingStats = result . targetPingStats || { } ;
315- const pingBadge = ( pingStats . transmitted !== null && pingStats . received !== null )
316- ? `{ping ${ pingStats . received } /${ pingStats . transmitted } }`
317- : '{ping N/A}' ;
318- const latencyBadge = pingStats . averageLatencyMs !== null
319- ? `{latency ${ pingStats . averageLatencyMs } ms}`
320- : '{latency N/A}' ;
321- this . log ( `✓ Connection path score ${ result . ip } -> ${ this . targetIp } (${ result . connectivityScore } ) ${ pingBadge } ${ latencyBadge } ` , 'success' ) ;
325+ this . log ( `✓ Connection path score ${ result . ip } -> ${ this . targetIp } (${ result . connectivityScore } ) ${ pingBadge } ${ latencyBadge } {mtr ✓}` , 'success' ) ;
322326 } else {
323327 providerResults . failedConnections . push ( result ) ;
324- this . log ( `✗ Connection path failed ${ result . ip } -> ${ this . targetIp } ` , 'error' ) ;
328+ const mtrState = result . stageResults ?. mtr || 'skipped' ;
329+ this . log ( `✗ Connection path failed ${ result . ip } -> ${ this . targetIp } ${ pingBadge } ${ latencyBadge } {mtr ${ mtrState } }` , 'error' ) ;
325330 }
326331 } ) ;
327332
0 commit comments