diff options
| author | Calvin Morrison <calvin@pobox.com> | 2026-08-22 14:14:59 -0400 |
|---|---|---|
| committer | Calvin Morrison <calvin@pobox.com> | 2026-08-22 14:14:59 -0400 |
| commit | ebfe721eb065be1d33a13e03e40426c4b3adfad0 (patch) | |
| tree | 7873899b4935373e06150465dc217362b28c344b /fw/lib/svc/fw.ether0 | |
| parent | 08155ead7bf80308b4cb67063cc91e3e3679ce16 (diff) | |
pim: answer an invitation by writing to a file
echo ACCEPTED >events/uuid/<uid>/partstat now does it, on a backend
that can. caldav/fs fetches the object, rewrites only our own ATTENDEE
line and PUTs it back with If-Match; fastmail advertises
calendar-auto-schedule, so that single PUT both updates the copy and
sends the iMIP to the organiser. caps says read rsvp schedule and means
all three.
Two things that cost an hour between them. go-webdav strips the quotes
off an ETag when it parses the header, but If-Match wants an
entity-tag: a bare hex string gets 412, which reads exactly like losing
a race to another client. And the tree kept serving the old answer
right after a successful write, because RSVP resynced the backend
without rebuilding anything; a file that lies immediately after you
wrote it is worse than one that is slow.
-R uid:PARTSTAT answers one invitation without serving, which is what a
pim/rsvp wrapper wants to call.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'fw/lib/svc/fw.ether0')
0 files changed, 0 insertions, 0 deletions
