Commit Graph
100 Commits
Author SHA1 Message Date
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
Adnan Maolood 1490bf6a75 Update examples/auth.go 2020-11-03 16:29:39 -05:00
Adnan Maolood 610c6fc533 Add ErrorLog field to Server 2020-11-03 16:11:31 -05:00
Adnan Maolood 01670647d2 Add Subject option in CertificateOptions 2020-11-02 23:11:46 -05:00
Adnan Maolood 5b3194695f Store request certificate to prevent infinite loop 2020-11-02 13:47:07 -05:00
Adnan Maolood b6475aa7d9 server: Populate (*Request).Certificate field 2020-11-01 16:25:59 -05:00
Adnan Maolood cc372e8768 Prevent infinite loop in client requests 2020-11-01 15:14:56 -05:00
adnano 8e442146c3 Update examples/auth.go 2020-11-01 14:47:26 -05:00
adnano e4dea6f2c8 Refactor Certificate and Input functions 2020-11-01 14:35:03 -05:00
adnano b57ea57fec Don't expose DefaultClient 2020-11-01 14:27:49 -05:00
adnano c3fc9a4e9f examples: Tweak client and server timeouts 2020-11-01 14:20:24 -05:00
adnano 22d57dfc9e Update examples/cert.go 2020-11-01 14:19:18 -05:00
Adnan Maolood 12bdb2f997 Update examples/html.go 2020-11-01 00:58:34 -04:00