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