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, '  '));
 | |
|   });
 | |
| };
 |