@@ -24,24 +24,24 @@ const resultTemplate = (result, havePeerColumn) => html`
2424 < td > < span > ${ result . med } </ span > </ td >
2525 < td > < span > ${ result . local_pref } </ span > </ td >
2626 < td >
27- ${ result ?. resolved_nexthop ?. ReverseDns !== undefined
28- ? html `< span title =${ result . nexthop } > ${ result ?. resolved_nexthop ?. ReverseDns } </ span > `
27+ ${ result ?. nexthop_resolved ?. ReverseDns !== undefined
28+ ? html `< span title =${ result . nexthop } > ${ result ?. nexthop_resolved ?. ReverseDns } </ span > `
2929 : html `< span > ${ result . nexthop } </ span > ` }
3030 </ td >
3131 < td > < span > ${ result . state } </ span > </ td >
3232 </ tr >
3333` ;
3434
35- const resultsTemplate = ( query , results , done ) => html `
35+ const resultsTemplate = ( query , routeResults , done ) => html `
3636 ${ searchTemplate ( query ) }
3737
3838 < div class ="results ">
39- ${ results . length > 0 ? html `
39+ ${ routeResults . length > 0 ? html `
4040 < table >
4141 < thead >
4242 < tr >
4343 < th > Router</ th >
44- ${ results . some ( result => result . peer_address ) ? html `< th > Peer</ th > ` : `` }
44+ ${ routeResults . some ( result => result . peer_address ) ? html `< th > Peer</ th > ` : `` }
4545 < th > Prefix</ th >
4646 < th > AS Path</ th >
4747 < th > Communities</ th >
@@ -53,7 +53,7 @@ const resultsTemplate = (query, results, done) => html`
5353 </ tr >
5454 </ thead >
5555 < tbody >
56- ${ results . map ( result => resultTemplate ( result , results . some ( result => result . peer_address ) ) ) }
56+ ${ routeResults . map ( result => resultTemplate ( result , routeResults . some ( result => result . peer_address ) ) ) }
5757 </ tbody >
5858 </ table >
5959 ` : '' }
@@ -75,17 +75,25 @@ const errorTemplate = (query, data) => html`
7575
7676const processResults = ( results ) => {
7777
78+ const routeResults = results . filter ( r => ! ! r . Route ) . map ( r => r . Route ) ;
79+ console . log ( results ) ;
80+ const dnsResults = results . filter ( r => ! ! r . ReverseDns ) . map ( r => r . ReverseDns ) ;
81+
82+ console . log ( dnsResults ) ;
83+ const dnsMap = Object . fromEntries ( dnsResults . map ( r => [ r . nexthop , { nexthop_resolved : r . nexthop_resolved } ] ) ) ;
84+ console . log ( dnsMap ) ;
85+
7886 // stage 1, combine pre- and post-policy adj-in tables
7987 // start out with PostPolicy
8088 const preAndPostPolicy = { } ;
8189 const preAndPostPolicyKey = route => `${ route . from_client } :${ route . peer_address } :${ route . net } ` ;
82- for ( let route of results ) {
90+ for ( let route of routeResults ) {
8391 if ( route . table === "PostPolicyAdjIn" ) {
8492 preAndPostPolicy [ preAndPostPolicyKey ( route ) ] = route ;
8593 }
8694 }
8795 // add routes which are _only_ in PrePolicy => have not been accepted
88- for ( let route of results ) {
96+ for ( let route of routeResults ) {
8997 if ( route . table === "PrePolicyAdjIn" ) {
9098 const key = preAndPostPolicyKey ( route ) ;
9199 if ( ! preAndPostPolicy [ key ] ) {
@@ -100,7 +108,7 @@ const processResults = (results) => {
100108 for ( let route of Object . values ( preAndPostPolicy ) ) {
101109 all [ allKey ( route ) ] = route ;
102110 }
103- for ( let route of results ) {
111+ for ( let route of routeResults ) {
104112 if ( route . table === "LocRib" && route . state === "Accepted" ) {
105113 const key = allKey ( route ) ;
106114 if ( all [ key ] )
@@ -109,7 +117,7 @@ const processResults = (results) => {
109117 all [ key ] = route ;
110118 }
111119 }
112- for ( let route of results ) {
120+ for ( let route of routeResults ) {
113121 if ( route . table === "LocRib" && route . state === "Active" ) {
114122 const key = allKey ( route ) ;
115123 if ( all [ key ] )
@@ -118,7 +126,7 @@ const processResults = (results) => {
118126 all [ key ] = route ;
119127 }
120128 }
121- for ( let route of results ) {
129+ for ( let route of routeResults ) {
122130 if ( route . table === "LocRib" && route . state === "Selected" ) {
123131 const key = allKey ( route ) ;
124132 if ( all [ key ] )
@@ -143,6 +151,14 @@ const processResults = (results) => {
143151 if ( res !== 0 ) return res ;
144152 return 0 ;
145153 } ) ;
154+
155+ // add resolved nexthop data
156+ for ( const result of newResults ) {
157+ if ( result . nexthop in dnsMap ) {
158+ Object . assign ( result , dnsMap [ result . nexthop ] )
159+ }
160+ }
161+
146162 return newResults ;
147163} ;
148164
0 commit comments