Adnan Maolood
5ef5824d6f
Use plain integers to represent status codes
2021-02-09 09:46:13 -05:00
Adnan Maolood
9bfb007581
Update README.md
2021-02-08 12:53:37 -05:00
Adnan Maolood
7910ed433b
Rename Responder to Handler
2021-02-08 12:50:52 -05:00
Adnan Maolood
29f2b3738d
Make TLS field nil for unencrypted connections
2021-02-08 12:32:49 -05:00
Adnan Maolood
1f39cab063
Remove unused field
2021-02-08 12:30:53 -05:00
Adnan Maolood
62960266ac
tofu: Implement PersistentHosts
2021-01-25 12:11:59 -05:00
Adnan Maolood
3efa17f6fb
Update examples
2021-01-25 10:59:50 -05:00
Adnan Maolood
9e89b93bab
server: Allow handling any hostname with "*"
...
Allow registering a responder with the special pattern "*" to handle any
hostname.
2021-01-25 10:55:40 -05:00
Adnan Maolood
31de8d49b0
Guarantee that (*Response).Body is not nil
2021-01-15 15:18:00 -05:00
Adnan Maolood
2b17f3d8eb
fs: Remove unused import
2021-01-14 22:45:09 -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
Adnan Maolood
ad18ae601c
fs: Don't panic on mime.AddExtensionType error
...
It's probably best not to panic if this fails.
2021-01-14 22:25:09 -05:00
Adnan Maolood
8473f3b9d4
fs: Update comments
2021-01-14 22:24:26 -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
79a4dfd43f
certificate: Add Dir.Entries function
2021-01-14 21:19:27 -05:00
Adnan Maolood
14d89f304a
Move cert.go to a subpackage
2021-01-14 20:42:12 -05:00
Adnan Maolood
7a00539f75
tofu: Fix example
2021-01-14 19:57:52 -05:00
Adnan Maolood
a0adc42c95
tofu: Update documentation
2021-01-14 19:56:04 -05:00
Adnan Maolood
da8af5dbcb
tofu: Update documentation
2021-01-14 19:40:19 -05:00
Adnan Maolood
ced6b06d76
Update examples/auth.go
2021-01-14 19:04:11 -05:00
Adnan Maolood
4a0f8e5e73
tofu: Rename KnownHosts.Hosts to Entries
2021-01-14 18:52:43 -05:00
Adnan Maolood
e701ceff71
Add KnownHosts.Hosts function
2021-01-14 18:50:03 -05:00
Adnan Maolood
1a3974b3a3
Update examples/client.go
2021-01-14 17:28:03 -05:00
Adnan Maolood
3fd55c5cee
tofu: Add KnownHosts.Load function
2021-01-14 17:09:31 -05:00
Adnan Maolood
6f11910dff
tofu: Add NewHostsFile function
2021-01-14 16:54:38 -05:00
Adnan Maolood
da3e9ac0fe
tofu: Protect HostWriter with a mutex
2021-01-14 16:35:54 -05:00
Adnan Maolood
9fe837ffac
tofu: Refactor known hosts
...
This commit introduces the KnownHosts struct, whose purpose is simply to
store known hosts entries. The HostWriter struct is now in charge of
appending hosts to files, and the two are not dependent on each other.
Users are now responsible for opening the known hosts file and closing
it when they are finished with it.
2021-01-14 16:26:43 -05:00
Adnan Maolood
4b8bb16a3d
tofu: Rename KnownHost to Host
2021-01-14 14:15:08 -05:00
Adnan Maolood
d78052ce08
Move tofu.go to a subpackage
2021-01-10 16:46:12 -05:00
Adnan Maolood
1f2888c54a
Update documentation
2021-01-10 01:21:56 -05:00
Adnan Maolood
41d5f8d31b
Move documentation back to doc.go
2021-01-10 01:16:50 -05:00
Adnan Maolood
24026422b2
Update examples/stream.go
2021-01-10 01:13:07 -05:00
Adnan Maolood
5e977250ec
Update comments
2021-01-10 01:07:38 -05:00
Adnan Maolood
d8c5da1c7c
Update link to documentation
2021-01-10 00:55:39 -05:00
Adnan Maolood
d01d50ff1a
Simplify ResponseWriter implementation
2021-01-10 00:50:35 -05:00
Adnan Maolood
3ed39e62d8
Rename status.Message to status.Meta
2021-01-10 00:10:57 -05:00
Adnan Maolood
c8626bae17
client: Close connection for unsuccessful responses
2020-12-22 19:22:01 -05:00
Adnan Maolood
48fa6a724e
examples/client: Fix fingerprint check
2020-12-19 13:44:33 -05:00
Adnan Maolood
80ffa72863
client: Verify expiration time
2020-12-19 13:43:47 -05:00
Adnan Maolood
61b417a5c4
Add ResponseWriter.Flush function
2020-12-18 13:15:34 -05:00
Adnan Maolood
a912ef996a
Add examples/stream.go
2020-12-18 12:31:37 -05:00
Adnan Maolood
d9a690a98f
Make NewResponseWriter take an io.Writer
2020-12-18 01:47:29 -05:00
Adnan Maolood
04bd0f4520
Update Request documentation
2020-12-18 01:43:18 -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
c329a2487e
server: Don't always assume TLS is used
2020-12-18 01:02:04 -05:00
Adnan Maolood
df1794c803
examples: Add missing descriptions
2020-12-18 00:47:30 -05:00
Adnan Maolood
5af1acbd54
examples/html: Read from stdin and write to stdout
2020-12-18 00:45:09 -05:00
Adnan Maolood
36c2086c82
Remove unnecessary variable
2020-12-18 00:35:08 -05:00
Adnan Maolood
d52d0af783
Update QueryEscape documentation
2020-12-18 00:26:47 -05:00
Adnan Maolood
35836f2ff7
Remove Input function
2020-12-18 00:25:06 -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
ca35aadaea
examples/auth: Fix crash on changing username
2020-12-17 21:10:53 -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
a1dd8de337
Fix locking up of KnownHostsFile and CertificateDir
2020-12-17 17:15:24 -05:00
Adnan Maolood
7be0715d39
Use RWMutex instead of Mutex
2020-12-17 17:08:45 -05:00
Adnan Maolood
4704b8fbcf
Add missing imports
2020-12-17 17:07:00 -05:00
Adnan Maolood
aeafd57956
Make CertificateDir safe for concurrent use by multiple goroutines
2020-12-17 16:52:08 -05:00
Adnan Maolood
e687a05170
Make KnownHostsFile safe for concurrent use
2020-12-17 16:49:59 -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
24e488a4cb
examples/server: Increase certificate duration
2020-11-27 17:54:26 -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
3b9cc7f168
Update examples/auth.go
2020-11-25 19:10:01 -05:00
Adnan Maolood
3c7940f153
Fix known hosts expiration timestamps
2020-11-25 14:24:49 -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
cab23032c0
Don't assume a default scheme of gemini
2020-11-24 17:13:52 -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
f6b0443a62
Update KnownHosts documentation
2020-11-09 13:57:30 -05:00
Adnan Maolood
3dee6dcff3
Add (*CertificateStore).Write function
2020-11-09 13:54:15 -05:00
Adnan Maolood
85f8e84bd5
Rename (*ResponseWriter).SetMimetype to SetMediaType
2020-11-09 13:44:42 -05:00
Adnan Maolood
9338681256
Add (*KnownHosts).SetOutput function
2020-11-09 12:26:08 -05:00
Adnan Maolood
f2a1510375
Move documentation to gemini.go
2020-11-09 12:07:49 -05:00
Adnan Maolood
46cbcfcaa4
Remove top-level Get and Do functions
2020-11-09 12:04:53 -05:00
Adnan Maolood
76dfe257f1
Remove (*KnownHosts).LoadDefault function
2020-11-09 09:28:44 -05:00
Adnan Maolood
5332dc6280
Don't guarantee that (*Response).Body is always non-nil
2020-11-08 18:38:08 -05:00
Adnan Maolood
6b3cf1314b
Fix relative redirects
2020-11-07 23:43:07 -05:00
Adnan Maolood
fe92db1e9c
Allow redirects to non-gemini schemes
2020-11-06 11:18:58 -05:00
Adnan Maolood
ff6c95930b
Fix TOFU
2020-11-05 22:30:13 -05:00
Adnan Maolood
a5712c7705
Don't check if certificate is expired
2020-11-05 18:35:25 -05:00
Adnan Maolood
520d0a7fb1
Don't redirect by default
2020-11-05 15:44:01 -05:00
Adnan Maolood
bf185e4091
update examples/cert.go
2020-11-05 15:38:41 -05:00
Adnan Maolood
8101fbe473
Update examples/auth.go
2020-11-05 15:37:46 -05:00
Adnan Maolood
b76080c863
Refactor KnownHosts
2020-11-05 15:27:12 -05:00
Adnan Maolood
53390dad6b
Document CertificateOptions
2020-11-05 00:04:58 -05:00
Adnan Maolood
cec1f118fb
Remove some unnecessary errors
2020-11-04 23:46:05 -05:00
Adnan Maolood
95716296b4
Use ECDSA keys by default
2020-11-03 19:43:04 -05:00