Commits


load and optionally remember client certificates This adds use-certificate, a user function to start using a certificate or switch to a different one. It asks whether to persist the certificate, if not it will only be used for the current session. use-certificate is implicitly called when the server replies with a 6x status code.


first draft of client certificate support At the moment telescope loads a mapping host:port/path -> certificate from a file and always uses it, no ways to change it, use a temporary one, generate a new one, etc are provided yet. The format of ~/.telescope/certs/certs is host port path certificate file name where the certificate file name is the name of a file inside ~/.telescope/certs. ~/.telescope/certs/ is ~/.local/share/telescope/ when using XDG.


move fs_init() closer to config_init()


improve error message


too much -> too many redirects


remove imsg_borrow_str it's redundant due to ibuf_borrow_str()


send the reply code and meta in a single imsg


inline dispatch_imsg(); start to use some newer imsg api


save finger:// and gopher:// URLs to the history gemini is handled when the 2x reply is received. Gopher and Finger lack an equivalent, so call history_add() for them at EOF.


cache finger pages as well


removed -C/--colours flag


rework the history management It was a huge pile of spaghetti with useless utility functions and lots of code reaching into the "data structure" (if you can call it so) to do stuff. Instead, provide a "module" with a clean interface and noone reaching in the insides.


attempt to fix relative URLs Was broken in 2590504796 with the switch to the new APIs. The previous implementation accepted a parsed URL as base, while the new one takes a string and we pass NULL when we want to refer to the current URL...


use the new imsg_get_data() in a few places


fix handling of redirects with relative URLs