Don't trust response header (fixes #2186)

Either Angular or the browser sometimes returns cached repsonse header,
causing a flap between requests that return the new version and requests
that return the old one. Here, instead, we trust the actual data
returned by the uncached /rest/system/version call.
This commit is contained in:
Jakob Borg 2015-08-25 15:38:28 +02:00
parent a27bc4ebea
commit 2bed62dd9e
3 changed files with 10 additions and 13 deletions

View File

@ -24,7 +24,6 @@ var urlbase = 'rest';
syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvider) {
$httpProvider.interceptors.push(function xHeadersResponseInterceptor() {
var guiVersion = null;
var deviceId = null;
return {
@ -38,14 +37,6 @@ syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvi
return response;
}
responseVersion = headers['x-syncthing-version'];
if (!guiVersion) {
guiVersion = responseVersion;
} else if (guiVersion != responseVersion) {
document.location.reload(true);
}
if (!deviceId) {
deviceId = headers['x-syncthing-id'];
if (deviceId) {

View File

@ -89,6 +89,12 @@ angular.module('syncthing.core')
refreshFolderStats();
$http.get(urlbase + '/system/version').success(function (data) {
if ($scope.version.version && $scope.version.version != data.version) {
// We already have a version response, but it differs from
// the new one. Reload the full GUI in case it's changed.
document.location.reload(true);
}
$scope.version = data;
}).error($scope.emitHTTPError);

File diff suppressed because one or more lines are too long