Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correctly set the value of decode.bytes to bytes used. #179

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

ckcr4lyf
Copy link
Contributor

@ckcr4lyf ckcr4lyf commented Apr 1, 2024

What is the purpose of this pull request? (put an "X" next to item)

[ ] Documentation update
[X] Bug fix
[ ] New feature
[ ] Other, please explain:

What changes did you make? (Give an overview)
After decoding is complete, update the value of decode.bytes to decode.position to reflect the number of bytes used

Which issue (if any) does this pull request address?
#178

Is there anything you'd like reviewers to focus on?
The original spec is here: https://github.com/mafintosh/abstract-encoding/ , the README for this project says it is "compatible", I would think this includes this property.

This might be slightly related / affect #61, since this strictly assumes we try and parse a single bencoded piece of data (e.g. two consecutive integers like i123ei123e are technically separate).

This PR becomes important when trying to bencode e.g. the response for a ut_metadata request (https://www.rasterbar.com/products/libtorrent/extension_protocol.html) , since the bencoded data is immediately followed by the binary metadata piece, so returning the number of bytes consumed enables offsetting into the binary data accurately.

A workaround I am using right now is to call encodingLength on the decoded data to determine how many bytes it would've been, but obviously this is wasteful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant