mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-23 03:18:59 +00:00
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:
parent
feffc0416f
commit
ace8451604
@ -24,7 +24,6 @@ var urlbase = 'rest';
|
|||||||
|
|
||||||
syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvider) {
|
syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvider) {
|
||||||
$httpProvider.interceptors.push(function xHeadersResponseInterceptor() {
|
$httpProvider.interceptors.push(function xHeadersResponseInterceptor() {
|
||||||
var guiVersion = null;
|
|
||||||
var deviceId = null;
|
var deviceId = null;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -38,14 +37,6 @@ syncthing.config(function ($httpProvider, $translateProvider, LocaleServiceProvi
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
responseVersion = headers['x-syncthing-version'];
|
|
||||||
|
|
||||||
if (!guiVersion) {
|
|
||||||
guiVersion = responseVersion;
|
|
||||||
} else if (guiVersion != responseVersion) {
|
|
||||||
document.location.reload(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!deviceId) {
|
if (!deviceId) {
|
||||||
deviceId = headers['x-syncthing-id'];
|
deviceId = headers['x-syncthing-id'];
|
||||||
if (deviceId) {
|
if (deviceId) {
|
||||||
|
@ -89,6 +89,12 @@ angular.module('syncthing.core')
|
|||||||
refreshFolderStats();
|
refreshFolderStats();
|
||||||
|
|
||||||
$http.get(urlbase + '/system/version').success(function (data) {
|
$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;
|
$scope.version = data;
|
||||||
}).error($scope.emitHTTPError);
|
}).error($scope.emitHTTPError);
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user