Continua la discussione da Recent updates seemed to stop rake task themes:update to use a proxy server:
Non riuscivo a recuperare o aggiornare alcun componente tema a causa di quell’errore di timeout, alla fine ho capito. Rimuovendo le seguenti righe che iniziano con - nel file \u003cDiscourse\u003e/lib/theme_store/git_importer.rb:
def clone_http!
uri = redirected_uri
raise_import_error! if %w[http https].exclude?(@uri.scheme)
- addresses = FinalDestination::SSRFDetector.lookup_and_filter_ips(uri.host)
- raise_import_error! if addresses.empty?
env = { "GIT_TERMINAL_PROMPT" => "0" }
args =
clone_args(
uri.to_s,
- "http.followRedirects" => "false",
- "http.curloptResolve" => "#{uri.host}:#{uri.port}:#{addresses.join(\",\")}",
)
begin
Discourse::Utils.execute_command(env, *args, timeout: COMMAND_TIMEOUT_SECONDS)
rescue RuntimeError
raise_import_error!
end
end
Questo codice elabora una pre-soluzione DNS quindi forza git a utilizzare gli indirizzi IP che si ottengono dalla pre-soluzione, non so perché fallisca sempre sul mio server, quindi ho rimosso la logica.
In effetti, ho una domanda sulla sua esistenza, git stesso esegue una soluzione DNS, perché abbiamo bisogno di questa logica? Questo non è distinto.