forked from coolaj86/walnut.js
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
#!/usr/bin/env node
 | 
						|
'use strict';
 | 
						|
 | 
						|
var PromiseA = require('bluebird').Promise
 | 
						|
  , https = require('https')
 | 
						|
  , fs = require('fs')
 | 
						|
  , path = require('path')
 | 
						|
  ;
 | 
						|
 | 
						|
module.exports.update = function (opts) {
 | 
						|
  return new PromiseA(function (resolve, reject) {
 | 
						|
    var options
 | 
						|
      , hostname = opts.updater || 'redirect-www.org'
 | 
						|
      , port = opts.port || 65443
 | 
						|
      ;
 | 
						|
 | 
						|
    options = {
 | 
						|
      host: hostname
 | 
						|
    , port: port
 | 
						|
    , method: 'POST'
 | 
						|
    , headers: {
 | 
						|
        'Content-Type': 'application/json'
 | 
						|
      }
 | 
						|
    , path: '/api/ddns'
 | 
						|
    , auth: opts.auth || 'admin:secret'
 | 
						|
    , ca: [ fs.readFileSync(path.join(__dirname, '..', 'certs', 'ca', 'my-root-ca.crt.pem')) ]
 | 
						|
    };
 | 
						|
    options.agent = new https.Agent(options);
 | 
						|
 | 
						|
    https.request(options, function(res) {
 | 
						|
      var textData = '';
 | 
						|
 | 
						|
      res.on('error', function (err) {
 | 
						|
        reject(err);
 | 
						|
      });
 | 
						|
      res.on('data', function (chunk) {
 | 
						|
        textData += chunk.toString();
 | 
						|
        // console.log(chunk.toString());
 | 
						|
      });
 | 
						|
      res.on('end', function () {
 | 
						|
        resolve(textData);
 | 
						|
      });
 | 
						|
    }).end(JSON.stringify(opts.ddns, null, '  '));
 | 
						|
  });
 | 
						|
};
 |