1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2025-08-23 20:34:40 +02:00
Commit Graph

50 Commits

Author SHA1 Message Date
adnano
9b79533c3e Remove StatusSensitiveInput 2021-03-08 14:08:45 -05:00
adnano
a79ccb45ed examples/client: Fix certificate trust check 2021-03-08 14:07:18 -05:00
adnano
7f46e31067 tofu: Use base64-encoded sha256 fingerprints 2021-03-06 15:24:15 -05:00
adnano
1a5221a18b tofu: Remove expiration timestamp from known hosts 2021-03-04 15:37:02 -05:00
adnano
3aa1ef203c Update examples/client.go 2021-02-24 19:21:31 -05:00
adnano
2f9e105c7f response: Revert to using fields instead of methods 2021-02-24 18:50:40 -05:00
adnano
48e97bc5a5 examples/client: Fix display of response status 2021-02-24 16:16:42 -05:00
adnano
744276818b examples/client: Use Response methods 2021-02-24 09:22:25 -05:00
adnano
78cc15f968 Update examples/client.go 2021-02-23 17:52:34 -05:00
adnano
20a1dce5a5 examples/client: Stream response body 2021-02-23 15:56:44 -05:00
adnano
4878e04791 Make Status a type
Using a type is better than using an integer.
2021-02-20 16:16:32 -05:00
adnano
e336832559 examples/client: Remove dependency on go-xdg 2021-02-20 15:42:06 -05:00
adnano
b8c8dd0794 examples/client: Use context 2021-02-20 15:39:47 -05:00
adnano
757bc9fd71 Replace uses of ioutil with io 2021-02-16 18:57:24 -05:00
adnano
64534aaa01 Update examples/client.go 2021-02-14 18:59:33 -05:00
adnano
92ad508b94 examples/client: Fix opening of known hosts file 2021-02-09 09:48:51 -05:00
adnano
7796801a16 Use plain integers to represent status codes 2021-02-09 09:46:13 -05:00
adnano
6aaa3c4155 Guarantee that (*Response).Body is not nil 2021-01-15 15:18:00 -05:00
adnano
e90f959274 Update examples/client.go 2021-01-14 17:28:03 -05:00
Hugo Wetterberg
e82a9f858c 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
adnano
096a87d329 Move tofu.go to a subpackage 2021-01-10 16:46:12 -05:00
adnano
efe2a3b2d5 Rename status.Message to status.Meta 2021-01-10 00:10:57 -05:00
adnano
a593375652 examples/client: Fix fingerprint check 2020-12-19 13:44:33 -05:00
adnano
168554d788 examples: Add missing descriptions 2020-12-18 00:47:30 -05:00
adnano
53f781d0b8 client: Remove GetInput and CheckRedirect callbacks 2020-12-18 00:12:32 -05:00
adnano
45e4ba57ea Decouple Client from KnownHostsFile 2020-12-17 19:50:26 -05:00
adnano
c60467cc47 client: Add GetCertificate callback 2020-12-17 16:46:16 -05:00
adnano
dd894c7462 Remove top-level Get and Do functions 2020-11-09 12:04:53 -05:00
adnano
0dbe9d4d38 Don't guarantee that (*Response).Body is always non-nil 2020-11-08 18:38:08 -05:00
adnano
ea560b3030 Refactor KnownHosts 2020-11-05 15:27:12 -05:00
adnano
42d1eef7dd examples: Tweak client and server timeouts 2020-11-01 14:20:24 -05:00
adnano
cd173f8c0a Guarantee that (*Response).Body is non-nil 2020-10-31 23:04:47 -04:00
adnano
a7b7fd493a Fix examples/client.go 2020-10-31 22:50:42 -04:00
adnano
9a6cb61b8f Add option to skip trust checks 2020-10-31 22:45:21 -04:00
adnano
b23a17d94e Refactor client.TrustCertificate workflow 2020-10-31 22:34:51 -04:00
adnano
3c62e801f2 Implement Client connection timeout 2020-10-31 20:55:56 -04:00
adnano
d97128bd8a Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
adnano
cb039e951f Refactor client certificates 2020-10-28 13:41:24 -04:00
adnano
5de7468d6f Ensure absolute paths in client certificate store 2020-10-27 23:47:13 -04:00
adnano
b0a4b98b13 Add Client.GetInput field 2020-10-27 23:35:22 -04:00
adnano
1443fa1046 Restrict client certificates to certain paths 2020-10-27 23:34:06 -04:00
adnano
f6529e1a17 client: Follow redirects 2020-10-27 22:12:10 -04:00
adnano
f3af6ba83d Add (*Client).Get function 2020-10-27 19:22:34 -04:00
adnano
e4ec065c4e Make (*Response).Body an io.ReadCloser 2020-10-27 19:16:55 -04:00
adnano
e2de851ccf Fix examples 2020-10-27 14:17:14 -04:00
adnano
6a00dc8656 Add NewRequestFromURL function 2020-10-27 13:27:52 -04:00
adnano
02dd955c4e 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