Просмотр исходного кода

Add tunneled field to remote_server_entry stats log

Rod Hynes 6 лет назад
Родитель
Сommit
2a8baa49c9
5 измененных файлов с 17 добавлено и 9 удалено
  1. 7 5
      psiphon/net.go
  2. 2 2
      psiphon/remoteServerList.go
  3. 1 0
      psiphon/server/api.go
  4. 6 1
      psiphon/serverApi.go
  5. 1 1
      psiphon/upgradeDownload.go

+ 7 - 5
psiphon/net.go

@@ -385,17 +385,19 @@ func MakeDownloadHTTPClient(
 	config *Config,
 	tunnel *Tunnel,
 	untunneledDialConfig *DialConfig,
-	skipVerify bool) (*http.Client, error) {
+	skipVerify bool) (*http.Client, bool, error) {
 
 	var httpClient *http.Client
 	var err error
 
-	if tunnel != nil {
+	tunneled := tunnel != nil
+
+	if tunneled {
 
 		httpClient, err = MakeTunneledHTTPClient(
 			config, tunnel, skipVerify)
 		if err != nil {
-			return nil, errors.Trace(err)
+			return nil, false, errors.Trace(err)
 		}
 
 	} else {
@@ -403,11 +405,11 @@ func MakeDownloadHTTPClient(
 		httpClient, err = MakeUntunneledHTTPClient(
 			ctx, config, untunneledDialConfig, nil, skipVerify)
 		if err != nil {
-			return nil, errors.Trace(err)
+			return nil, false, errors.Trace(err)
 		}
 	}
 
-	return httpClient, nil
+	return httpClient, tunneled, nil
 }
 
 // ResumeDownload is a reusable helper that downloads requestUrl via the

+ 2 - 2
psiphon/remoteServerList.go

@@ -393,7 +393,7 @@ func downloadRemoteServerListFile(
 	// MakeDownloadHttpClient will select either a tunneled
 	// or untunneled configuration.
 
-	httpClient, err := MakeDownloadHTTPClient(
+	httpClient, tunneled, err := MakeDownloadHTTPClient(
 		ctx,
 		config,
 		tunnel,
@@ -423,7 +423,7 @@ func downloadRemoteServerListFile(
 
 	NoticeRemoteServerListResourceDownloaded(sourceURL)
 
-	_ = RecordRemoteServerListStat(config, sourceURL, responseETag)
+	_ = RecordRemoteServerListStat(config, tunneled, sourceURL, responseETag)
 
 	return responseETag, nil
 }

+ 1 - 0
psiphon/server/api.go

@@ -421,6 +421,7 @@ var remoteServerListStatParams = []requestParamSpec{
 	{"client_platform", isAnyString, requestParamOptional},
 	{"client_build_rev", isAnyString, requestParamOptional},
 	{"client_download_timestamp", isISO8601Date, 0},
+	{"tunneled", isBooleanFlag, requestParamOptional | requestParamLogFlagAsBool},
 	{"url", isAnyString, 0},
 	{"etag", isAnyString, 0},
 }

+ 6 - 1
psiphon/serverApi.go

@@ -602,7 +602,7 @@ func confirmStatusRequestPayload(payloadInfo *statusRequestPayloadInfo) {
 // processes a status request but the client fails to receive
 // the response.
 func RecordRemoteServerListStat(
-	config *Config, url, etag string) error {
+	config *Config, tunneled bool, url, etag string) error {
 
 	if !config.GetClientParameters().Get().WeightedCoinFlip(
 		parameters.RecordRemoteServerListPersistentStatsProbability) {
@@ -619,6 +619,11 @@ func RecordRemoteServerListStat(
 	params["client_build_rev"] = buildinfo.GetBuildInfo().BuildRev
 
 	params["client_download_timestamp"] = common.TruncateTimestampToHour(common.GetCurrentTimestamp())
+	tunneledStr := "0"
+	if tunneled {
+		tunneledStr = "1"
+	}
+	params["tunneled"] = tunneledStr
 	params["url"] = url
 	params["etag"] = etag
 

+ 1 - 1
psiphon/upgradeDownload.go

@@ -86,7 +86,7 @@ func DownloadUpgrade(
 
 	downloadURL, _, skipVerify := urls.Select(attempt)
 
-	httpClient, err := MakeDownloadHTTPClient(
+	httpClient, _, err := MakeDownloadHTTPClient(
 		ctx,
 		config,
 		tunnel,