mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 02:35:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
#!/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 <ip> <port>", 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
 |