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
Adnan Maolood
e0ac1685d2
Fix server name in TLS connections
2020-11-27 17:45:15 -05:00
Adnan Maolood
82688746dd
Add context to requests
2020-11-26 00:42:25 -05:00
Adnan Maolood
8ee55ee009
Fix certificate fingerprint check
2020-11-25 14:20:31 -05:00
Adnan Maolood
7ee0ea8b7f
Use base64 to encode fingerprints
2020-11-25 14:16:51 -05:00
Adnan Maolood
ab1db34f02
Fix client locking up on redirects
2020-11-24 21:49:24 -05:00
Adnan Maolood
35e984fbba
Escape path character in certificate scopes
2020-11-24 20:24:38 -05:00
Adnan Maolood
4b653032e4
Make Client safe for concurrent use
2020-11-24 16:28:58 -05:00
Adnan Maolood
0c75e5d5ad
Expose KnownHosts and CertificateStore internals
2020-11-23 12:17:54 -05:00
Adnan Maolood
46cbcfcaa4
Remove top-level Get and Do functions
2020-11-09 12:04:53 -05:00