49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
|
const net = require('net');
|
||
|
|
||
|
var request = [];
|
||
|
var requestSize = 0;
|
||
|
|
||
|
const server = new net.createServer(function(c) {
|
||
|
//console.log('Server Connected');
|
||
|
c.on('end', function() {
|
||
|
//console.log('Server Disconnected');
|
||
|
request.slice(0);
|
||
|
requestSize = 0;
|
||
|
});
|
||
|
c.on('data', function(data) {
|
||
|
console.log(data.toString());
|
||
|
if(data.toString().startsWith('OPTIONS')) {
|
||
|
console.log('Sending options ...');
|
||
|
c.write(`ICAP/1.0 200 OK\r\nMethods: REQMOD, RESPMOD\r\nOptions-TTL: 3600\r\nEncapsulated: null-body=0\r\nMax-Connections: 400\r\nPreview: 1024\r\nService: McAfee Web Gateway 7.8.0 build 24353\r\nISTag: "00000951-14.42.54-00008767"\r\nAllow: 204\r\n\r\n`);
|
||
|
c.end();
|
||
|
}
|
||
|
if(data.length > requestSize) {
|
||
|
console.log('tu smo');
|
||
|
request = data;
|
||
|
requestSize = data.length;
|
||
|
}
|
||
|
if(data.toString().endsWith('0\r\n\r\n')) {
|
||
|
console.log('Request Complete!');
|
||
|
var lines = request.toString().split('\r\n');
|
||
|
lines.forEach((line, index) => {
|
||
|
console.log(index.toString() + ': ' + line);
|
||
|
});
|
||
|
if(lines[0].startsWith('RESPMOD')) {
|
||
|
console.log('Sending response');
|
||
|
c.write(`ICAP/1.0 204\r\nICAP/1.0 204 No Content\r\nServer: Deep Discovery Analyzer 6.8 Build 1165\r\nISTag: "12.300.1011"\r\nX-Response-Desc: URL: No risk rating from WRS; FILE: No risk rating from VA\r\nDate: Thu, 16 Apr 2020 07:32:30 GMT\r\n\r\n`);
|
||
|
c.end();
|
||
|
}
|
||
|
//c.end();
|
||
|
} else {
|
||
|
console.log('Request not yet complete');
|
||
|
}
|
||
|
});
|
||
|
c.on('error', function(error) {
|
||
|
console.log(error);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
server.listen(1344, function() {
|
||
|
console.log('Server Bound');
|
||
|
});
|