<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/tor-netdoc/src/parse/tokenize.rs, branch arti-v0.0.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2021-05-18T17:45:39Z</updated>
<entry>
<title>Add the "unreachable_pub" lint.</title>
<updated>2021-05-18T17:45:39Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-05-18T17:45:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=411e1b35e054c8c9b373f6428c7c808ad8039ca0'/>
<id>urn:sha1:411e1b35e054c8c9b373f6428c7c808ad8039ca0</id>
<content type='text'>
This is a somewhat obnoxious change in its scope and requirements,
but it makes it easier to understand what the real public and
private parts of our APIs are.
</content>
</entry>
<entry>
<title>Resolve a few nightly-only clippy issues</title>
<updated>2020-12-07T21:14:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-12-07T21:14:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a1f1dac4ebb4758d0989f902fa35abd7660eed2b'/>
<id>urn:sha1:a1f1dac4ebb4758d0989f902fa35abd7660eed2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Run cargo fix --edition-idioms</title>
<updated>2020-12-02T20:14:29Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-12-02T20:14:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=01de0cafc59f02374b6518c34fce8b5a959133b3'/>
<id>urn:sha1:01de0cafc59f02374b6518c34fce8b5a959133b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>netdoc: split off string utils</title>
<updated>2020-11-14T15:32:17Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-31T17:31:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8569af82dd7b6684edb868d0cd17f640b3df0a12'/>
<id>urn:sha1:8569af82dd7b6684edb868d0cd17f640b3df0a12</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Calculate digest correctly when microdesc ends with base64 object.</title>
<updated>2020-10-19T12:42:35Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-19T12:42:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3798891b36158fc551d58aa70b416c10f0b64b96'/>
<id>urn:sha1:3798891b36158fc551d58aa70b416c10f0b64b96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Netdoc: validate objects even on unrecognized items.</title>
<updated>2020-10-19T12:09:20Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-19T12:09:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=df406f53193c54dd46b093f05bb34bcf1e198904'/>
<id>urn:sha1:df406f53193c54dd46b093f05bb34bcf1e198904</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Mark must-resolve XXXX issues with "XXXXM3".</title>
<updated>2020-10-18T21:38:59Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-18T21:38:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=552313460717b7a992f520e4ddc9ec85b92a13bc'/>
<id>urn:sha1:552313460717b7a992f520e4ddc9ec85b92a13bc</id>
<content type='text'>
"M3" is for "milestone 3" -- my target to fix the technical debt
that I think will be bad if we ship even a pre-alpha with it.

These aren't necessarily _all_ must-resolve, but they're all
must-look-at.

Closes #15
</content>
</entry>
<entry>
<title>Document most private items in tor-netdoc.</title>
<updated>2020-10-09T22:02:02Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-09T22:02:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f8fde02c0bf01913a41849c2d3f7ae7e97d51bac'/>
<id>urn:sha1:f8fde02c0bf01913a41849c2d3f7ae7e97d51bac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Tokenize: report accurate positions for more parsing errors</title>
<updated>2020-10-02T19:25:28Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-02T19:25:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=580c1ac567a2eee28c506d831515f3e861a275b2'/>
<id>urn:sha1:580c1ac567a2eee28c506d831515f3e861a275b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Netdoc: use a more bulletproof pattern to prevent infinite loops</title>
<updated>2020-10-02T14:15:14Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2020-10-02T14:15:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=38685d3cc18ebf95e11ba9445725b86e6acc3e84'/>
<id>urn:sha1:38685d3cc18ebf95e11ba9445725b86e6acc3e84</id>
<content type='text'>
Previously our "read a bunch of this kind of document" functions had
a common problem, where they could get into an infinite loop if the
underlying "read this kind of document" function failed without
consuming any tokens.

I _think_ that this error case was unreachable (or else fuzzing
would have found it, right?), but proving that it was unreachable
was a bit fiddly, and I couldn't follow my own arguments about it.

Instead, we just store the position of the reader before we start
reading, and make sure that it has consumed at least some data.  If
it hasn't, then we consume and drop a token before advancing to the
next document.
</content>
</entry>
</feed>
