<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-hsservice/src/ipt_mgr, branch arti-v2.1.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.1.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.1.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-13T18:27:16Z</updated>
<entry>
<title>tor-hsservice: Change ReplayLog error type.</title>
<updated>2025-08-13T18:27:16Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2025-07-31T18:43:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f0e0e51622d999f4632ed95b109a08229b372068'/>
<id>urn:sha1:f0e0e51622d999f4632ed95b109a08229b372068</id>
<content type='text'>
This disentangles the ReplyLog from the IptManager.

This will allow us to make the InternalPowError type more public (in
order to use it in the OnionServiceStatus code) without also having to
make the CreateIptError type more public.
</content>
</entry>
<entry>
<title>tor-hsservice: Use tor_persist::state_dir</title>
<updated>2024-02-01T11:21:44Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-01-30T15:42:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b4a7f0fca0d231eb9c0298b78deee9ed3c1bbc7e'/>
<id>urn:sha1:b4a7f0fca0d231eb9c0298b78deee9ed3c1bbc7e</id>
<content type='text'>
We no longer do replay log locking in IptManager::new.  Instead, we
rely on the acquire_instance call in OnionService::launch, which ends
up with ipt_mgr getting an InstanceHandle (which contains a lock
guard).

OnionServiceStateMgr is abolished; it existed to deal with the
generics in the tor_persist::StateMgr API.  state_dir has no
generics (other than the T being loaded/stored).

Many places (structs and argument lists) now have state_dir types
which embody a path (or a CheckeDir) along with a lock, rather than
separate path+lock+mistrust.

The creation/startup code uses the new calls from state_dir.

Other more minor changes:
 - StartupError::StateDirectoryInaccessible contains tor_persist::Error
 - test::create_storage_handles_from_state_dir changed and renamed,
   from _from_state_mgr.
 - replay::PersistFile's (separate) file lock is now fslock_guard's
</content>
</entry>
<entry>
<title>tor-hsservice: Introduce StartupError::StateDirectoryInaccessibleIo</title>
<updated>2024-02-01T11:21:44Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-01-30T15:38:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b84ac6628e5c17f99321e14a1f1349597d6786e0'/>
<id>urn:sha1:b84ac6628e5c17f99321e14a1f1349597d6786e0</id>
<content type='text'>
We're going to change the payload of StateDirectoryInaccessible to
tor_persist::Error, since that's what tor_persist::state_dir gives us,
but then we can't use it here.
</content>
</entry>
<entry>
<title>tor-hsservice: ipt_mgr: Move storage handle to state</title>
<updated>2024-02-01T11:21:44Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-01-30T12:47:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d2f54164dcb05b3c8b5c9b7be522cdcba14e7ef3'/>
<id>urn:sha1:d2f54164dcb05b3c8b5c9b7be522cdcba14e7ef3</id>
<content type='text'>
The new state_dir types require &amp;mut for storing, which is correct,
but that means we can't have it in Immutable.
</content>
</entry>
<entry>
<title>tor-hsservice: storage: Move Arcs into type aliases</title>
<updated>2024-02-01T11:21:44Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-01-30T12:41:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=03825a0ccccf33940c4812d213e1ea00410c39d2'/>
<id>urn:sha1:03825a0ccccf33940c4812d213e1ea00410c39d2</id>
<content type='text'>
These are here because that's what you get from the tor_persist
singleton StageMgr API (for type erasure reasons).  We're going to
change these to tor_persist::state_dir types and those don't involve
Arcs.
</content>
</entry>
<entry>
<title>tor-hsservice: Make IPT logs be persistent</title>
<updated>2023-12-13T17:03:23Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-12-12T15:34:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=06215d9270fe15e1c63a95dbe4adc9239baacc46'/>
<id>urn:sha1:06215d9270fe15e1c63a95dbe4adc9239baacc46</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-hsservice: Use keystore to store and reuse IPT keys</title>
<updated>2023-12-04T18:58:10Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-11-23T14:54:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dad7699e355bcbd0e02d3445710da7997a87c30e'/>
<id>urn:sha1:dad7699e355bcbd0e02d3445710da7997a87c30e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-hsservice: ipt_mgr: Prepare for nonfatal IPT creation errors</title>
<updated>2023-12-04T18:58:10Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-11-23T16:54:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b98ca536c0d81470e5485aa1469077d245368e59'/>
<id>urn:sha1:b98ca536c0d81470e5485aa1469077d245368e59</id>
<content type='text'>
Previously IPT creation could only fail due to key generation failures
or other kinds of internal error, which were very unlikely and treated
as fatal.

But with key persistence, IPT creation will be able to fail due to eg
disk full.
</content>
</entry>
<entry>
<title>tor-hsservice: ipt_mgr: Save and load IPT relays etc. (fmt)</title>
<updated>2023-12-04T18:58:10Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-11-30T12:32:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b7cdc31fcfd4121ab1c2140161df923446692da8'/>
<id>urn:sha1:b7cdc31fcfd4121ab1c2140161df923446692da8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-hsservice: ipt_mgr: Save and load IPT relays etc.</title>
<updated>2023-12-04T18:58:10Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-11-22T15:55:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0547d386cf35b967e0267ab2dbd9d514e403c250'/>
<id>urn:sha1:0547d386cf35b967e0267ab2dbd9d514e403c250</id>
<content type='text'>
Store the IPT manager's data structure to the provided storage
manager.

Keys are not persistent yet!  And we must save the publication IPT set
since it can have the only record of IPT publication times.
</content>
</entry>
</feed>
