summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-25support tls client configs in HTTP clienttjpcc
2023-08-12quick and dirty http[s] client in the multi-clienttjpcc
2023-08-12Revert "text fixes"tjpcc
This reverts commit 7efdcf9277c4a7be88179cb93d309d2f1e684fe6. except the error text fix, keep that.
2023-08-12multi-protocol clienttjpcc
Fixes #4
2023-08-12move common types to an internal packagetjpcc
This helps avoid import cycles.
2023-08-12finger protocol clienttjpcc
2023-08-12panic protectiontjpcc
avoid assuming finger request lines come with CRLF
2023-08-12text fixestjpcc
* trying again with drone-ci and OmitHost * typo in the InvalidFingerQuery error message
2023-08-12document maxredirects on clientstjpcc
2023-08-12avoid copying a tls.Configtjpcc
Fixes #5
2023-08-12add Fetch method to clients which follows redirectstjpcc
There are currently only gopher, gemini, and spartan clients. The finger client will have to implement this when it is written. The Fetch method takes the url as a string for convenience, and parses it into a URL for RoundTrip. Fixes #3
2023-05-22fix panic on bad finger requeststjpcc
2023-05-09fix gopher request parsing for clients which don't send CRLFtjpcc
2023-05-09correct direction of the binary search for dir default filestjpcc
2023-05-09correctly use path.Ext() resultstjpcc
2023-05-09InsecureSkipVerify and other improvements for the gemini fetch example codetjpcc
2023-05-09recognize gophermap files as menu types in dir listingstjpcc
2023-05-06don't start in-FS paths with ./tjpcc
this was tricky, it didn't fail until I got it on a FreeBSD host
2023-05-05README improvementstjpcc
2023-05-03now we should allow empty addresstjpcc
2023-05-03use sha256 for client cert fingerprints, and log them when availabletjpcc
2023-05-03include spartan in the protocols list in READMEtjpcc
2023-05-03TitanUpload middleware in contrib/fstjpcc
2023-05-03hide private files from the FStjpcc
- ResolveFile acts like ErrNotFound - ResolveDirectory acts like ErrNotFound - RenderDirectoryListing strips out dot-prefixed entries
2023-05-03linter fixestjpcc
2023-05-03add JoinDefaultPort for servers' configurationtjpcc
2023-05-02send request bodies into CGI handlerstjpcc
2023-05-02fix tests and examples to match the router.Handler() changetjpcc
2023-05-02simple handler dispatcher for hostname-based virtual hostingtjpcc
2023-05-01fix the router.Handler signaturetjpcc
2023-05-01name change in the CGI SERVER_SOFTWARE env vartjpcc
2023-05-01docstring fixtjpcc
2023-05-01exercise router code in an exampletjpcc
2023-05-01still log requests for which we failed to find a handlertjpcc
2023-05-01fixes to /*remainder route segmentstjpcc
2023-05-01include the time spent in the handler for the 'dur' log keyv1.0.0tjpcc
2023-05-01make spartan.Client.RoundTrip match the API of other clients.tjpcc
- Request.Meta is already used as an *io.LimitedReader in spartan servers, so by following this convention the RoundTrip method doesn't need anything more than the *Request. - Make a new public method for setting the body on a spartan request.
2023-05-01more README updatestjpcc
- lowercase the name everywhere - include a link back to gus
2023-05-01explain the nametjpcc
2023-05-01sliderule ascii arttjpcc
2023-05-01name change gus -> slideruletjpcc
2023-04-30spartan handler for a CGI directorytjpcc
2023-04-29spartan FS servertjpcc
2023-04-29spartan =: prompt line support in gemtexttjpcc
2023-04-29initial spartan client supporttjpcc
2023-04-29tests and bugfixes to spartan request parsingtjpcc
2023-04-29initial spartan server supporttjpcc
2023-04-29include a CSS class in htmlconv outputtjpcc
2023-02-15Switch Handler to an interface.tjpcc
HandlerFunc is much better as a function returning a Handler, rather than a newtype for the function type itself. This way there is no confusion creating a type-inferenced variable with HandlerFunc(func(... and then using a HandlerFunc where a Handler is expected. Much better to only have one public type.
2023-02-14no need to combine sub-router params any moretjpcc