Browse Source

Fix: sort regions to suppress repetitive AvailableEgressRegions notices

Rod Hynes 10 years ago
parent
commit
8365276d7f
1 changed files with 5 additions and 2 deletions
  1. 5 2
      psiphon/notice.go

+ 5 - 2
psiphon/notice.go

@@ -26,6 +26,7 @@ import (
 	"io"
 	"io"
 	"log"
 	"log"
 	"os"
 	"os"
+	"sort"
 	"strings"
 	"strings"
 	"sync"
 	"sync"
 	"time"
 	"time"
@@ -108,10 +109,12 @@ func NoticeCandidateServers(region, protocol string, count int) {
 // NoticeAvailableEgressRegions is what regions are available for egress from.
 // NoticeAvailableEgressRegions is what regions are available for egress from.
 // Consecutive reports of the same list of regions are suppressed.
 // Consecutive reports of the same list of regions are suppressed.
 func NoticeAvailableEgressRegions(regions []string) {
 func NoticeAvailableEgressRegions(regions []string) {
-	repetitionMessage := strings.Join(regions, "")
+	sortedRegions := append([]string(nil), regions...)
+	sort.Strings(sortedRegions)
+	repetitionMessage := strings.Join(sortedRegions, "")
 	outputRepetitiveNotice(
 	outputRepetitiveNotice(
 		"AvailableEgressRegions", repetitionMessage, 0,
 		"AvailableEgressRegions", repetitionMessage, 0,
-		"AvailableEgressRegions", false, "regions", regions)
+		"AvailableEgressRegions", false, "regions", sortedRegions)
 }
 }
 
 
 // NoticeConnectingServer is details on a connection attempt
 // NoticeConnectingServer is details on a connection attempt