1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-05-06 17:06:06 +02:00
Commit Graph

141 Commits

Author SHA1 Message Date
Adnan Maolood fffe86680e client: Only get cert if TrustCertificate is set 2021-03-20 12:54:41 -04:00
Adnan Maolood d5af32e121 client: Close connection on error 2021-03-20 12:49:27 -04:00
Adnan Maolood bfa3356d3a client: Remove hostname verification check 2021-03-04 14:36:31 -05:00
Adnan Maolood 9f3564936e client: Ignore certificate expiration time 2021-03-04 14:35:51 -05:00
Adnan Maolood 768ec6c17b Make Request implement io.WriterTo 2021-02-28 22:16:38 -05:00
Adnan Maolood bd29d76f66 client: Fix copying of request 2021-02-24 09:48:23 -05:00
Adnan Maolood e8d98ef4ec Move I/O utilities to io.go 2021-02-23 20:49:55 -05:00
Adnan Maolood b3e8d9ccf3 client: Clarify usage of contexts 2021-02-23 18:56:18 -05:00
Adnan Maolood 02bbedc330 Update documentation 2021-02-23 18:45:58 -05:00
Adnan Maolood 83c904913f response: Add Conn and TLS methods 2021-02-23 16:36:17 -05:00
Adnan Maolood d07e9d99d1 client: Move context handling to do 2021-02-23 16:01:29 -05:00
Adnan Maolood 9974071657 client: Cancel context on IO errors
Also close the connection when the context expires.
2021-02-23 15:52:47 -05:00
Adnan Maolood 62e22b4cf2 response: Remove TLS field 2021-02-23 15:29:27 -05:00
Adnan Maolood d8b5fa716a client: Use present tense in documentation 2021-02-23 12:21:05 -05:00
Adnan Maolood 27299f537d client: Document use of contexts 2021-02-22 21:35:02 -05:00
Adnan Maolood 420f01da2a client: Remove Timeout
Clients should use context.WithTimeout instead.
2021-02-21 16:47:56 -05:00
Adnan Maolood 2ece48b019 Move punycode functions to client.go 2021-02-21 09:43:23 -05:00
Adnan Maolood a4b976c2dc client: Copy only what is needed from the Request 2021-02-21 09:41:00 -05:00
Adnan Maolood c4c616518b Add ErrCertificateExpired 2021-02-21 09:27:12 -05:00
Adnan Maolood 0c8c945eba client: Inline result type 2021-02-21 00:20:42 -05:00
Adnan Maolood 3f4fd10b6d client: Make Get and Do accept a Context
This removes the need for Request.Context.
2021-02-20 15:34:21 -05:00
Adnan Maolood 0ab236c736 client: Allow Request.Host to omit a port 2021-02-20 13:30:55 -05:00
Adnan Maolood 229ebb4106 request.Write: Accept an io.Writer 2021-02-18 21:58:37 -05:00
Adnan Maolood c70ef5c470 client: Remove superfluous call to Flush 2021-02-18 21:55:17 -05:00
Adnan Maolood dfa37aaeb8 client: Don't try to verify unicode hostname 2021-02-16 11:27:53 -05:00
Adnan Maolood 46e10da3a8 Make Request.Host optional 2021-02-14 19:02:34 -05:00
Adnan Maolood 20e1b14108 Update Client documentation 2021-02-14 17:11:05 -05:00
Adnan Maolood 7c703e95de Update documentation 2021-02-14 15:50:41 -05:00
Adnan Maolood d2c70a33d5 client: Punycode request URL 2021-02-09 16:55:14 -05:00
Adnan Maolood 79e0296bed client: Support IDNs
Convert IDNs to punycode before performing DNS lookups.
2021-02-09 15:59:47 -05:00
Adnan Maolood 29f2b3738d Make TLS field nil for unencrypted connections 2021-02-08 12:32:49 -05:00
Adnan Maolood 62960266ac tofu: Implement PersistentHosts 2021-01-25 12:11:59 -05:00
Adnan Maolood f36a1c5c87 client: Add note about TOFU 2021-01-14 22:34:12 -05:00
Adnan Maolood af61c1b60a fs: Update comments 2021-01-14 22:27:56 -05:00
Hugo Wetterberg de042e4724 client: set the client timout on the dialer, close connection on err
Client.Timout isn't respected for the dial. Requests will hang on dial
until OS-level timouts kick in unless there is a Request.Context with
a deadline. We also fail to close the connection on errors.

This change sets the client timeout as the dialer timeout so that it
will be respected. It also ensures that we close the connection if we
fail to make the request.
2021-01-13 17:13:56 -05:00
Hugo Wetterberg f2921a396f Add missing error handling
Error handling is currently missing is a couple of places. Most of
them are i/o related.

This change adds checks, an therefore sometimes also has to change
function signatures by adding an error return value. In the case of
the response writer the status and meta handling is changed and this
also breaks the API.

In some places where we don't have any reasonable I've added
assignment to a blank identifier to make it clear that we're ignoring
an error.

text: read the Err() that can be set by the scanner.

client: check if conn.SetDeadline() returns an error.

client: check if req.Write() returns an error.

fs: panic if mime type registration fails.

server: stop performing i/o in Header/Status functions

By deferring the actual header write to the first Write() or Flush()
call we don't have to do any error handling in Header() or Status().

As Server.respond() now defers a ResponseWriter.Flush() instead of
directly flushing the underlying bufio.Writer this has the added
benefit of ensuring that we always write a header
to the client, even if the responder is a complete NOOP.

tofu: return an error if we fail to write to the known hosts writer.
2021-01-09 23:53:07 -05:00
Adnan Maolood 80ffa72863 client: Verify expiration time 2020-12-19 13:43:47 -05:00
Adnan Maolood d34d5df89e Add ReadRequest and ReadResponse functions 2020-12-18 01:42:05 -05:00
Adnan Maolood decd72cc23 Expose Request.Write and Response.Read functions 2020-12-18 01:14:06 -05:00
Adnan Maolood 36c2086c82 Remove unnecessary variable 2020-12-18 00:35:08 -05:00
Adnan Maolood 824887eab9 Remove Response.Request field 2020-12-18 00:19:53 -05:00
Adnan Maolood e2c907a7f6 client: Remove GetInput and CheckRedirect callbacks 2020-12-18 00:12:32 -05:00
Adnan Maolood a09cb5a23c Update switch statement 2020-12-17 23:03:33 -05:00
Adnan Maolood 7ca7053f66 client: Remove GetCertificate callback 2020-12-17 22:56:48 -05:00
Adnan Maolood 805a80dddf Update GetCertificate documentation 2020-12-17 19:54:46 -05:00
Adnan Maolood 28c5c857dc Decouple Client from KnownHostsFile 2020-12-17 19:50:26 -05:00
Adnan Maolood 176b260468 Allow Request.Context to be nil 2020-12-17 17:16:55 -05:00
Adnan Maolood 846fa2ac41 client: Add GetCertificate callback 2020-12-17 16:46:16 -05:00
Adnan Maolood 611a7d54c0 Revert to using hexadecimal to encode fingerprints 2020-12-16 23:58:02 -05:00
Adnan Maolood 16739d20d0 Fix escaping of queries 2020-11-27 22:27:52 -05:00