Commit Briefs

Omar Polo

move declarations from telescope.h in fs.h

and while there also publish various path. It's easier and better to have all of them exported from here instead of hardcoding them in other files (such as sandbox.c)


Omar Polo

dirname fix

dirname(3) is really one of the worst part of POSIX, portability-wise. Implementors can decide to either modify the passed string or return a pointer to an internal storage. The current code fails when dirname returns a pointer to an internal storage because between the strcmp call and the mkdir we go into a recursion that can modify `path'. We can't use copy either because *some* implementation of dirname would have changed that. How to escape from this hell? Take yet another copy of the path!


Omar Polo

support xdg basedir

Use XDG-compliant paths unless ~/.telescope already exists. Provide a script to migrate to XDG-style directory for users who wish to do so.


Omar Polo

delete old (and wrong) comment

it's been a while since we're using a lockfile to protect against multiple telescope instances.


Omar Polo

sort includes


Omar Polo

ignore the crashed file if in safe_mode

During safe_mode the fs process shouldn't open or unlink the crashed_file.


Omar Polo

improve crash detection

Create a file ~/.telescope/crashed on startup and unlink it on shutdown. If it's present on startup, it means that last time we crashed. It's like the ``dirty'' bit on filesystems to guard for unproper unmounts.


Omar Polo

improve error reporting



Omar Polo

skip "." (and ".." if in /)


Omar Polo

generate directory listings


Omar Polo

handle IMSG_GET_FILE: serve local files

IMSG_GET_FILE handles a path to a local file. fs now behaves like net, it sends a IMSG_GOT_CODE/META and optionally the file. This also includes a bit of refactoring: the send_file function was extracted from handle_get so it can be used in handle_get_file too.


Omar Polo

always include compat.h first