bug: Global speed limit should be absolute
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 586
- Forks
- 43
- Avg merge
- 5h 26m
- Merged PRs (30d)
- 131
Description
### Preflight checklist
- [x] I searched [existing issues](https://github.com/ja7ad/hydra/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I reproduced this on the latest HYDRA release (or the current `main`).
- [x] This is not a security vulnerability.
### Component
Desktop GUI (Hydra Download Manager)
### HYDRA version
hydra 0.5.0
### Operating system
Windows (x86_64)
### OS version / distribution
Windows 10 21H2
### How did you install HYDRA?
Prebuilt archive from GitHub Releases
### What happened?
_Global_ speed limit should be absolute regardless of number of downloads running. As of now the actual global speed limit is NOT equal the set value, but the set value * number of running downloads.
### What did you expect to happen?
Ex: when set at 128 KB/s I expected hydra to take 128 KB/s bandwidth in total (global) and not per download, which defeats the purpose otherwise. Download speed limit per download can already be set through individual download window.
Here as you can see the global speed limit is no longer 128 KB/s but 128 KB/s * 2 (number of running) = 256 KB/s.
### Steps to reproduce
1. Set the global download speed limit (main UI).
2. Start more than 1 download concurrently.
### Logs / terminal output
```text
```
### Transfer details (for download / engine issues)
- Protocol (HTTP, HTTPS, FTP):
- Server supports range requests (`Accept-Ranges: bytes`):
- Number of connections (`-n`) and mirror sources:
- Proxy in the path (HTTP CONNECT, SOCKS4/4a/5), if any:
- File size and destination filesystem (e.g. 4 GiB onto exFAT):
### Did this work in an earlier version?
_No response_
### Contribution
- [ ] I'm willing to open a pull request for this bug.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the desktop GUI's main UI by setting a global limit, then run more than one download concurrently to reproduce the multiplied bandwidth. Trace how the main UI limit is applied across running downloads, and consider the individual download window's per-download limit as the existing separate behavior. Done means a 128 KB/s global setting remains 128 KB/s total with multiple downloads.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100