Commit Graph
37 Commits
Author SHA1 Message Date
Adnan Maolood 332dd253d0 Replace uses of ioutil with io 2021-02-16 18:57:24 -05:00
Adnan Maolood 41eec39a1d Update examples/client.go 2021-02-14 18:59:33 -05:00
Adnan Maolood 0e3b61ed00 examples/client: Fix opening of known hosts file 2021-02-09 09:48:51 -05:00
Adnan Maolood 5ef5824d6f Use plain integers to represent status codes 2021-02-09 09:46:13 -05:00
Adnan Maolood 31de8d49b0 Guarantee that (*Response).Body is not nil 2021-01-15 15:18:00 -05:00
Adnan Maolood 1a3974b3a3 Update examples/client.go 2021-01-14 17:28:03 -05:00
Hugo WetterbergandAdnan Maolood 95aff9c573 tofu: Refactor
This commit changes underlying file handling and known hosts parsing.

A known hosts file opened through Load() never closed the underlying
file. During known hosts parsing most errors were unchecked, or just
led to the line being skipped.

I removed the KnownHosts type, which didn't really have a role after
the refactor. The embedding of KnownHosts in KnownHosts file has been
removed as it also leaked the map unprotected by the mutex.

The Fingerprint type is now KnownHost and has taken over the
responsibility of marshalling and unmarshalling.

SetOutput now takes a WriteCloser so that we can close the underlying
writer when it's replaced, or when it's explicitly closed through the
new Close() function.

KnownHostsFile.Add() now also writes the known host to the output if
set. I think that makes sense expectation-wise for the type.

Turned WriteAll() into WriteTo() to conform with the io.WriterTo
interface.

Load() is now Open() to better reflect the fact that a file is opened,
and kept open. It can now also return errors from the parsing process.

The parser does a lot more error checking, and this might be an area
where I've changed a desired behaviour as invalid entries no longer
are ignored, but aborts the parsing process. That could be changed to
a warning, or some kind of parsing feedback.

I added KnownHostsFile.TOFU() to fill the developer experience gap
that was left after the client no longer knows about
KnownHostsFile. It implements a basic non-interactive TOFU flow.
2021-01-14 13:48:57 -05:00
Adnan Maolood d78052ce08 Move tofu.go to a subpackage 2021-01-10 16:46:12 -05:00
Adnan Maolood 3ed39e62d8 Rename status.Message to status.Meta 2021-01-10 00:10:57 -05:00
Adnan Maolood 48fa6a724e examples/client: Fix fingerprint check 2020-12-19 13:44:33 -05:00
Adnan Maolood df1794c803 examples: Add missing descriptions 2020-12-18 00:47:30 -05:00
Adnan Maolood e2c907a7f6 client: Remove GetInput and CheckRedirect callbacks 2020-12-18 00:12:32 -05:00
Adnan Maolood 28c5c857dc Decouple Client from KnownHostsFile 2020-12-17 19:50:26 -05:00
Adnan Maolood 846fa2ac41 client: Add GetCertificate callback 2020-12-17 16:46:16 -05:00
Adnan Maolood 46cbcfcaa4 Remove top-level Get and Do functions 2020-11-09 12:04:53 -05:00
Adnan Maolood 5332dc6280 Don't guarantee that (*Response).Body is always non-nil 2020-11-08 18:38:08 -05:00
Adnan Maolood b76080c863 Refactor KnownHosts 2020-11-05 15:27:12 -05:00
adnano c3fc9a4e9f examples: Tweak client and server timeouts 2020-11-01 14:20:24 -05:00
Adnan Maolood 33c1dc435d Guarantee that (*Response).Body is non-nil 2020-10-31 23:04:47 -04:00
Adnan Maolood dad8f38bfb Fix examples/client.go 2020-10-31 22:50:42 -04:00
Adnan Maolood 8181b86759 Add option to skip trust checks 2020-10-31 22:45:21 -04:00
Adnan Maolood 65a5065250 Refactor client.TrustCertificate workflow 2020-10-31 22:34:51 -04:00
Adnan Maolood 42c95f8c8d Implement Client connection timeout 2020-10-31 20:55:56 -04:00
Adnan Maolood 66e4dc86d5 Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
Adnan Maolood fbd97a62de Refactor client certificates 2020-10-28 13:41:24 -04:00
Adnan Maolood e6072d8bbc Ensure absolute paths in client certificate store 2020-10-27 23:47:13 -04:00
Adnan Maolood 4c5167f590 Add Client.GetInput field 2020-10-27 23:35:22 -04:00
Adnan Maolood d1dcf070ff Restrict client certificates to certain paths 2020-10-27 23:34:06 -04:00
Adnan Maolood fc72224ce9 client: Follow redirects 2020-10-27 22:12:10 -04:00
Adnan Maolood 239ec885f7 Add (*Client).Get function 2020-10-27 19:22:34 -04:00
Adnan Maolood 12a9deb1a6 Make (*Response).Body an io.ReadCloser 2020-10-27 19:16:55 -04:00
Adnan Maolood 860a33f5a2 Fix examples 2020-10-27 14:17:14 -04:00
Adnan Maolood 8ab4064841 Add NewRequestFromURL function 2020-10-27 13:27:52 -04:00
Adnan Maolood f0345f3495 Rename repository to go-gemini 2020-10-24 15:15:32 -04:00
adnano 3d1e9e5519 Move certificate verification code to VerifyConnection 2020-10-13 16:44:46 -04:00
adnano 4770ad9112 Rename (*KnownHosts).Load to LoadDefault 2020-10-12 16:56:55 -04:00
adnano a33a5be063 Update documentation 2020-10-12 16:34:59 -04:00