Connect to a server's SRV record if they specify one

This commit is contained in:
Matt Stith 2013-04-13 17:23:31 -03:00
parent 8760ff55bc
commit d0664f37b4

View file

@ -2,6 +2,7 @@ var net = require('net')
, EventEmitter = require('events').EventEmitter
, util = require('util')
, protocol = require('./protocol')
, dns = require('dns')
, createPacketBuffer = protocol.createPacketBuffer
, parsePacket = protocol.parsePacket
, debug = protocol.debug
@ -69,7 +70,13 @@ Client.prototype.setSocket = function(socket) {
Client.prototype.connect = function(port, host) {
var self = this;
self.setSocket(net.connect(port, host));
dns.resolveSrv("_minecraft._tcp." + host, function(err, addresses) {
if (addresses) {
self.setSocket(net.connect(addresses[0].port, addresses[0].name));
} else {
self.setSocket(net.connect(port, host));
}
});
};
Client.prototype.end = function(reason) {