On Wed, Jun 20, 2012 at 1:05 PM, Stefan Sperling <s...@elego.de> wrote: > On Wed, Jun 20, 2012 at 07:12:43AM -0400, Greg Stein wrote: >> Stefan: this should fix your "cat" problem. If the server is old, then >> it reports the property as missing. We don't examine the specific >> status results (tho we should, but then again: we don't talk to any >> servers but our own), so we just see <S:sha1-checksum/> where it names >> the property that was missing. >> >> Basically: a backwards-compat bug where we failed to work against old >> servers. Fixed. (and no, I won't point fingers at Ivan... oh. oops. >> :-P ) > > Thanks! I did try to debug this last night, and also found that the > sha1 checksum was an empty string. I wasn't sure though wether we could > treat NULL and the empty string equivalently. I believe I've seen code > where NULL indicates properly deletion, but an empty string just sets the > property to an empty value. Does this idiom not apply to ra_serf?
If you look at the entire XML response, it basically said "404 for the sha1-checksum property". ra_serf does not examine the associated status, so we just saw the mention of the property name, which translates to the empty string. We *should* parse the status to understand it is saying the property is not present, but that would be lots of effort for little return. (but yes: your NULL/empty understanding is correct and ra_serf doesn't stray from that) Cheers, -g