mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-08 00:42:13 +02:00
Implement HTTP/2 downgrade by default (#549)
* Implement HTTP/2 downgrade by default to increase application stability when using curl >= 7.62
This commit is contained in:
parent
bb2986b222
commit
d939d38c4f
1
config
1
config
|
@ -18,6 +18,7 @@
|
||||||
# disable_upload_validation = "false"
|
# disable_upload_validation = "false"
|
||||||
# enable_logging = "false"
|
# enable_logging = "false"
|
||||||
# force_http_11 = "false"
|
# force_http_11 = "false"
|
||||||
|
# force_http_2 = "false"
|
||||||
# local_first = "false"
|
# local_first = "false"
|
||||||
# no_remote_delete = "false"
|
# no_remote_delete = "false"
|
||||||
# skip_symlinks = "false"
|
# skip_symlinks = "false"
|
||||||
|
|
|
@ -23,7 +23,7 @@ skip_file = "~*|.~*|*.tmp"
|
||||||
Do not use a skip_file entry of `.*` as this will prevent correct searching of local changes to process.
|
Do not use a skip_file entry of `.*` as this will prevent correct searching of local changes to process.
|
||||||
|
|
||||||
### Important - curl compatibility
|
### Important - curl compatibility
|
||||||
If your system utilises curl >= 7.62.0 you may need to use `--force-http-1.1` in order for the client to work correctly due to changes in curl to prefer HTTP/2 over HTTP/1.1 by default.
|
If your system utilises curl >= 7.62.0 curl defaults to prefer HTTP/2 over HTTP/1.1 by default. If you wish to use HTTP/2 for some operations you will need to use the `--force-http-2` config option to enable otherwise all operations will use HTTP/1.1.
|
||||||
|
|
||||||
### First run :zap:
|
### First run :zap:
|
||||||
After installing the application you must run it at least once from the terminal to authorize it.
|
After installing the application you must run it at least once from the terminal to authorize it.
|
||||||
|
@ -492,7 +492,9 @@ Options:
|
||||||
--enable-logging
|
--enable-logging
|
||||||
Enable client activity to a separate log file
|
Enable client activity to a separate log file
|
||||||
--force-http-1.1
|
--force-http-1.1
|
||||||
Force the use of HTTP 1.1 for all operations
|
Force the use of HTTP/1.1 for all operations (DEPRECIATED)
|
||||||
|
--force-http-2
|
||||||
|
Force the use of HTTP/2 for all operations where applicable
|
||||||
--get-O365-drive-id ARG
|
--get-O365-drive-id ARG
|
||||||
Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library
|
Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library
|
||||||
--help -h
|
--help -h
|
||||||
|
|
|
@ -79,10 +79,15 @@ Enable client activity to a separate log file
|
||||||
Configuration file key: \fBenable_logging\fP (default: \fBfalse\fP)
|
Configuration file key: \fBenable_logging\fP (default: \fBfalse\fP)
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-force\-http\-1.1\fP
|
\fB\-\-force\-http\-1.1\fP
|
||||||
Force the use of HTTP 1.1 for all operations
|
Force the use of HTTP 1.1 for all operations (DEPRECIATED)
|
||||||
.br
|
.br
|
||||||
Configuration file key: \fBforce_http_11\fP (default: \fBfalse\fP)
|
Configuration file key: \fBforce_http_11\fP (default: \fBfalse\fP)
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-\-force\-http\-2\fP
|
||||||
|
Force the use of HTTP/2 for all operations where applicable
|
||||||
|
.br
|
||||||
|
Configuration file key: \fBforce_http_2\fP (default: \fBfalse\fP)
|
||||||
|
.TP
|
||||||
\fB\-\-get\-O365\-drive\-id\fP ARG
|
\fB\-\-get\-O365\-drive\-id\fP ARG
|
||||||
Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library
|
Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -40,6 +40,7 @@ final class Config
|
||||||
boolValues["disable_upload_validation"] = false;
|
boolValues["disable_upload_validation"] = false;
|
||||||
boolValues["enable_logging"] = false;
|
boolValues["enable_logging"] = false;
|
||||||
boolValues["force_http_11"] = false;
|
boolValues["force_http_11"] = false;
|
||||||
|
boolValues["force_http_2"] = false;
|
||||||
boolValues["local_first"] = false;
|
boolValues["local_first"] = false;
|
||||||
boolValues["no_remote_delete"] = false;
|
boolValues["no_remote_delete"] = false;
|
||||||
boolValues["skip_symlinks"] = false;
|
boolValues["skip_symlinks"] = false;
|
||||||
|
@ -210,8 +211,11 @@ final class Config
|
||||||
"Enable client activity to a separate log file",
|
"Enable client activity to a separate log file",
|
||||||
&boolValues["enable_logging"],
|
&boolValues["enable_logging"],
|
||||||
"force-http-1.1",
|
"force-http-1.1",
|
||||||
"Force the use of HTTP 1.1 for all operations",
|
"Force the use of HTTP/1.1 for all operations (DEPRECIATED)",
|
||||||
&boolValues["force_http_11"],
|
&boolValues["force_http_11"],
|
||||||
|
"force-http-2",
|
||||||
|
"Force the use of HTTP/2 for all operations where applicable",
|
||||||
|
&boolValues["force_http_2"],
|
||||||
"get-O365-drive-id",
|
"get-O365-drive-id",
|
||||||
"Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library",
|
"Query and return the Office 365 Drive ID for a given Office 365 SharePoint Shared Library",
|
||||||
&stringValues["get_o365_drive_id"],
|
&stringValues["get_o365_drive_id"],
|
||||||
|
|
|
@ -197,6 +197,10 @@ int main(string[] args)
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cfg.getValueBool("force_http_11")) {
|
||||||
|
log.log("NOTE: The use of --force-http-1.1 is depreciated");
|
||||||
|
}
|
||||||
|
|
||||||
log.vlog("Initializing the OneDrive API ...");
|
log.vlog("Initializing the OneDrive API ...");
|
||||||
try {
|
try {
|
||||||
online = testNetwork();
|
online = testNetwork();
|
||||||
|
|
|
@ -102,8 +102,13 @@ final class OneDriveApi
|
||||||
|
|
||||||
// What version of HTTP protocol do we use?
|
// What version of HTTP protocol do we use?
|
||||||
// Curl >= 7.62.0 defaults to http2 for a significant number of operations
|
// Curl >= 7.62.0 defaults to http2 for a significant number of operations
|
||||||
if (cfg.getValueBool("force_http_11")) {
|
if (cfg.getValueBool("force_http_2")) {
|
||||||
log.vdebug("Downgrading all HTTP operations to HTTP 1.1");
|
// Use curl defaults
|
||||||
|
log.vdebug("Upgrading all HTTP operations to HTTP/2 where applicable");
|
||||||
|
} else {
|
||||||
|
// Downgrade curl by default due to silent exist issues when using http/2
|
||||||
|
// See issue #501 for details and discussion
|
||||||
|
log.vdebug("Downgrading all HTTP operations to HTTP/1.1 by default");
|
||||||
// Downgrade to HTTP 1.1 - yes version = 2 is HTTP 1.1
|
// Downgrade to HTTP 1.1 - yes version = 2 is HTTP 1.1
|
||||||
http.handle.set(CurlOption.http_version,2);
|
http.handle.set(CurlOption.http_version,2);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue