From 16e2a93396f244ae39b91e039ba846eebf3d4237 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Sat, 9 Jun 2018 11:45:32 +0200 Subject: Use a pref for supported Sync server API levels --- services/sync/modules/service.js | 49 ++++++++++++++++++++-------------------- services/sync/services-sync.js | 1 + 2 files changed, 26 insertions(+), 24 deletions(-) (limited to 'services') diff --git a/services/sync/modules/service.js b/services/sync/modules/service.js index 5b97fcca3..f8c64b0fa 100644 --- a/services/sync/modules/service.js +++ b/services/sync/modules/service.js @@ -1067,33 +1067,34 @@ Sync11Service.prototype = { // Note: returns false if we failed for a reason other than the server not yet // supporting the api. _fetchServerConfiguration() { -#if 0 // FSyncMS doesn't support this and it will break auth if left enabled! - // This is similar to _fetchInfo, but with different error handling. + if (Svc.Prefs.get("APILevel") >= 2) { + // This is similar to _fetchInfo, but with different error handling. + // Only supported by later sync implementations. - let infoURL = this.userBaseURL + "info/configuration"; - this._log.debug("Fetching server configuration", infoURL); - let configResponse; - try { - configResponse = this.resource(infoURL).get(); - } catch (ex) { - // This is probably a network or similar error. - this._log.warn("Failed to fetch info/configuration", ex); - this.errorHandler.checkServerError(ex); - return false; - } + let infoURL = this.userBaseURL + "info/configuration"; + this._log.debug("Fetching server configuration", infoURL); + let configResponse; + try { + configResponse = this.resource(infoURL).get(); + } catch (ex) { + // This is probably a network or similar error. + this._log.warn("Failed to fetch info/configuration", ex); + this.errorHandler.checkServerError(ex); + return false; + } - if (configResponse.status == 404) { - // This server doesn't support the URL yet - that's OK. - this._log.debug("info/configuration returned 404 - using default upload semantics"); - } else if (configResponse.status != 200) { - this._log.warn(`info/configuration returned ${configResponse.status} - using default configuration`); - this.errorHandler.checkServerError(configResponse); - return false; - } else { - this.serverConfiguration = configResponse.obj; + if (configResponse.status == 404) { + // This server doesn't support the URL yet - that's OK. + this._log.debug("info/configuration returned 404 - using default upload semantics"); + } else if (configResponse.status != 200) { + this._log.warn(`info/configuration returned ${configResponse.status} - using default configuration`); + this.errorHandler.checkServerError(configResponse); + return false; + } else { + this.serverConfiguration = configResponse.obj; + } + this._log.trace("info/configuration for this server", this.serverConfiguration); } - this._log.trace("info/configuration for this server", this.serverConfiguration); -#endif return true; }, diff --git a/services/sync/services-sync.js b/services/sync/services-sync.js index f4167c1ce..ebac4412b 100644 --- a/services/sync/services-sync.js +++ b/services/sync/services-sync.js @@ -12,6 +12,7 @@ pref("services.sync.syncKeyHelpURL", "https://services.mozilla.com/help/synckey" pref("services.sync.lastversion", "firstrun"); pref("services.sync.sendVersionInfo", true); +pref("services.sync.APILevel", 2); pref("services.sync.scheduler.eolInterval", 604800); // 1 week pref("services.sync.scheduler.idleInterval", 3600); // 1 hour -- cgit v1.2.3