HelloZeroNet / HelloZeroNet/ZeroNet
`optionalFileInfo` returns incorrect `is_downloaded` value
- Dominant language
- JavaScript
- Stars
- 18.8k
- Forks
- 2.3k
- PR merge metrics
- No merged PRs in 30d
Description
* ZeroNet version: 0.7.2 (rev4555)
### Step 2: Describe the problem:
https://zeronet.io/docs/site_development/zeroframe_api_reference/#optionalfileinfo
According to the documentation this field has the following semantics:
```
is_downloaded | Whether this file has been completely downloaded
```
However its value is being returned as "1" for files that have never been downloaded.
#### Steps to reproduce:
The issue appears to be a collision in the `hashfield`.
https://github.com/HelloZeroNet/ZeroNet/blob/9d1bed11af8cf92951dd0f335e95101d8b1fa6a4/plugins/OptionalManager/ContentDbPlugin.py#L162-L164
So to reproduce you just need to receive new optional file with a `hash_id` that will collide with another hash in the site's hashfield.
#### Expected Results:
`is_downloaded` should return "1" only if the file has _actually_ been downloaded and "0" otherwise.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with plugins/OptionalManager/ContentDbPlugin.py at the linked lines 162-164 and review how the site's hashfield determines optional-file state. Reproduce the hash_id collision described in the issue, then verify that optionalFileInfo reports is_downloaded as "1" only for a file that was actually downloaded and "0" otherwise.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100