Blob


1 Stuff that's still to-do
2 ========================
5 - compile with -D_FILE_OFFSET_BITS=64 on linux.
6 related: this is needed only for glibc or musl too?
8 - (possibly related) find out what pread(2) black magic we can do to
9 read stuff on 32 bits portably.
11 - rework the ninepscript so tests are parsed and executed by the _kamid
12 user and not by root.
14 - tweak iounit so it's always lower than the choosen msize?
16 - fill user and group name in struct stat. The problem is that, being
17 chrooted, we don't have access to /etc/passwd nor /etc/group. We
18 could use setpassent(3) and setgroupent(3), but if they change in the
19 meantime we can't do anything. Another solution would be to not
20 to chroot(2) and just switch to the targeted user.
22 - find a way to avoid opening directories twice. During a walk
23 we open the directories, but if later we try to open that fid,
24 we end up re-opening the same directory again! It's not easy
25 to avoid because we need to fdopendir(3) and upon closedir it'll
26 close the file descriptor, while the same file descriptor could
27 be shared with other fids (f->dir is a shared read-only resource).
28 One solution may be to not use readdir and roll our own on top
29 of getdents(2) and lseek(2), but that may not be portable.
31 - reply with an Rerror in kamid/listener.c:/^client_read when we get
32 an invalid message (too big or too small) before closing the
33 connection.
35 - how (if) handle serialize_stat overflow? If the info for the file
36 we want to give don't fit inside 16 bit we're currently either
37 skipping the file entry (if during a directory read) or return an
38 error (during Tstat.)
40 - artworks! I'd like for every release of kamid to be accompanied by a
41 hand-drawed artwork, so some artworks for future releases are welcome!
42 See the art/ directory for previous versions.