[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: index.js
var cookieParser = require('cookie-parser') var basicAuth = require('basic-auth') var express = require('express') var fs = require('fs') var http = require('http') var path = require('path') var url = require('url') var app = express() var server = http.createServer(app) // Otherwise, use 'application/octet-stream' var copiesMimeTypes = { '/basic.txt': 'text/plain' } var maxDelay = 5000 // ms // This should make sure bodies aren't cached // so the streaming tests always pass app.use(function (req, res, next) { res.setHeader('Cache-Control', 'no-store') next() }) app.get('/testHeaders', function (req, res) { var parsed = url.parse(req.url, true) // Values in query parameters are sent as response headers Object.keys(parsed.query).forEach(function (key) { res.setHeader('Test-' + key, parsed.query[key]) }) res.setHeader('Content-Type', 'application/json') res.setHeader('Cache-Control', 'no-cache') // Request headers are sent in the body as json var reqHeaders = {} Object.keys(req.headers).forEach(function (key) { key = key.toLowerCase() if (key.indexOf('test-') === 0) { // different browsers format request headers with multiple values // slightly differently, so normalize reqHeaders[key] = req.headers[key].replace(', ', ',') } }) var body = JSON.stringify(reqHeaders) res.setHeader('Content-Length', body.length) res.write(body) res.end() }) app.get('/cookie', cookieParser(), function (req, res) { res.setHeader('Content-Type', 'text/plain') res.write('hello=' + req.cookies.hello) res.end() }) app.get('/auth', function (req, res) { var user = basicAuth(req) if (!user || user.name !== 'TestUser' || user.pass !== 'trustno1') { res.setHeader('WWW-Authenticate', 'Basic realm="example"') res.end('Access denied') } else { res.setHeader('Content-Type', 'text/plain') res.write('You\'re in!') res.end() } }) app.post('/echo', function (req, res) { res.setHeader('Content-Type', 'application/octet-stream') req.pipe(res) }) app.use('/verifyEmpty', function (req, res) { var empty = true req.on('data', function (buf) { if (buf.length > 0) { empty = false } }) req.on('end', function () { res.setHeader('Content-Type', 'text/plain') if (empty) { res.end('empty') } else { res.end('not empty') } }) }) app.use(function (req, res, next) { var parsed = url.parse(req.url, true) if ('copies' in parsed.query) { var totalCopies = parseInt(parsed.query.copies, 10) function fail () { res.statusCode = 500 res.end() } fs.readFile(path.join(__dirname, 'static', parsed.pathname), function (err, data) { if (err) return fail() var mimeType = copiesMimeTypes[parsed.pathname] || 'application/octet-stream' res.setHeader('Content-Type', mimeType) res.setHeader('Content-Length', data.length * totalCopies) var pieceDelay = maxDelay / totalCopies if (pieceDelay > 100) pieceDelay = 100 function write (copies) { if (copies === 0) return res.end() res.write(data, function (err) { if (err) return fail() setTimeout(write.bind(null, copies - 1), pieceDelay) }) } write(totalCopies) }) return } next() }) app.use(express.static(path.join(__dirname, 'static'))) var port = parseInt(process.env.AIRTAP_PORT) || 8199 console.log('Test server listening on port', port) server.listen(port)
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.6 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002