Opened at 2016-12-29T20:10:11Z
Closed at 2017-01-11T00:35:09Z
#2860 closed defect (fixed)
tahoe create-node writes tcp=tor even for i2p
Reported by: | dawuud | Owned by: | Brian Warner <warner@…> |
---|---|---|---|
Priority: | normal | Milestone: | 1.12.1 |
Component: | code-nodeadmin | Version: | 1.12.0 |
Keywords: | i2p cli config | Cc: | |
Launchpad Bug: |
Description (last modified by warner)
str4d has found that even without txtorcon installed you can trigger a bug where configuring a storage node via the CLI doesn't work as expected:
tahoe create-node --hide-ip --listen=i2p tahoe create-client --hide-ip --introducer=i2p:...
these two commands result in the tahoe.cfg being written with:
[connections] tcp=tor
the subsequent tahoe start command will of course fail.
Change History (5)
comment:1 Changed at 2016-12-29T20:12:44Z by warner
- Component changed from unknown to code-nodeadmin
- Description modified (diff)
- Milestone changed from undecided to 1.12.1
comment:2 Changed at 2016-12-29T20:16:51Z by warner
comment:3 Changed at 2016-12-30T16:46:43Z by str4d
That to me seems like a sensible default. Perhaps also the create-node command should print which option it has taken, so the user knows to edit it if they want the other option? Then again, it appears very near the top of tahoe.cfg so it's not hard to spot later.
comment:4 Changed at 2017-01-09T16:27:32Z by dawuud
ok i've attempted the fix that warner mentions:
https://github.com/tahoe-lafs/tahoe-lafs/pull/392 https://github.com/david415/tahoe-lafs/tree/2860.fix_i2p_create_node.0
comment:5 Changed at 2017-01-11T00:35:09Z by Brian Warner <warner@…>
- Owner set to Brian Warner <warner@…>
- Resolution set to fixed
- Status changed from new to closed
In 5e1d464/trunk:
oh, yeah, create_node.py write_node_config() is Tor-centric here:
Earlier (in _CreateBaseOptions.postOptions) we allow either tor or i2p to satisfy --hide-ip.
What if we change that tcp=tor clause to try tor_provider._import_txtorcon(), and if that fails, write out tcp=none ? We can't write out tcp=i2p because I2P doesn't let you connect to normal TCP hints.