summaryrefslogtreecommitdiffstats
path: root/services/sync/modules/service.js
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-06-09 11:45:32 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-06-09 11:45:32 +0200
commit16e2a93396f244ae39b91e039ba846eebf3d4237 (patch)
tree7c57431adeb4346731eb17f565d801d3e6c35642 /services/sync/modules/service.js
parentca8d6d0105ffaa618fab2d83feba2e35c9a607c5 (diff)
downloadUXP-16e2a93396f244ae39b91e039ba846eebf3d4237.tar
UXP-16e2a93396f244ae39b91e039ba846eebf3d4237.tar.gz
UXP-16e2a93396f244ae39b91e039ba846eebf3d4237.tar.lz
UXP-16e2a93396f244ae39b91e039ba846eebf3d4237.tar.xz
UXP-16e2a93396f244ae39b91e039ba846eebf3d4237.zip
Use a pref for supported Sync server API levels
Diffstat (limited to 'services/sync/modules/service.js')
-rw-r--r--services/sync/modules/service.js49
1 files changed, 25 insertions, 24 deletions
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;
},