Refactor port checking (#3336)
This commit is contained in:
		
							parent
							
								
									375b2bb284
								
							
						
					
					
						commit
						4a77548672
					
				
					 1 changed files with 11 additions and 3 deletions
				
			
		
							
								
								
									
										14
									
								
								src/index.ts
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								src/index.ts
									
										
									
									
									
								
							|  | @ -106,6 +106,14 @@ const runningNodejsVersion = process.version.slice(1).split('.').map(x => parseI | |||
| const requiredNodejsVersion = [10, 0, 0]; | ||||
| const satisfyNodejsVersion = !lessThan(runningNodejsVersion, requiredNodejsVersion); | ||||
| 
 | ||||
| function isWellKnownPort(port: number): boolean { | ||||
| 	return port < 1024; | ||||
| } | ||||
| 
 | ||||
| async function isPortAvailable(port: number): Promise<boolean> { | ||||
| 	return await portscanner.checkPortStatus(port, '127.0.0.1') === 'closed'; | ||||
| } | ||||
| 
 | ||||
| async function showMachine() { | ||||
| 	const logger = new Logger('Machine'); | ||||
| 	logger.info(`Hostname: ${os.hostname()}`); | ||||
|  | @ -172,12 +180,12 @@ async function init(): Promise<Config> { | |||
| 		process.exit(1); | ||||
| 	} | ||||
| 
 | ||||
| 	if (process.platform === 'linux' && !isRoot() && config.port < 1024) { | ||||
| 		Logger.error('You need root privileges to listen on port below 1024 on Linux'); | ||||
| 	if (process.platform === 'linux' && isWellKnownPort(config.port) && !isRoot()) { | ||||
| 		Logger.error('You need root privileges to listen on well-known port on Linux'); | ||||
| 		process.exit(1); | ||||
| 	} | ||||
| 
 | ||||
| 	if (await portscanner.checkPortStatus(config.port, '127.0.0.1') === 'open') { | ||||
| 	if (!await isPortAvailable(config.port)) { | ||||
| 		Logger.error(`Port ${config.port} is already in use`); | ||||
| 		process.exit(1); | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue