Commit 9c760a00108a648bcd0bf37313f77a67bc64e662

Authored by Adhidarma Hadiwinoto
1 parent fc6a55fdc9
Exists in master and in 1 other branch ad2mt

typo fix

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

1 "use strict"; 1 "use strict";
2 2
3 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 3 process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
4 4
5 const module_name = require('path').basename(__filename); 5 const module_name = require('path').basename(__filename);
6 6
7 const http = require('http'); 7 const http = require('http');
8 const url = require('url'); 8 const url = require('url');
9 const request = require('request'); 9 const request = require('request');
10 10
11 const config = require('komodo-sdk/config') 11 const config = require('komodo-sdk/config')
12 const logger = require('komodo-sdk/logger'); 12 const logger = require('komodo-sdk/logger');
13 13
14 let _callback; 14 let _callback;
15 15
16 function createHttpServer() { 16 function createHttpServer() {
17 let listenPort = config.center_port; 17 let listenPort = config.center_port;
18 18
19 http.createServer(onRequest).listen(listenPort, function() { 19 http.createServer(onRequest).listen(listenPort, function() {
20 logger.info('Center HTTP server listen on port ' + listenPort); 20 logger.info('Center HTTP server listen on port ' + listenPort);
21 });; 21 });;
22 } 22 }
23 23
24 function onRequest(req, res) { 24 function onRequest(req, res) {
25 const method_name = 'onRequest'; 25 const method_name = 'onRequest';
26 26
27 let remote_address = req.connection.remoteAddress.replace(/^::ffff:/, ''); 27 let remote_address = req.connection.remoteAddress.replace(/^::ffff:/, '');
28 28
29 let qs = url.parse(req.url, true).query; 29 let qs = url.parse(req.url, true).query;
30 30
31 logger.verbose('Got a request from CORE' {module_name: module_name, method_name: method_name remote_address: remote_address, url: req.url, qs: qs}); 31 logger.verbose('Got a request from CORE' {module_name: module_name, method_name: method_name, remote_address: remote_address, url: req.url, qs: qs});
32 32
33 let partner = qs.terminal_name + '@' + remote_address; 33 let partner = qs.terminal_name + '@' + remote_address;
34 let password = qs.password; 34 let password = qs.password;
35 let reverse_url = qs.reverse_url; 35 let reverse_url = qs.reverse_url;
36 36
37 let product_name = qs.product_name; 37 let product_name = qs.product_name;
38 let destination = qs.destination; 38 let destination = qs.destination;
39 let request_id = qs.request_id; 39 let request_id = qs.request_id;
40 40
41 if (!qs.terminal_name || !password || !reverse_url || ! product_name || !destination || !request_id) { 41 if (!qs.terminal_name || !password || !reverse_url || ! product_name || !destination || !request_id) {
42 res.end('INVALID REQUEST'); 42 res.end('INVALID REQUEST');
43 return; 43 return;
44 } 44 }
45 45
46 let msg = [ product_name, destination, password, request_id ].join('.'); 46 let msg = [ product_name, destination, password, request_id ].join('.');
47 47
48 _callback.onIncomingMessage( 48 _callback.onIncomingMessage(
49 { 49 {
50 me: config.username, 50 me: config.username,
51 partner: partner, 51 partner: partner,
52 msg: msg.trim(), 52 msg: msg.trim(),
53 reverse_url: reverse_url 53 reverse_url: reverse_url
54 }, 54 },
55 55
56 function(err, _result) { 56 function(err, _result) {
57 let result = cleanResponseToPartner(_result); 57 let result = cleanResponseToPartner(_result);
58 58
59 logger.verbose('Forwarding CORE response to partner', _result); 59 logger.verbose('Forwarding CORE response to partner', _result);
60 res.end(JSON.stringify(result)); 60 res.end(JSON.stringify(result));
61 } 61 }
62 ) 62 )
63 } 63 }
64 64
65 function cleanResponseToPartner(_data) { 65 function cleanResponseToPartner(_data) {
66 let data = JSON.parse(JSON.stringify(_data)); 66 let data = JSON.parse(JSON.stringify(_data));
67 67
68 delete data.origin; 68 delete data.origin;
69 delete data.origin_report_ip; 69 delete data.origin_report_ip;
70 delete data.origin_report_port; 70 delete data.origin_report_port;
71 delete data.reverse_url; 71 delete data.reverse_url;
72 delete data.misc; 72 delete data.misc;
73 delete data.inquiry_only; 73 delete data.inquiry_only;
74 74
75 return data; 75 return data;
76 } 76 }
77 77
78 function init(cb) { 78 function init(cb) {
79 if (!cb) { 79 if (!cb) {
80 logger.warn('Callback is not defined'); 80 logger.warn('Callback is not defined');
81 console.trace(); 81 console.trace();
82 process.exit(1); 82 process.exit(1);
83 return; 83 return;
84 } 84 }
85 85
86 _callback = cb; 86 _callback = cb;
87 87
88 createHttpServer(); 88 createHttpServer();
89 } 89 }
90 90
91 function send(partner, msg, params) { 91 function send(partner, msg, params) {
92 logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params}); 92 logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params});
93 93
94 if (!params || !params.reverse_url) { 94 if (!params || !params.reverse_url) {
95 logger.verbose('Undefined reverse_url, not forwarding message to partner'); 95 logger.verbose('Undefined reverse_url, not forwarding message to partner');
96 return; 96 return;
97 } 97 }
98 98
99 99
100 let reqOptions = { 100 let reqOptions = {
101 url: params.reverse_url, 101 url: params.reverse_url,
102 qs: cleanResponseToPartner(params) 102 qs: cleanResponseToPartner(params)
103 } 103 }
104 104
105 logger.verbose('Sending reverse report to partner', {request: reqOptions}); 105 logger.verbose('Sending reverse report to partner', {request: reqOptions});
106 request(reqOptions, function(err, res, body) { 106 request(reqOptions, function(err, res, body) {
107 if (err) { 107 if (err) {
108 logger.warn('Error sending reverse report to partner', {request: reqOptions, err: err}); 108 logger.warn('Error sending reverse report to partner', {request: reqOptions, err: err});
109 return; 109 return;
110 } 110 }
111 111
112 if (res.statusCode != 200) { 112 if (res.statusCode != 200) {
113 logger.warn('Partner not returning HTTP status code 200 on reverse report', {request: reqOptions, http_status: res.statusCode}); 113 logger.warn('Partner not returning HTTP status code 200 on reverse report', {request: reqOptions, http_status: res.statusCode});
114 return; 114 return;
115 } 115 }
116 116
117 logger.verbose('Reverse report has been sent to partner', {request: reqOptions}); 117 logger.verbose('Reverse report has been sent to partner', {request: reqOptions});
118 }) 118 })
119 } 119 }
120 120
121 exports.init = init; 121 exports.init = init;
122 exports.send = send; 122 exports.send = send;
123 123