//@ts-check const ip = require('../../core/ip') const fs = require('fs') const { exit } = require('process') function usage() { console.log('invalid syntax') console.log('ifup [interface name]') } if ( process.argv.length !== 4 ){ usage() exit(1) } if ( !fs.existsSync('/sys/class/net/' + process.argv[3]) ) { console.log("Interface not found") exit(1) } let flagsStr = '' let flags = ip.getFlags(process.argv[3]) if(flags & ip.flags.IFF_ALLMULTI) { flagsStr += 'IFF_ALLMULTI\n' } if(flags & ip.flags.IFF_AUTOMEDIA) { flagsStr += 'IFF_AUTOMEDIA\n' } if(flags & ip.flags.IFF_BROADCAST) { flagsStr += 'IFF_BROADCAST\n' } if(flags & ip.flags.IFF_DEBUG) { flagsStr += 'IFF_DEBUG\n' } if(flags & ip.flags.IFF_DYNAMIC) { flagsStr += 'IFF_DYNAMIC\n' } if(flags & ip.flags.IFF_LOOPBACK) { flagsStr += 'IFF_LOOPBACK\n' } if(flags & ip.flags.IFF_MASTER) { flagsStr += 'IFF_MASTER\n' } if(flags & ip.flags.IFF_MULTICAST) { flagsStr += 'IFF_MULTICAST\n' } if(flags & ip.flags.IFF_NOARP) { flagsStr += 'IFF_NOARP\n' } if(flags & ip.flags.IFF_NOTRAILERS) { flagsStr += 'IFF_NOTRAILERS\n' } if(flags & ip.flags.IFF_POINTOPOINT) { flagsStr += 'IFF_POINTOPOINT\n' } if(flags & ip.flags.IFF_PORTSEL) { flagsStr += 'IFF_PORTSEL\n' } if(flags & ip.flags.IFF_PROMISC) { flagsStr += 'IFF_PROMISC\n' } if(flags & ip.flags.IFF_RUNNING) { flagsStr += 'IFF_RUNNING\n' } if(flags & ip.flags.IFF_SLAVE) { flagsStr += 'IFF_SLAVE\n' } if(flags & ip.flags.IFF_UP) { flagsStr += 'IFF_SLAVE\n' } console.log(flagsStr)