aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-06-22 00:03:07 +0200
committerGitHub <noreply@github.com>2023-06-22 00:03:07 +0200
commit82cae550c87466b1163b216bdb9c71cb71dd8f67 (patch)
treeaf0571ec1fd59e11c780494d9ef64f189442d7e5 /lua
parentfeat(fetch): include mason.nvim version in User-Agent (#1362) (diff)
downloadmason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar.gz
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar.bz2
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar.lz
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar.xz
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.tar.zst
mason-82cae550c87466b1163b216bdb9c71cb71dd8f67.zip
feat(fetch): add explicit default timeout to requests (#1364)
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/fetch.lua10
1 files changed, 8 insertions, 2 deletions
diff --git a/lua/mason-core/fetch.lua b/lua/mason-core/fetch.lua
index 545c8440..c8a8591c 100644
--- a/lua/mason-core/fetch.lua
+++ b/lua/mason-core/fetch.lua
@@ -10,6 +10,8 @@ local version = require "mason.version"
local USER_AGENT = ("mason.nvim %s (+https://github.com/williamboman/mason.nvim)"):format(version.VERSION)
+local TIMEOUT_SECONDS = 30
+
---@alias FetchMethod
---| '"GET"'
---| '"POST"'
@@ -47,8 +49,9 @@ local function fetch(url, opts)
if opts.out_file then
platform_specific = function()
return powershell.command(
- ([[iwr %s -UseBasicParsing -Method %q -Uri %q %s -OutFile %q;]]):format(
+ ([[iwr %s -TimeoutSec %s -UseBasicParsing -Method %q -Uri %q %s -OutFile %q;]]):format(
headers,
+ TIMEOUT_SECONDS,
opts.method,
url,
opts.data and ("-Body %s"):format(opts.data) or "",
@@ -59,8 +62,9 @@ local function fetch(url, opts)
else
platform_specific = function()
return powershell.command(
- ([[Write-Output (iwr %s -Method %q -UseBasicParsing %s -Uri %q).Content;]]):format(
+ ([[Write-Output (iwr %s -TimeoutSec %s -Method %q -UseBasicParsing %s -Uri %q).Content;]]):format(
headers,
+ TIMEOUT_SECONDS,
opts.method,
opts.data and ("-Body %s"):format(opts.data) or "",
url
@@ -80,6 +84,7 @@ local function fetch(url, opts)
"/dev/null",
"-O",
opts.out_file or "-",
+ ("--timeout=%s"):format(TIMEOUT_SECONDS),
("--method=%s"):format(opts.method),
opts.data and {
("--body-data=%s"):format(opts.data) or vim.NIL,
@@ -107,6 +112,7 @@ local function fetch(url, opts)
},
opts.data and { "-d", "@-" } or vim.NIL,
opts.out_file and { "-o", opts.out_file } or vim.NIL,
+ { "--connect-timeout", TIMEOUT_SECONDS },
url,
on_spawn = a.scope(function(_, stdio)
local stdin = stdio[1]