[tor-bugs] #29133 [Core Tor/Tor]: Refactor dirserv_read_measured_bandwidths
Tor Bug Tracker & Wiki
blackhole at torproject.org
Wed Feb 13 10:35:43 UTC 2019
#29133: Refactor dirserv_read_measured_bandwidths
-------------------------------------------------+-------------------------
Reporter: teor | Owner: (none)
Type: defect | Status: new
Priority: Medium | Milestone: Tor:
| unspecified
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: technical-debt tor-crypto tor- | Actual Points:
dirauth tor-bwauth 041-proposed |
Parent ID: #26698 | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by juga):
i'm copying them here the notes about refactoring, since the PR comments
are long.
Commented in
https://github.com/torproject/tor/pull/497#discussion_r249245814:
{{{
This function keeps on getting bigger. If we just add code, it will get
harder and harder to change.
Let's think about splitting up what this function has to do into separate
functions:
read a line from the file
add the line to the hash
process the line
check the timestamp
add it to the headers
stop accepting timestamps
check for a k=v header, the terminator, or a relay line
add headers to the headers
at the terminator or first relay line, stop accepting k=v
headers
add relay lines to the relays
}}}
Commented in
https://github.com/torproject/tor/pull/497#discussion_r249244433:
Remove line
{{{
/* Initialise line, so that we can't possibly run off the end. */
}}}
Commented in
https://github.com/torproject/tor/pull/497#discussion_r249244629:
{{{
3. The comment about fgets is outdated: let's update it to say getdelim.
4. the timestamp check is outdated, if it succeeds, getdelim always NUL-
terminates its output
We can delete the strlen() check, and move the newline check.
}}}
Commented in
https://github.com/torproject/tor/pull/497#discussion_r249244743
{{{
If we delete case 3 above, we need to move the newline check here:
- line[strlen(line)-1] = '\0';
+ if (line[strlen(line)-1] == '\n')
+ line[strlen(line)-1] = '\0';
}}}
Commented in
https://github.com/torproject/tor/pull/497#discussion_r249244842:
{{{
This EOF check is redundant, getline tells you when the input is done by
returning <= 0.
while (!feof(fp)) {
}}}
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29133#comment:3>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list