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

Add last_connected field to failed_tunnel

Rod Hynes 7 лет назад
Родитель
Сommit
96b2b1cef1
2 измененных файлов с 19 добавлено и 4 удалено
  1. 1 0
      psiphon/server/api.go
  2. 18 4
      psiphon/serverApi.go

+ 1 - 0
psiphon/server/api.go

@@ -406,6 +406,7 @@ var remoteServerListStatParams = []requestParamSpec{
 var failedTunnelStatParams = append(
 	[]requestParamSpec{
 		{"session_id", isHexDigits, 0},
+		{"last_connected", isLastConnected, 0},
 		{"client_failed_timestamp", isISO8601Date, 0},
 		{"tunnel_error", isAnyString, 0}},
 	baseRequestParams...)

+ 18 - 4
psiphon/serverApi.go

@@ -303,13 +303,10 @@ func (serverContext *ServerContext) DoConnectedRequest() error {
 
 	params := serverContext.getBaseAPIParameters()
 
-	lastConnected, err := GetKeyValue(datastoreLastConnectedKey)
+	lastConnected, err := getLastConnected()
 	if err != nil {
 		return common.ContextError(err)
 	}
-	if lastConnected == "" {
-		lastConnected = "None"
-	}
 
 	params["last_connected"] = lastConnected
 
@@ -357,6 +354,17 @@ func (serverContext *ServerContext) DoConnectedRequest() error {
 	return nil
 }
 
+func getLastConnected() (string, error) {
+	lastConnected, err := GetKeyValue(datastoreLastConnectedKey)
+	if err != nil {
+		return "", common.ContextError(err)
+	}
+	if lastConnected == "" {
+		lastConnected = "None"
+	}
+	return lastConnected, nil
+}
+
 // StatsRegexps gets the Regexps used for the statistics for this tunnel.
 func (serverContext *ServerContext) StatsRegexps() *transferstats.Regexps {
 	return serverContext.statsRegexps
@@ -595,7 +603,13 @@ func RecordFailedTunnelStat(
 		return nil
 	}
 
+	lastConnected, err := getLastConnected()
+	if err != nil {
+		return common.ContextError(err)
+	}
+
 	params := getBaseAPIParameters(config, dialParams)
+	params["last_connected"] = lastConnected
 	params["client_failed_timestamp"] = common.TruncateTimestampToHour(common.GetCurrentTimestamp())
 	params["tunnel_error"] = tunnelErr.Error()