stream.on( 'close', ( code ) => {
conn.end();
if (code === 0) {
- console.log( 'output: ', output );
const lines = output.split( '\n' );
const sIndex = lines.findIndex( line => line.startsWith( 'Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since' ) );
const eIndex = lines.findIndex( line => line.startsWith( 'ROUTING TABLE' ) );
+ const C = [...lines].slice(sIndex +1, eIndex).filter( line => line.trim() );
+ const R = [...lines].slice(eIndex + lines.length).filter( line => line.trim() );
+ console.log('clients: ', C, ' routes: ', R );
const clients = lines.slice( sIndex + 1, eIndex ).map( line => {
const parts = line.split( ',' );
- console.log( 'parts: ', parts );
const vLine = lines.find( l => l.includes( parts[0] ) && l !== line );
- console.log( 'vLine: ', vLine );
return { name:parts[0], ip:parts[1], virtual_ip:vLine.split( ',' )[0], connectedSince:parts[4] };
} );
- /*const clients = output.split( '\n' ).filter( line => line.startsWith( 'Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since' ) ).map( line => {
- const parts = line.split( ',' );
- return { name:parts[1], ip:parts[2], connectedSince:parts[8] };
- } );*/
res.json( { clients } );
} else {
res.status( 500 ).json( { error:`Command failed: ${ output }` } );