1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-09-19 18:53:43 +02:00
Commit Graph

50 Commits

Author SHA1 Message Date
adnano
7101402517 Remove StatusSensitiveInput 2021-03-08 14:08:45 -05:00
adnano
8c453c7531 examples/client: Fix certificate trust check 2021-03-08 14:07:18 -05:00
adnano
44921d55ad tofu: Use base64-encoded sha256 fingerprints 2021-03-06 15:24:15 -05:00
adnano
aa438fedbf tofu: Remove expiration timestamp from known hosts 2021-03-04 15:37:02 -05:00
adnano
13d4ba5708 Update examples/client.go 2021-02-24 19:21:31 -05:00
adnano
c5bd598947 response: Revert to using fields instead of methods 2021-02-24 18:50:40 -05:00
adnano
a27dfdc3a9 examples/client: Fix display of response status 2021-02-24 16:16:42 -05:00
adnano
1dc3a2009d examples/client: Use Response methods 2021-02-24 09:22:25 -05:00
adnano
81803e8a44 Update examples/client.go 2021-02-23 17:52:34 -05:00
adnano
e31b8d0244 examples/client: Stream response body 2021-02-23 15:56:44 -05:00
adnano
9318ba666b Make Status a type
Using a type is better than using an integer.
2021-02-20 16:16:32 -05:00
adnano
002df3f8b2 examples/client: Remove dependency on go-xdg 2021-02-20 15:42:06 -05:00
adnano
46c4ad1848 examples/client: Use context 2021-02-20 15:39:47 -05:00
adnano
1d4f1baac4 Replace uses of ioutil with io 2021-02-16 18:57:24 -05:00
adnano
4b8c9f7c12 Update examples/client.go 2021-02-14 18:59:33 -05:00
adnano
a4590e7998 examples/client: Fix opening of known hosts file 2021-02-09 09:48:51 -05:00
adnano
ecfb9b2154 Use plain integers to represent status codes 2021-02-09 09:46:13 -05:00
adnano
456f2686bc Guarantee that (*Response).Body is not nil 2021-01-15 15:18:00 -05:00
adnano
666d82d1a5 Update examples/client.go 2021-01-14 17:28:03 -05:00
Hugo Wetterberg
76e8a9f0bd 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
a3c883de8a Move tofu.go to a subpackage 2021-01-10 16:46:12 -05:00
adnano
c76ff83964 Rename status.Message to status.Meta 2021-01-10 00:10:57 -05:00
adnano
add315920c examples/client: Fix fingerprint check 2020-12-19 13:44:33 -05:00
adnano
e6f6366708 examples: Add missing descriptions 2020-12-18 00:47:30 -05:00
adnano
46e37ca9d6 client: Remove GetInput and CheckRedirect callbacks 2020-12-18 00:12:32 -05:00
adnano
aafbf9e590 Decouple Client from KnownHostsFile 2020-12-17 19:50:26 -05:00
adnano
74ed3090cb client: Add GetCertificate callback 2020-12-17 16:46:16 -05:00
adnano
c8516bef63 Remove top-level Get and Do functions 2020-11-09 12:04:53 -05:00
adnano
676fc4994c Don't guarantee that (*Response).Body is always non-nil 2020-11-08 18:38:08 -05:00
adnano
6963164a96 Refactor KnownHosts 2020-11-05 15:27:12 -05:00
adnano
0d09331fc4 examples: Tweak client and server timeouts 2020-11-01 14:20:24 -05:00
adnano
fc24256683 Guarantee that (*Response).Body is non-nil 2020-10-31 23:04:47 -04:00
adnano
7c034554f0 Fix examples/client.go 2020-10-31 22:50:42 -04:00
adnano
d36225b337 Add option to skip trust checks 2020-10-31 22:45:21 -04:00
adnano
1c54599498 Refactor client.TrustCertificate workflow 2020-10-31 22:34:51 -04:00
adnano
cdfd68157b Implement Client connection timeout 2020-10-31 20:55:56 -04:00
adnano
7f8a8f911a Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
adnano
a3266487af Refactor client certificates 2020-10-28 13:41:24 -04:00
adnano
80e2f783c3 Ensure absolute paths in client certificate store 2020-10-27 23:47:13 -04:00
adnano
748967867f Add Client.GetInput field 2020-10-27 23:35:22 -04:00
adnano
546e62f13d Restrict client certificates to certain paths 2020-10-27 23:34:06 -04:00
adnano
922423bf9d client: Follow redirects 2020-10-27 22:12:10 -04:00
adnano
d713e95251 Add (*Client).Get function 2020-10-27 19:22:34 -04:00
adnano
ab3ac68f6f Make (*Response).Body an io.ReadCloser 2020-10-27 19:16:55 -04:00
adnano
37fd7c1773 Fix examples 2020-10-27 14:17:14 -04:00
adnano
1293b2467a Add NewRequestFromURL function 2020-10-27 13:27:52 -04:00
adnano
6cccba3800 Rename repository to go-gemini 2020-10-24 15:15:32 -04:00
adnano
76f3ec0dcf Move certificate verification code to VerifyConnection 2020-10-13 16:44:46 -04:00
adnano
a0c7ce836f Rename (*KnownHosts).Load to LoadDefault 2020-10-12 16:56:55 -04:00
adnano
7eaa0f3bce Update documentation 2020-10-12 16:34:59 -04:00