#!/usr/bin/node // // This is a tool to listen for JSON-RPC requests at an IP and port. // // This will report the request to console and echo back the request as the response. // var http = require("http"); var program = process.argv[1]; if (4 !== process.argv.length) { console.log("Usage: %s ", program); } else { var ip = process.argv[2]; var port = process.argv[3]; var server = http.createServer(function (req, res) { console.log("CONNECT"); var input = ""; req.setEncoding(); req.on('data', function (buffer) { // console.log("DATA: %s", buffer); input = input + buffer; }); req.on('end', function () { // console.log("END"); var json_req; console.log("URL: %s", req.url); console.log("HEADERS: %s", JSON.stringify(req.headers, undefined, 2)); try { json_req = JSON.parse(input); console.log("REQ: %s", JSON.stringify(json_req, undefined, 2)); } catch (e) { console.log("BAD JSON: %s", e.message); json_req = { error : e.message } } res.statusCode = 200; res.end(JSON.stringify({ jsonrpc: "2.0", result: { request : json_req }, id: req.id })); }); req.on('close', function () { console.log("CLOSE"); }); }); server.listen(port, ip, undefined, function () { console.log("Listening at: %s:%s", ip, port); }); } // vim:sw=2:sts=2:ts=8:et