Commit Briefs

Omar Polo

fix parsing of Twstat


Omar Polo

stat: fix `mode' format

Select only the lower two and set the correct bit for directory entries. While the lower two bytes seems to behave just as on UNIX, the upper ones don't (at least on OpenBSD.)




Omar Polo

Tattach: handle aname ""

9front uses aname "" during Tattach, at least with 9fs without special arguments, so convert it to our current representation.


Omar Polo

fix format of Rstat

`count' should be a 2-byte (16-bit) value and we're not neither accounting for it nor sending it.


Omar Polo

client_send_listener: send correct peerid

fix typo in previous commit where `0' was used instead of peerid. Spotted by cage, thanks!


Omar Polo

add IMSG_CTL_DEBUG to debug the opened fid

meant to be used from kamictl to dump all the opened fid by every connection.


Omar Polo

listener: handle IMSG_CTL_LOG_VERBOSE

adjust the logging level and forward it to every client process so they can do so too.


Omar Polo

wstat: missing read for size

9p stat message have a leading 2 bytes long size field. It's meant to simplify the parsing, because while reading the contents of a directory it's necessary to know how much long an entry is, so the length field is present even in the Rstat reply and in the Twstat input. Previously we didn't consume that bit and thus mis-read all of the following fields.



Omar Polo

work around wstat limitation

the previous commit added an explicit check for extra data in messages. The problem is that wstat voluntarily skips reading some fields at the end, so the len will always be greater than zero!


Omar Polo

fail if the received packet is too long

This adds extra checks to every t* function: if the client sent too much data per message, treat is an a protocol violation and terminate the connection. Regress suite still passes, this is just an extra safety check for finding wrong clients implementations. The twrite function was the only one with a check like this.


Omar Polo

fix np_read{8,16,32,64} functions

they should return 0 on failure, not -1


Omar Polo

kamid: change fid fname size to NAME_MAX

the fname field is just the file name, so NAME_MAX is more appropriate. Committing this separately from the rename change so it's easier to roll back eventually.