Skip to content

Commit d14f3e2

Browse files
committed
Use DNS fallback for buddycloud server discovery
1 parent ddcf3bd commit d14f3e2

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/main/java/org/buddycloud/channelserver/queue/FederatedQueueManager.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public class FederatedQueueManager {
3333
public static final String IDENTITY_TYPE_CHANNELS = "channels";
3434
public static final String BUDDYCLOUD_SERVER = "buddycloud-server";
3535

36+
public static final String SRV_PREFIX = "_buddycloud-server._tcp.";
37+
3638
private int id = 1;
3739

3840
private final ChannelsEngine component;
@@ -215,7 +217,18 @@ public void processDiscoInfoResponse(JID from, String id,
215217
}
216218
}
217219

218-
private void attemptDnsDiscovery(String originatingServer) {
220+
private boolean attemptDnsDiscovery(String originatingServer) {
221+
String query = SRV_PREFIX + originatingServer;
222+
Record [] records = new Lookup(query, Type.SRV).run();
223+
if ((null == records) || (0 == records.length)) {
224+
return false;
225+
}
226+
SRVRecord record = (SRVRecord) records[0];
227+
setDiscoveredServer(originatingServer, record.getTarget());
228+
sendFederatedRequests(originatingServer);
229+
logger.info("Used DNS fallback to discover buddycloud server for "
230+
+ originatingServer + " (" + record.getTarget() ")");
231+
return true;
219232
}
220233

221234
private void sendFederatedRequests(String originatingServer)

0 commit comments

Comments
 (0)