1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-24 08:12:24 +02:00

Desktop, Cli: Fixes #8788: Work around WebDAV sync issues over ipv6 (#9286)

This commit is contained in:
Henry Heino 2023-11-14 10:47:52 -08:00 committed by GitHub
parent 06ea12adb3
commit 2c0181d097
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View File

@ -26,6 +26,7 @@ import time from './time';
import BaseSyncTarget from './BaseSyncTarget';
const reduxSharedMiddleware = require('./components/shared/reduxSharedMiddleware');
const os = require('os');
import dns = require('dns');
import fs = require('fs-extra');
const EventEmitter = require('events');
const syswidecas = require('./vendor/syswide-cas');
@ -171,6 +172,13 @@ export default class BaseApplication {
this.showStackTraces_ = true;
}
// Work around issues with ipv6 resolution -- default to ipv4first.
// (possibly incorrect URL serialization see https://github.com/mswjs/msw/issues/1388#issuecomment-1241180921).
// See also https://github.com/node-fetch/node-fetch/issues/1624#issuecomment-1407717012
if (flags.matched.allowOverridingDnsResultOrder) {
dns.setDefaultResultOrder('ipv4first');
}
return {
matched: flags.matched,
argv: flags.argv,

View File

@ -11,6 +11,7 @@ export interface MatchedStartFlags {
isSafeMode?: boolean;
showStackTraces?: boolean;
logLevel?: LogLevel;
allowOverridingDnsResultOrder?: boolean;
devPlugins?: string[];
}
@ -63,6 +64,14 @@ const processStartFlags = async (argv: string[], setDefaults = true) => {
continue;
}
if (arg.startsWith('--dns-result-order=')) {
matched.allowOverridingDnsResultOrder = false;
// Handled by Electron/NodeJS (and indicates we shouldn't override this ourselves).
argv.splice(0, 1);
continue;
}
if (arg === '--debug') {
// Currently only handled by ElectronAppWrapper (isDebugMode property)
argv.splice(0, 1);
@ -168,6 +177,7 @@ const processStartFlags = async (argv: string[], setDefaults = true) => {
if (!matched.logLevel) matched.logLevel = Logger.LEVEL_INFO;
if (!matched.env) matched.env = 'prod';
if (!matched.devPlugins) matched.devPlugins = [];
matched.allowOverridingDnsResultOrder ??= true;
}
return {