IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
- Never call `exit`. If there is an error, propagate the error to
the caller. This ensures that any clean up handlers (like
flushing state to disk) are run.
- Changes the format to a certificate-centric view. I believe we
should present the data aligned with the OpenPGP concepts, and the
device tree structure, or where the secret key material resides,
is an implementation detail.
- Where the secret key material resides is an important detail that
we should still show, of course, but it shouldn't be the basis of
the structure we show.
- Incidentally, this greatly improves how user IDs are related to
certificates, and what happens if a subkey is bound to two
certificates. Hence, it fixes#334.
- In addition to the best user ID, we show key creation times to
help users differentiate between old and new keys.
- We print the fingerprints on a line on their own in preparation
for the considerably longer RFC 9580 fingerprints.
- We use data structures that naturally order their items, resulting
in a predictable output order.
- Fixes#292.
- Previously, there was a chance of running out of file descriptors
while or after fetching a large number of certificates using sq
network fetch.
- The root cause of that was the use of getaddrinfo(3) to resolve
names, which is a blocking interface, which has to be executed on
a special thread for blocking tasks on the tokio runtime. The
maximum number of these threads is capped at 512 by default, and
these threads can tie up a significant number of file descriptors
in sockets. The threads do close their sockets and go away after
a while, presumably after a timeout. Further, blocking tasks can
not be canceled.
- Do release all thread pool resources after doing the fetch.
- Also, switch to the hickory crate for doing name lookups. This
implements a non-blocking interface, and releases resources in a
timely fashion.
- Fixes#335.