The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2020-06-27T13:55:12Zhttps://gitlab.torproject.org/tpo/core/tor/-/issues/24001node_get_ed25519_id() should check if the microdesc ed25519 id is all zero2020-06-27T13:55:12Zteornode_get_ed25519_id() should check if the microdesc ed25519 id is all zeroCurrently we only do this for the ri ed25519 id.
If that check is already done when we parse microdescs, we should add a comment.Currently we only do this for the ri ed25519 id.
If that check is already done when we parse microdescs, we should add a comment.Tor: 0.3.3.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23966Refactor node_has_curve25519_onion_key() to use node_get_curve25519_onion_key()2021-09-16T14:31:39ZteorRefactor node_has_curve25519_onion_key() to use node_get_curve25519_onion_key()In legacy/trac#23577, we will create node_get_curve25519_onion_key().
We should use it to implement node_has_curve25519_onion_key(), so they give consistent results.In legacy/trac#23577, we will create node_get_curve25519_onion_key().
We should use it to implement node_has_curve25519_onion_key(), so they give consistent results.Tor: 0.3.3.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23886Write FFI bindings and function pointers for ed25519-dalek2021-06-18T18:05:27ZIsis LovecruftWrite FFI bindings and function pointers for ed25519-dalekAs part of our efforts to get a few modules in Tor written in Rust for 0.3.3, an exceptionally easy candidate is our ed25519 code, given that the current code is already highly modularised, taking function pointers to implement an interf...As part of our efforts to get a few modules in Tor written in Rust for 0.3.3, an exceptionally easy candidate is our ed25519 code, given that the current code is already highly modularised, taking function pointers to implement an interface. I wrote [ed25519-dalek](https://github.com/isislovecruft/ed25519-dalek), and I recently revised the API to be a very close match to what tor expects, so I believe this task should be extremely easy, and a prime candidate for someone newer to Rust who wishes to learn about writing FFI. (I'm happy to pair program on this too! Also on anything else, but this too.)https://gitlab.torproject.org/tpo/core/tor/-/issues/23856Reduce relay bandwidth stats interval to 24 hours2021-03-15T23:28:37ZteorReduce relay bandwidth stats interval to 24 hoursWe want to do this to reduce the efficiency of guard discovery attacks.We want to do this to reduce the efficiency of guard discovery attacks.Tor: 0.2.5.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23774sched: KIST doesn't free the socket info hashtable on free_all()2020-06-27T13:55:22ZDavid Gouletdgoulet@torproject.orgsched: KIST doesn't free the socket info hashtable on free_all()We just need a `tor_free()` on the ht.We just need a `tor_free()` on the ht.Tor: 0.3.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23760Use node_get_curve25519_onion_key() in extend_info_from_node()2021-09-16T14:31:39ZteorUse node_get_curve25519_onion_key() in extend_info_from_node()In legacy/trac#23577, we are going to implement a node_get_curve25519_onion_key() function. We can use this in extend_info_from_node() if we want to.In legacy/trac#23577, we are going to implement a node_get_curve25519_onion_key() function. We can use this in extend_info_from_node() if we want to.Tor: 0.3.3.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23678Tor kinda _is_ an http proxy now...2021-07-22T16:22:26ZNick MathewsonTor kinda _is_ an http proxy now...When we added HTTPTunnelPort, the answer that we give when you try to use your SOCKSPort as an HTTP proxy became wrong. We should fix it and explain that, Tor sorta _is_ an HTTP proxy... but this port isn't.When we added HTTPTunnelPort, the answer that we give when you try to use your SOCKSPort as an HTTP proxy became wrong. We should fix it and explain that, Tor sorta _is_ an HTTP proxy... but this port isn't.Tor: 0.3.2.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23650Tor source code has many typos2020-06-27T13:55:29ZcypherpunksTor source code has many typos```
$ go get -u github.com/client9/misspell/cmd/misspell
$ misspell .
.gitlab-ci.yml:23:14: "suspectible" is a misspelling of "susceptible"
changes/bug23580:2:49: "mentionning" is a misspelling of "mentioning"
contrib/operator-tools/linu...```
$ go get -u github.com/client9/misspell/cmd/misspell
$ misspell .
.gitlab-ci.yml:23:14: "suspectible" is a misspelling of "susceptible"
changes/bug23580:2:49: "mentionning" is a misspelling of "mentioning"
contrib/operator-tools/linux-tor-prio.sh:90:59: "trafic" is a misspelling of "traffic"
configure.ac:535:10: "targetting" is a misspelling of "targeting"
doc/HACKING/GettingStartedRust.md:119:17: "targetting" is a misspelling of "targeting"
doc/HACKING/Tracing.md:9:17: "seperated" is a misspelling of "separated"
m4/pkg.m4:56:20: "occurence" is a misspelling of "occurrence"
scripts/maint/redox.py:104:35: "alledgedly" is a misspelling of "allegedly"
src/common/compat_openssl.h:15:10: "compatability" is a misspelling of "compatibility"
src/common/address.c:1126:23: "comapre" is a misspelling of "compare"
src/common/compat.c:2447:3: "successfull" is a misspelling of "successful"
src/common/crypto_ed25519.c:228:28: "occured" is a misspelling of "occurred"
src/common/crypto_ed25519.c:262:18: "successfuly" is a misspelling of "successfully"
src/common/crypto_ed25519.c:526:30: "sucess" is a misspelling of "success"
src/common/crypto_ed25519.c:716:13: "cannonical" is a misspelling of "canonical"
src/common/crypto_ed25519.c:756:50: "neccessary" is a misspelling of "necessary"
scripts/maint/updateFallbackDirs.py:214:52: "multipled" is a misspelling of "multiplied"
scripts/maint/updateFallbackDirs.py:550:34: "bandwdith" is a misspelling of "bandwidth"
scripts/maint/updateFallbackDirs.py:1553:35: "bandwdith" is a misspelling of "bandwidth"
src/common/crypto.c:1527:3: "sucess" is a misspelling of "success"
src/common/crypto.c:2835:35: "foward" is a misspelling of "forward"
src/common/crypto.c:2848:5: "comparision" is a misspelling of "comparison"
src/common/timers.c:66:39: "inefficent" is a misspelling of "inefficient"
src/common/tortls.c:1941:34: "intial" is a misspelling of "initial"
src/ext/curve25519_donna/README:9:0: "dependancies" is a misspelling of "dependencies"
doc/tor.1.txt:2416:26: "simultanous" is a misspelling of "simultaneous"
doc/tor.1.txt:2831:4: "decribing" is a misspelling of "describing"
src/ext/ed25519/donna/README.md:59:25: "aginst" is a misspelling of "against"
src/ext/ed25519/donna/README.md:76:25: "aginst" is a misspelling of "against"
src/ext/ed25519/donna/ed25519_tor.c:135:45: "implementaion" is a misspelling of "implementation"
src/common/util.c:3048:18: "sucess" is a misspelling of "success"
src/common/util.c:3899:46: "accomodate" is a misspelling of "accommodate"
src/common/util.c:3929:10: "processs" is a misspelling of "processes"
src/or/bridges.c:354:40: "adress" is a misspelling of "address"
src/or/circpathbias.c:1470:3: "transfered" is a misspelling of "transferred"
src/or/circpathbias.c:1530:3: "transfered" is a misspelling of "transferred"
src/or/circuitlist.c:739:24: "rendevous" is a misspelling of "rendezvous"
src/or/circuitlist.c:741:24: "rendevous" is a misspelling of "rendezvous"
src/or/circuitstats.c:167:58: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:194:55: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:221:55: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:253:55: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:277:60: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:309:55: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:356:61: "paramter" is a misspelling of "parameter"
src/or/circuitstats.c:386:58: "paramter" is a misspelling of "parameter"
src/or/connection.c:4129:46: "owernship" is a misspelling of "ownership"
src/or/connection.c:4139:46: "owernship" is a misspelling of "ownership"
src/or/config.c:2901:28: "occurances" is a misspelling of "occurrences"
src/or/dirserv.c:46:13: "reponsible" is a misspelling of "responsible"
src/or/dirserv.c:1089:18: "bandwith" is a misspelling of "bandwidth"
src/or/dirserv.h:126:45: "encrytped" is a misspelling of "encrypted"
src/or/dirvote.c:666:48: "accidently" is a misspelling of "accidentally"
src/or/control.c:4695:5: "Succeded" is a misspelling of "Succeeded"
src/or/dns.c:22:38: "rela" is a misspelling of "real"
src/or/hs_cache.c:693:28: "explicitely" is a misspelling of "explicitly"
src/or/hs_cache.c:778:28: "explicitely" is a misspelling of "explicitly"
src/or/hs_client.c:540:5: "Explicitely" is a misspelling of "Explicitly"
src/or/hs_config.c:553:38: "transfered" is a misspelling of "transferred"
src/or/directory.c:1155:27: "determins" is a misspelling of "determines"
src/or/directory.c:1166:27: "determins" is a misspelling of "determines"
src/or/directory.c:3433:54: "successfuly" is a misspelling of "successfully"
src/or/directory.c:4072:7: "prefered" is a misspelling of "preferred"
src/or/directory.c:4984:19: "seperator" is a misspelling of "separator"
src/or/hs_intropoint.c:427:43: "occured" is a misspelling of "occurred"
src/or/hs_common.c:1645:32: "prefered" is a misspelling of "preferred"
src/or/hs_common.c:1646:28: "prefered" is a misspelling of "preferred"
src/or/hs_descriptor.c:748:12: "occured" is a misspelling of "occurred"
src/or/hs_descriptor.c:805:40: "occured" is a misspelling of "occurred"
src/or/hs_descriptor.c:1602:22: "accomodate" is a misspelling of "accommodate"
src/or/onion_fast.c:26:19: "targetted" is a misspelling of "targeted"
src/or/reasons.c:431:39: "bandwidht" is a misspelling of "bandwidth"
src/or/rendcache.c:46:60: "unsuable" is a misspelling of "unusable"
src/or/rendcache.c:51:32: "realy" is a misspelling of "really"
src/or/rendcache.h:39:35: "occured" is a misspelling of "occurred"
src/or/hs_service.c:73:59: "seperated" is a misspelling of "separated"
src/or/hs_service.c:140:22: "transfered" is a misspelling of "transferred"
src/or/hs_service.c:254:49: "accomodate" is a misspelling of "accommodate"
src/or/hs_service.c:267:49: "accomodate" is a misspelling of "accommodate"
src/or/hs_service.c:284:49: "accomodate" is a misspelling of "accommodate"
src/or/hs_service.c:301:49: "accomodate" is a misspelling of "accommodate"
src/or/hs_service.c:1269:45: "fomr" is a misspelling of "from"
src/or/hs_service.c:1299:3: "Populare" is a misspelling of "Popular"
src/or/hs_service.c:3008:5: "succesful" is a misspelling of "successful"
src/or/rendclient.c:572:58: "choosen" is a misspelling of "chosen"
ReleaseNotes:1348:36: "detailled" is a misspelling of "detailed"
ReleaseNotes:5106:11: "occured" is a misspelling of "occurred"
ReleaseNotes:5579:23: "targetted" is a misspelling of "targeted"
ReleaseNotes:6756:6: "embarassing" is a misspelling of "embarrassing"
ReleaseNotes:6780:18: "documenation" is a misspelling of "documentation"
ReleaseNotes:8923:10: "absense" is a misspelling of "absence"
ReleaseNotes:10036:44: "arbitary" is a misspelling of "arbitrary"
ReleaseNotes:15225:33: "occassionally" is a misspelling of "occasionally"
ReleaseNotes:15344:36: "maintainance" is a misspelling of "maintenance"
src/or/rendservice.h:111:28: "simultanious" is a misspelling of "simultaneous"
src/or/policies.c:2369:11: "rougly" is a misspelling of "roughly"
src/or/rephist.c:2734:12: "Incrememnts" is a misspelling of "Increments"
src/or/shared_random.c:1074:8: "substract" is a misspelling of "subtract"
src/or/shared_random_state.c:1100:23: "transfered" is a misspelling of "transferred"
src/or/shared_random_state.c:1119:23: "transfered" is a misspelling of "transferred"
src/or/shared_random_state.c:1224:3: "transfered" is a misspelling of "transferred"
src/or/rendservice.c:1335:16: "sucess" is a misspelling of "success"
src/or/rendservice.c:3169:5: "Substract" is a misspelling of "Subtract"
src/or/rendservice.c:4085:17: "choosen" is a misspelling of "chosen"
src/or/routerlist.c:366:24: "downlaods" is a misspelling of "downloads"
src/or/routerlist.c:2636:52: "authorites" is a misspelling of "authorities"
src/or/transports.c:593:7: "futher" is a misspelling of "further"
src/or/or.h:3089:35: "artifically" is a misspelling of "artificially"
src/or/or.h:3347:19: "paramaters" is a misspelling of "parameters"
src/or/or.h:4100:33: "alwasy" is a misspelling of "always"
src/test/test.c:177:21: "procede" is a misspelling of "proceed"
src/test/test_conscache.c:44:40: "planetas" is a misspelling of "planets"
src/test/test_connection.c:782:41: "varaible" is a misspelling of "variable"
src/test/test_cell_formats.c:480:15: "acutally" is a misspelling of "actually"
src/test/test_channelpadding.c:445:22: "recieve" is a misspelling of "receive"
src/test/test_channelpadding.c:515:22: "recieve" is a misspelling of "receive"
src/test/test_channelpadding.c:814:43: "suport" is a misspelling of "support"
src/test/test_channelpadding.c:825:40: "suport" is a misspelling of "support"
src/test/test_hs.c:1012:33: "transfered" is a misspelling of "transferred"
src/test/test_entrynodes.c:1997:49: "confirmd" is a misspelling of "confirmed"
src/test/test_config.c:326:19: "shoudl" is a misspelling of "should"
src/test/test_config.c:1394:41: "succeds" is a misspelling of "succeeds"
src/test/test_hs_descriptor.c:416:5: "Seperate" is a misspelling of "Separate"
src/test/test_extorport.c:246:58: "ther" is a misspelling of "there"
src/test/test_hs_intropoint.c:142:18: "extentions" is a misspelling of "extensions"
src/test/test_hs_intropoint.c:555:4: "Successfuly" is a misspelling of "Successfully"
src/test/test_dir.c:1273:19: "comapre" is a misspelling of "compare"
src/test/test_hs_service.c:663:66: "successfuly" is a misspelling of "successfully"
src/test/test_microdesc.c:574:6: "expolding" is a misspelling of "exploding"
src/test/test_shared_random.c:427:44: "seperately" is a misspelling of "separately"
src/test/test_shared_random.c:637:52: "agains" is a misspelling of "against"
src/test/test_options.c:908:54: "existant" is a misspelling of "existent"
src/test/test_options.c:920:54: "existant" is a misspelling of "existent"
src/test/test_options.c:932:55: "existant" is a misspelling of "existent"
src/test/test_options.c:944:55: "existant" is a misspelling of "existent"
src/test/test_options.c:1114:52: "existant" is a misspelling of "existent"
src/trunnel/hs/cell_introduce1.trunnel:17:36: "explicitely" is a misspelling of "explicitly"
src/test/test_util.c:706:43: "millenia" is a misspelling of "millennia"
src/test/test_util.c:742:43: "millenia" is a misspelling of "millennia"
src/test/test_util.c:878:43: "millenia" is a misspelling of "millennia"
src/test/test_util.c:924:43: "millenia" is a misspelling of "millennia"
src/test/test_util.c:5348:41: "exersize" is a misspelling of "exercise"
ChangeLog:3045:36: "detailled" is a misspelling of "detailed"
ChangeLog:6513:11: "occured" is a misspelling of "occurred"
ChangeLog:7256:23: "targetted" is a misspelling of "targeted"
ChangeLog:8399:18: "documenation" is a misspelling of "documentation"
ChangeLog:9684:6: "embarassing" is a misspelling of "embarrassing"
ChangeLog:9785:38: "occured" is a misspelling of "occurred"
ChangeLog:12576:32: "acknowleged" is a misspelling of "acknowledge"
ChangeLog:13883:10: "absense" is a misspelling of "absence"
ChangeLog:16384:50: "occured" is a misspelling of "occurred"
ChangeLog:16798:44: "arbitary" is a misspelling of "arbitrary"
ChangeLog:19826:22: "concensus" is a misspelling of "consensus"
ChangeLog:23213:33: "occassionally" is a misspelling of "occasionally"
ChangeLog:23678:36: "maintainance" is a misspelling of "maintenance"
```Tor: 0.3.4.x-finalRoger DingledineRoger Dingledinehttps://gitlab.torproject.org/tpo/core/tor/-/issues/23635improve AccountingStart manual entry2021-07-22T16:22:26Zcypherpunksimprove AccountingStart manual entrybackground:
relay operator question:
https://lists.torproject.org/pipermail/tor-relays/2017-September/013068.html
Teor eplained it very well here, this should go into the manual page.
https://lists.torproject.org/pipermail/tor-relays/20...background:
relay operator question:
https://lists.torproject.org/pipermail/tor-relays/2017-September/013068.html
Teor eplained it very well here, this should go into the manual page.
https://lists.torproject.org/pipermail/tor-relays/2015-May/006956.htmlTor: 0.3.3.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23611misspelled reference "UseEntryGuardsAsDirectoryGuards" to obsolete config par...2021-07-22T16:22:26ZTaylor Yumisspelled reference "UseEntryGuardsAsDirectoryGuards" to obsolete config parameter in manual pageThe manual page says
```
[[NumDirectoryGuards]] **NumDirectoryGuards** __NUM__::
If UseEntryGuardsAsDirectoryGuards is enabled, we try to make sure we have
at least NUM routers to use as directory guards. If this option is set to...The manual page says
```
[[NumDirectoryGuards]] **NumDirectoryGuards** __NUM__::
If UseEntryGuardsAsDirectoryGuards is enabled, we try to make sure we have
at least NUM routers to use as directory guards. If this option is set to
0, use the value from the guard-n-primary-dir-guards-to-use consensus
parameter, and default to 3 if the consensus parameter isn't set.
(Default: 0)
```
The (obsolete) config parameter with the closest spelling is `UseEntryGuardsAsDirGuards` at least according to `config.c`. The correct fix is probably to delete the conditional at the beginning of that sentence.Tor: 0.3.2.x-finalTaylor YuTaylor Yuhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23579sched: Add accessors for channel_pending list2021-09-16T14:31:39ZDavid Gouletdgoulet@torproject.orgsched: Add accessors for channel_pending listLet's make this list private and have accessors.Let's make this list private and have accessors.Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23575Avoid printf warning in scheduler_ev_add2020-06-27T13:55:34ZteorAvoid printf warning in scheduler_ev_add```
CC src/common/compat_threads.o
src/or/scheduler.c:511:55: error: format specifies type 'long' but the argument
has type '__darwin_suseconds_t' (aka 'int') [-Werror,-Wformat]
"%ld.%06ld", next_run-...```
CC src/common/compat_threads.o
src/or/scheduler.c:511:55: error: format specifies type 'long' but the argument
has type '__darwin_suseconds_t' (aka 'int') [-Werror,-Wformat]
"%ld.%06ld", next_run->tv_sec, next_run->tv_usec);
~~~~~ ^~~~~~~~~~~~~~~~~
%06d
./src/common/torlog.h:230:51: note: expanded from macro 'log_warn'
log_fn_(LOG_WARN, domain, __FUNCTION__, args, ##__VA_ARGS__)
```Tor: 0.3.2.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23560Fix typo(s) in comment(s) in the scheduling system.2020-06-27T13:55:35ZpastlyFix typo(s) in comment(s) in the scheduling system.First one:
```
if (diff < sched_run_interval) {
next_run.tv_sec = 0;
/* Takes 1000 ms -> us. This will always be valid because diff can NOT be
- * negative and can NOT be smaller than sched_run_interval so values can
+...First one:
```
if (diff < sched_run_interval) {
next_run.tv_sec = 0;
/* Takes 1000 ms -> us. This will always be valid because diff can NOT be
- * negative and can NOT be smaller than sched_run_interval so values can
+ * negative and can NOT be bigger than sched_run_interval so values can
```
There's no way there isn't more, so I'm making this a generalized ticket.Tor: 0.3.2.x-finalpastlypastlyhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23539We've defined "don't use kist" as a negative interval, so don't check for -12020-06-27T13:55:36ZpastlyWe've defined "don't use kist" as a negative interval, so don't check for -1Of course `== -1` doesn't make sense when KISTSchedRunInterval is a unsigned as it currently is (legacy/trac#23538)
```
@@ -288,9 +288,9 @@ select_scheduler(void)
case SCHEDULER_KIST:
if (!scheduler_can_use_kist()) {
#ifdef...Of course `== -1` doesn't make sense when KISTSchedRunInterval is a unsigned as it currently is (legacy/trac#23538)
```
@@ -288,9 +288,9 @@ select_scheduler(void)
case SCHEDULER_KIST:
if (!scheduler_can_use_kist()) {
#ifdef HAVE_KIST_SUPPORT
- if (get_options()->KISTSchedRunInterval == -1) {
+ if (get_options()->KISTSchedRunInterval < 0) {
log_info(LD_SCHED, "Scheduler type KIST can not be used. It is "
- "disabled because KISTSchedRunInterval=-1");
+ "disabled because KISTSchedRunInterval is < 0");
} else {
log_notice(LD_SCHED, "Scheduler type KIST has been disabled by "
"the consensus.");
```Tor: 0.3.2.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/tpo/core/tor/-/issues/23538Allow KISTSchedRunInterval to be negative2020-06-27T13:55:37ZpastlyAllow KISTSchedRunInterval to be negativeWe use negative values to indicate "don't use KIST."We use negative values to indicate "don't use KIST."Tor: 0.3.2.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/tpo/core/tor/-/issues/23537Allow the new sched to respond to a new conensus, not the old one.2020-06-27T13:55:37ZpastlyAllow the new sched to respond to a new conensus, not the old one.If the sched hears about a new consensus, we should switch schedulers first. Then tell the scheduler implementation about the new consensus. It doesn't make sense to have the old one respond to the new consensus right before we stop usin...If the sched hears about a new consensus, we should switch schedulers first. Then tell the scheduler implementation about the new consensus. It doesn't make sense to have the old one respond to the new consensus right before we stop using it.
```
@@ -371,12 +369,13 @@ void
scheduler_notify_networkstatus_changed(const networkstatus_t *old_c,
const networkstatus_t *new_c)
{
+ /* Maybe the consensus param made us change the scheduler. */
+ set_scheduler();
+
/* Then tell the (possibly new) scheduler that we have a new consensus */
if (the_scheduler->on_new_consensus) {
the_scheduler->on_new_consensus(old_c, new_c);
}
- /* Maybe the consensus param made us change the scheduler. */
- set_scheduler();
}
/*
```Tor: 0.3.2.x-finalpastlypastlyhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23459prop224: Specialize interface of hs_circuitmap_get_rend_circ_client_side()2021-09-16T14:31:39ZGeorge Kadianakisprop224: Specialize interface of hs_circuitmap_get_rend_circ_client_side()We currently use `hs_circuitmap_get_rend_circ_client_side()` for two reasons:
a) To proceed with the rend protocol as a client when we receive an intro ack (in `handle_introduce_ack_success()`).
b) To close useless rend circuits in `clos...We currently use `hs_circuitmap_get_rend_circ_client_side()` for two reasons:
a) To proceed with the rend protocol as a client when we receive an intro ack (in `handle_introduce_ack_success()`).
b) To close useless rend circuits in `close_or_reextend_intro_circ()`.
To fit these two scenarios, the function `hs_circuitmap_get_rend_circ_client_side()` currently returns all sorts of rend circs (established and unestablished).
We can improve the logic and semantics here by splitting into two funcs. One that returns only established circs (used for (a)), and another that retuns all kinds of circs (used for (b)).Tor: 0.3.3.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/23305hs: Maybe don't use REND_DESC_ID_V2_LEN_BASE32 as the length for a base32 rel...2021-09-16T14:32:00ZDavid Gouletdgoulet@torproject.orghs: Maybe don't use REND_DESC_ID_V2_LEN_BASE32 as the length for a base32 relay digest idFunction `hs_lookup_last_hid_serv_request()` defines an HSDir identity digest in base32 as:
```
char hsdir_id_base32[REND_DESC_ID_V2_LEN_BASE32 + 1];
```
Although the length is correct, semantically this is bad to use the base32 desc...Function `hs_lookup_last_hid_serv_request()` defines an HSDir identity digest in base32 as:
```
char hsdir_id_base32[REND_DESC_ID_V2_LEN_BASE32 + 1];
```
Although the length is correct, semantically this is bad to use the base32 descriptor ID length for this.Tor: 0.3.2.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/tpo/core/tor/-/issues/23288refactor temporary file cleanup and make it more consistent2021-09-16T14:32:00ZTaylor Yurefactor temporary file cleanup and make it more consistentlegacy/trac#23271 is an example of a temporary file that doesn't properly get cleaned up. We should consider refactoring the creation and destruction of temporary files so they get cleaned up consistently.legacy/trac#23271 is an example of a temporary file that doesn't properly get cleaned up. We should consider refactoring the creation and destruction of temporary files so they get cleaned up consistently.https://gitlab.torproject.org/tpo/core/tor/-/issues/23271control_auth_cookie isn't deleted when tor stops2020-06-27T13:55:52Zyurivict271control_auth_cookie isn't deleted when tor stopsWhen tor is stopped gracefully ('service stop tor' on FreeBSD), it leaves the file /var/db/tor/control_auth_cookie.
Due to the sensitive nature of this file, it should be only present when tor runs and deleted once it stops gracefully.When tor is stopped gracefully ('service stop tor' on FreeBSD), it leaves the file /var/db/tor/control_auth_cookie.
Due to the sensitive nature of this file, it should be only present when tor runs and deleted once it stops gracefully.Tor: 0.3.3.x-final