summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-08-31a gopher MapDocument is a MenuTypetjpcc
2023-08-31move gemtext->atom conversion into package atomconv like the other converterstjpcc
2023-08-26AutoAtom: early exit on any non-gemini requeststjpcc
2023-08-26AutoAtom: middleware that supports adding .atom to any gemtext pathv1.2.0tjpcc
2023-08-26GmisubToAtom: output result to any io.Writer rather than return a stringtjpcc
2023-08-26GmisubToAtom: update docs and names, add teststjpcc
2023-08-26gemtext -> atom convertertjpcc
* add GemsubToAtom converter function * add Server.Handler method and implementations fixes #1
2023-08-25add multi-client to READMEv1.1.0tjpcc
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