1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-11-23 08:32:02 +01:00
Commit Graph

130 Commits

Author SHA1 Message Date
adnano
1241af39f0 Update examples 2021-01-25 10:59:50 -05:00
adnano
456f2686bc Guarantee that (*Response).Body is not nil 2021-01-15 15:18:00 -05:00
adnano
1283045355 server: Rename Register to Handle 2021-01-14 22:12:07 -05:00
adnano
648a2ef3ec Update examples 2021-01-14 21:23:13 -05:00
adnano
b623184b87 Update examples/auth.go 2021-01-14 19:04:11 -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
1456f82d66 Update examples/stream.go 2021-01-10 01:13:07 -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
b5cc06ad60 Add ResponseWriter.Flush function 2020-12-18 13:15:34 -05:00
adnano
896573601c Add examples/stream.go 2020-12-18 12:31:37 -05:00
adnano
e6f6366708 examples: Add missing descriptions 2020-12-18 00:47:30 -05:00
adnano
f2d93867c4 examples/html: Read from stdin and write to stdout 2020-12-18 00:45:09 -05:00
adnano
70fbdb0e5c Remove Input function 2020-12-18 00:25:06 -05:00
adnano
46e37ca9d6 client: Remove GetInput and CheckRedirect callbacks 2020-12-18 00:12:32 -05:00
adnano
c20ab2054a examples/auth: Fix crash on changing username 2020-12-17 21:10:53 -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
7c7bfa954a examples/server: Increase certificate duration 2020-11-27 17:54:26 -05:00
adnano
e9907b0628 Update examples/auth.go 2020-11-25 19:10:01 -05:00
adnano
2a7b9662d9 Fix known hosts expiration timestamps 2020-11-25 14:24:49 -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
ad403ddecf update examples/cert.go 2020-11-05 15:38:41 -05:00
adnano
f3f4c8d691 Update examples/auth.go 2020-11-05 15:37:46 -05:00
adnano
6963164a96 Refactor KnownHosts 2020-11-05 15:27:12 -05:00
adnano
eb876fa6f4 Update examples/auth.go 2020-11-03 16:29:39 -05:00
adnano
aaef21a9b3 Add ErrorLog field to Server 2020-11-03 16:11:31 -05:00
adnano
e75c77a6c7 Add Subject option in CertificateOptions 2020-11-02 23:11:46 -05:00
adnano
386b1c56da server: Populate (*Request).Certificate field 2020-11-01 16:25:59 -05:00
adnano
92ea15ecdd Update examples/auth.go 2020-11-01 14:47:26 -05:00
adnano
0d09331fc4 examples: Tweak client and server timeouts 2020-11-01 14:20:24 -05:00
adnano
97bf2b3061 Update examples/cert.go 2020-11-01 14:19:18 -05:00
adnano
570f19477e Update examples/html.go 2020-11-01 00:58:34 -04: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
989fac26bc Implement Server read and write timeouts 2020-10-31 21:07:02 -04:00
adnano
cdfd68157b Implement Client connection timeout 2020-10-31 20:55:56 -04:00
adnano
d2d28c5f26 Remove Redirect and PermanentRedirect functions
Use (*ResponseWriter).WriteHeader instead.
2020-10-31 16:51:10 -04:00
adnano
b6821262a8 server: Automatically write new certificates to disk 2020-10-31 16:33:56 -04:00
adnano
7f8a8f911a Add optional host argument in examples/client.go 2020-10-28 16:50:17 -04:00
adnano
ddd6215dcc Use strings.Builder in Fingerprint 2020-10-28 15:14:24 -04:00
adnano
7df14145d0 Refactor server certificates 2020-10-28 15:03:54 -04:00
adnano
6fb76f04e7 Fix examples/cert.go 2020-10-28 13:47:52 -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