is the live property read/write? */
| 286 | |
| 287 | /* is the live property read/write? */ |
| 288 | static int dav_rw_liveprop(dav_propdb *propdb, dav_elem_private *priv) |
| 289 | { |
| 290 | int propid = priv->propid; |
| 291 | |
| 292 | /* |
| 293 | ** Check the liveprop provider (if this is a provider-defined prop) |
| 294 | */ |
| 295 | if (priv->provider != NULL) { |
| 296 | return (*priv->provider->is_writable)(propdb->resource, propid); |
| 297 | } |
| 298 | |
| 299 | /* these are defined as read-only */ |
| 300 | if (propid == DAV_PROPID_CORE_lockdiscovery |
| 301 | #if DAV_DISABLE_WRITABLE_PROPS |
| 302 | || propid == DAV_PROPID_CORE_getcontenttype |
| 303 | || propid == DAV_PROPID_CORE_getcontentlanguage |
| 304 | #endif |
| 305 | || propid == DAV_PROPID_CORE_supportedlock |
| 306 | ) { |
| 307 | |
| 308 | return 0; |
| 309 | } |
| 310 | |
| 311 | /* these are defined as read/write */ |
| 312 | if (propid == DAV_PROPID_CORE_getcontenttype |
| 313 | || propid == DAV_PROPID_CORE_getcontentlanguage |
| 314 | || propid == DAV_PROPID_CORE_UNKNOWN) { |
| 315 | |
| 316 | return 1; |
| 317 | } |
| 318 | |
| 319 | /* |
| 320 | ** We don't recognize the property, so it must be dead (and writable) |
| 321 | */ |
| 322 | return 1; |
| 323 | } |
| 324 | |
| 325 | /* do a sub-request to fetch properties for the target resource's URI. */ |
| 326 | static void dav_do_prop_subreq(dav_propdb *propdb) |