UNPKG

neoss

Version:

<div align="center"> <h1>neoss</h1> <i>Socket statistics, with a UI.</i> </div> <p align="center"> <a href="https://img.shields.io/github/v/release/pablolec/neoss" target="_blank"> <img src="https://img.shields.io/github/v/release/pablolec/neo

80 lines (79 loc) 3.41 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStats = getStats; const dns_1 = require("dns"); const screen_1 = require("../ui/screen"); const sockets_1 = require("./sockets"); const users_1 = require("./users"); const helper_1 = require("./helper"); const popups_1 = require("../ui/popups"); let usedSockets; let socketList = []; function getStats() { return __awaiter(this, void 0, void 0, function* () { let socketListPromise = (0, sockets_1.getSockets)(); let usedSocketsPromise = (0, users_1.getUsedSockets)(); let usersPromises = []; (0, popups_1.loadingPopup)(); yield Promise.all([socketListPromise, usedSocketsPromise]).then(function ([socketListResult, usedSocketsResult]) { usedSockets = usedSocketsResult; let i = 0; for (let socket in socketListResult) { socketList[i] = socketListResult[socket]; if (socket in usedSockets) { usersPromises.push(parseUsersData(socket, i)); } else { socketList[i].users.text = "/"; } i++; } }); yield Promise.all(usersPromises); (0, screen_1.setData)((0, helper_1.sortBy)(null, socketList)); (0, popups_1.removePopup)(); yield reverseNSLookup(); }); } function parseUsersData(socket, i) { return __awaiter(this, void 0, void 0, function* () { for (let j = 0; j < usedSockets[socket].length; j++) { socketList[i].users[j] = {}; socketList[i].users[j].pid = usedSockets[socketList[i].inode][j]; let userData = yield (0, users_1.getUserData)(socketList[i].users[j].pid); socketList[i].users[j].name = userData[0]; socketList[i].users[j].owner = userData[1]; socketList[i].users[j].cmdline = userData[2]; } if (usedSockets[socketList[i].inode].length == 1) { socketList[i].users.text = socketList[i].users[0].name; } else { socketList[i].users.text = usedSockets[socketList[i].inode].length + " users"; } }); } function reverseNSLookup() { return __awaiter(this, void 0, void 0, function* () { for (const element of socketList) { (0, dns_1.reverse)(element.peerAddress, (err, result) => { if (!err) { if (result.length == 0 || result[0].length == 0) { return; } element.peerAddress = result[0]; (0, screen_1.refreshScreen)(); } }); } }); }