Commit Graph

173 Commits

Author SHA1 Message Date
Sasha Koshka f6d3c47816 Export TLS & remove conn in request struct
This makes it possible to fully create another request outside of this module
(which Hnakra will need) and has better parity with net/http.
2023-05-26 00:38:12 -04:00
Sasha Koshka b436ec8cb5 Change import paths 2023-05-25 18:45:53 -04:00
Adnan Maolood 1fdef9b608 Rename ServeMux to Mux 2021-03-15 15:44:35 -04:00
Adnan Maolood dea7600f29 Remove StatusSensitiveInput 2021-03-08 14:08:45 -05:00
Adnan Maolood 7d958a4798 examples/client: Fix certificate trust check 2021-03-08 14:07:18 -05:00
Adnan Maolood 6e5c2473e7 tofu: Use base64-encoded sha256 fingerprints 2021-03-06 15:24:15 -05:00
Adnan Maolood 107b3a1785 Move LoggingMiddleware out of examples/server.go 2021-03-05 11:35:01 -05:00
Adnan Maolood 649b20659b Revert "certificate: Remove Subject from CreateOptions"
This reverts commit ce649ecc66.
2021-03-04 20:04:46 -05:00
Adnan Maolood ce649ecc66 certificate: Remove Subject from CreateOptions 2021-03-04 16:27:16 -05:00
Adnan Maolood 8e2ac24830 tofu: Remove expiration timestamp from known hosts 2021-03-04 15:37:02 -05:00
Adnan Maolood fcc71b76d9 examples/server: Clean up LoggingMiddleware 2021-02-27 14:53:37 -05:00
Adnan Maolood 2d7f28e152 Update examples/client.go 2021-02-24 19:21:31 -05:00
Adnan Maolood 1764e02d1e Remove ResponseWriter.Close method 2021-02-24 19:00:09 -05:00
Adnan Maolood 1bc5c68c3f response: Revert to using fields instead of methods 2021-02-24 18:50:40 -05:00
Adnan Maolood 867074d81b examples/client: Fix display of response status 2021-02-24 16:16:42 -05:00
Adnan Maolood 19bfca1cc3 examples/server: Cancel context 2021-02-24 10:27:28 -05:00
Adnan Maolood 991b18d526 examples/server: Add logging middleware 2021-02-24 10:25:08 -05:00
Adnan Maolood 1d20a6c3c8 examples/client: Use Response methods 2021-02-24 09:22:25 -05:00
Adnan Maolood 6f46b2fa47 examples/auth: Use Request.TLS method 2021-02-24 09:22:01 -05:00
Adnan Maolood f1f933925c Update examples/client.go 2021-02-23 17:52:34 -05:00
Adnan Maolood 31e16d5a4c examples/client: Stream response body 2021-02-23 15:56:44 -05:00
Adnan Maolood 09e3393e4c examples/stream: Simplify 2021-02-23 15:31:41 -05:00
Adnan Maolood 6de05c4b5d Update examples 2021-02-23 08:43:47 -05:00
Adnan Maolood 3b8b5d6557 examples/stream: Remove /shutdown handler 2021-02-22 21:16:13 -05:00
Adnan Maolood 9aebcd362e examples/server: Shutdown on interrupt signal 2021-02-22 21:14:41 -05:00
Adnan Maolood c5b304216c examples/stream: Remove usage of Flusher 2021-02-22 20:07:37 -05:00
Adnan Maolood 6c701ad9fe examples/stream: Showcase Server.Shutdown method 2021-02-21 00:29:41 -05:00
Adnan Maolood 7084a226f4 examples: Use context 2021-02-21 00:26:30 -05:00
Adnan Maolood 0baa66a4e7 Update examples 2021-02-20 18:30:49 -05:00
Adnan Maolood 8938038797 Make Status a type
Using a type is better than using an integer.
2021-02-20 16:16:32 -05:00
Adnan Maolood eca2afeb32 examples/client: Remove dependency on go-xdg 2021-02-20 15:42:06 -05:00
Adnan Maolood 28b6232fbf examples/client: Use context 2021-02-20 15:39:47 -05:00
Adnan Maolood 69674fcdd5 examples/server: Use certificate.Store 2021-02-19 18:45:19 -05:00
Adnan Maolood 7475687caa examples: Use Server.Handler 2021-02-17 20:35:27 -05:00
Adnan Maolood f81c32a211 examples: Use new ResponseWriter interface 2021-02-17 13:39:23 -05:00
Adnan Maolood a3c1804395 Move ResponseWriter.Flush to Flusher interface 2021-02-17 11:44:13 -05:00
Adnan Maolood 246b252fd7 examples/server: Use os.DirFS 2021-02-17 09:25:44 -05:00
Adnan Maolood 332dd253d0 Replace uses of ioutil with io 2021-02-16 18:57:24 -05:00
Adnan Maolood 7c1a5184c9 Update examples/auth.go 2021-02-16 11:26:09 -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 f6824bd813 Make ResponseWriter an interface 2021-02-09 09:46:18 -05:00
Adnan Maolood 5ef5824d6f Use plain integers to represent status codes 2021-02-09 09:46:13 -05:00
Adnan Maolood 3efa17f6fb Update examples 2021-01-25 10:59:50 -05:00
Adnan Maolood 31de8d49b0 Guarantee that (*Response).Body is not nil 2021-01-15 15:18:00 -05:00
Adnan Maolood 06c53cc5b1 server: Rename Register to Handle 2021-01-14 22:12:07 -05:00
Adnan Maolood 4b643523fb Update examples 2021-01-14 21:23:13 -05:00
Adnan Maolood ced6b06d76 Update examples/auth.go 2021-01-14 19:04:11 -05:00
Adnan Maolood 1a3974b3a3 Update examples/client.go 2021-01-14 17:28:03 -05:00
Hugo Wetterberg 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