Author worr
Recipients Arfrever, benjamin.peterson, billyfoster, bob.ippolito, hynek, koobs, ned.deily, nicholas.riley, ronaldoussoren, worr
Date 2015-11-05.07:21:58
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1446708121.96.0.52518506842.issue12978@psf.upfronthosting.co.za>
In-reply-to
Content
After a considerable amount of rework, I've gotten something worth submitting. All unit tests pass, and it handles some of the more unfortunate differences between FreeBSD's extended attribute syscalls and Linux's.

One of the bigger changes is that I reworked the calls to getxattr and listxattr. These used to be called with a small buffer, and if the size of the extended attribute(s) exceeded the buffer length, we'd throw out that buffer and start again with a buffer of the maximum possible attribute size allocated.

I threw this out, and opted for always making two calls - one to get the size of the buffer, and one to actually get the contents (or list of attributes). This works the same for both FreeBSD and Linux. FreeBSD's extattr_get_* and extattr_list_* unfortunately only return the number of bytes read, *not* the number of bytes in the attribute value or the list. That means that there's no real way to determine if we've read less data than there is in the attribute.

This passes the unit tests (on FreeBSD 10.1). I'd be interested to see results from other users and comments.
History
Date User Action Args
2015-11-05 07:22:02worrsetrecipients: + worr, nicholas.riley, bob.ippolito, ronaldoussoren, benjamin.peterson, ned.deily, Arfrever, hynek, koobs, billyfoster
2015-11-05 07:22:01worrsetmessageid: <1446708121.96.0.52518506842.issue12978@psf.upfronthosting.co.za>
2015-11-05 07:22:01worrlinkissue12978 messages
2015-11-05 07:22:01worrcreate