|
53 | 53 |
|
54 | 54 | namespace android { |
55 | 55 |
|
56 | | -const char* CommonTimeServer::kDefaultMasterElectionAddr = "239.195.128.88"; |
57 | | -const uint16_t CommonTimeServer::kDefaultMasterElectionPort = 8887; |
58 | | -const uint64_t CommonTimeServer::kDefaultSyncGroupID = 0; |
| 56 | +const char* CommonTimeServer::kDefaultMasterElectionAddr = "255.255.255.255"; |
| 57 | +const uint16_t CommonTimeServer::kDefaultMasterElectionPort = 8886; |
| 58 | +const uint64_t CommonTimeServer::kDefaultSyncGroupID = 1; |
59 | 59 | const uint8_t CommonTimeServer::kDefaultMasterPriority = 1; |
60 | 60 | const uint32_t CommonTimeServer::kDefaultMasterAnnounceIntervalMs = 10000; |
61 | 61 | const uint32_t CommonTimeServer::kDefaultSyncRequestIntervalMs = 1000; |
@@ -752,6 +752,9 @@ bool CommonTimeServer::handleTimeoutWaitForElection() { |
752 | 752 | bool CommonTimeServer::handleWhoIsMasterRequest( |
753 | 753 | const WhoIsMasterRequestPacket* request, |
754 | 754 | const sockaddr_storage& srcAddr) { |
| 755 | + // Skip our own messages which come back via broadcast loopback. |
| 756 | + if (request->senderDeviceID == mDeviceID) |
| 757 | + return true; |
755 | 758 |
|
756 | 759 | char srcEPStr[64]; |
757 | 760 | sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr)); |
@@ -829,6 +832,10 @@ bool CommonTimeServer::handleWhoIsMasterRequest( |
829 | 832 | bool CommonTimeServer::handleWhoIsMasterResponse( |
830 | 833 | const WhoIsMasterResponsePacket* response, |
831 | 834 | const sockaddr_storage& srcAddr) { |
| 835 | + // Skip our own messages which come back via broadcast loopback. |
| 836 | + if (response->deviceID == mDeviceID) |
| 837 | + return true; |
| 838 | + |
832 | 839 | char srcEPStr[64]; |
833 | 840 | sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr)); |
834 | 841 | mElectionLog.log("RXed WhoIs master response while in state %s. " |
@@ -996,6 +1003,10 @@ bool CommonTimeServer::handleMasterAnnouncement( |
996 | 1003 | uint8_t newDevicePrio = packet->devicePriority; |
997 | 1004 | uint64_t newTimelineID = packet->timelineID; |
998 | 1005 |
|
| 1006 | + // Skip our own messages which come back via broadcast loopback. |
| 1007 | + if (newDeviceID == mDeviceID) |
| 1008 | + return true; |
| 1009 | + |
999 | 1010 | char srcEPStr[64]; |
1000 | 1011 | sockaddrToString(srcAddr, true, srcEPStr, sizeof(srcEPStr)); |
1001 | 1012 | mElectionLog.log("RXed master announcement while in state %s. " |
|
0 commit comments