Commits


ftp: add lpwd


ftp: add lcd


ftp: connect to !tls servers


more to do


Merge branch 'main' of ssh://omarpolo.com/kamid


- [regress-extra] added test to read a directory's entries.


improve documentation


implement bye/quit


- [regress-extra] added test for directory removing.


implement `bell' and `verbose'; set verbosity to 0


fix tremove wrt directories we can't call unlinkat with `.' as path, so the hackish solution (but also the only viable one I can see) is to unlinkat ../<dirname>. Furthermore, calling unlinkat(f->dir->fd, f->fpath) was incorrect because f->dir->fd already points to the directory.


s/HAVE_READLINE/HAVE_LIBREADLINE/


dis-entagle qids from the directory file descriptor I've been using the qid both as the 9p protocol element *and* as a wrapper with refcounting around a directory file descriptor. I can do better, let's split the qid struct into a "proper" qid and dir. Dir is now the wrapper with refcounting around the directory file descriptor and qid is just the 9p struct. fids are still associated with a dir, but now they store the directory name if they point to the directory. The previous pattern to detect if a fid is pointing to a dir thus changed: instead of assuming that fpath is "", look at the qid struct.


implement commands, add ls and tweak np_read* functions


add test "can't walk from a file"