Support SRV record unfurling for PC networks
This commit is contained in:
parent
41a6a25854
commit
0034d7fc03
@ -48,7 +48,10 @@ function pingMinecraftPE(host, port, timeout, callback) {
|
||||
|
||||
exports.ping = function(host, port, type, timeout, callback, version) {
|
||||
if (type === 'PC') {
|
||||
pingMinecraftPC(host, port || 25565, timeout, callback, version);
|
||||
util.unfurlSRV(host, port, function(host, port){
|
||||
console.log('Pinging '+host+":"+port+"...")
|
||||
pingMinecraftPC(host, port || 25565, timeout, callback, version);
|
||||
})
|
||||
} else if (type === 'PE') {
|
||||
pingMinecraftPE(host, port || 19132, timeout, callback);
|
||||
} else {
|
||||
|
18
lib/util.js
18
lib/util.js
@ -1,4 +1,5 @@
|
||||
var logger = require('./logger');
|
||||
var dns = require('dns');
|
||||
|
||||
var config = require('../config.json');
|
||||
var servers = require('../servers.json');
|
||||
@ -149,3 +150,20 @@ exports.getBootTime = function() {
|
||||
|
||||
return bootTime;
|
||||
};
|
||||
|
||||
/**
|
||||
* Attempts to resolve Minecraft PC SRV records from DNS, otherwise falling back to the old hostname.
|
||||
*
|
||||
* @param hostname hostname to check
|
||||
* @param port port to pass to callback if required
|
||||
* @param callback function with a hostname and port parameter
|
||||
*/
|
||||
exports.unfurlSRV = function(hostname, port, callback) {
|
||||
dns.resolveSrv("_minecraft._tcp."+hostname, function (err, records) {
|
||||
if(!records||records.length<=0) {
|
||||
callback(hostname, port);
|
||||
return;
|
||||
}
|
||||
callback(records[0].name, records[0].port);
|
||||
})
|
||||
};
|
Loading…
Reference in New Issue
Block a user