Commits


crank up cache limits delete pages that are older than one hour, and scan the cache only once every five minutes. The previous defaults were a bit too much conservative.


document cache-info


drop useless struct instead of keeping the struct mcache that's private to mcache.c and used only once, just define its fields as (static) variables. While here, mark as static also gemtext_prefixes.


timer-based cache removal: delete cached pages older than 15 minutes


simplify load_url_in_tab


sync changelog


add cache-info


cache: keep track of the total size and number of cached pages


mcache_tab: free previous copies of that page


rename util.c -> utils.c for consistency


move util.c declarations in utils.h it's not spelled `util.h' because otherwise it'd get included instead of /usr/include/util.h


de-duplicate hash_* function: collect them in util.c


save parser name across mcache_tab/mcache_lookup


simplify the caching API - don't expose the evbuffer where we store the cached page - cache to/from tabs instead of buffers


fix start_loading_animation usage the idiom if (load_next_page(...)) start_loading_anim(...); is fundamentally wrong because `load_next_page' (or previous page, or anything else that call into load_url) *may* load all the page before returning (thanks to the cache, but not only, cf. load_page_from_str.) Instead, let's call start_loadign_anim at the start of make_request so it's always called in the right moment. Cache and other special pages don't end up calling make_request anyway, and we already call stop_loading_anim when a request finishes (or fails.) move start_loading_anim up in make_request.