ownCloud 9: birthday calendar not found



  • ownCloud 9.0 is recently out, and with the new version DAV is now built into core. The address was ../remote.php/caldav but are now changed to ../remote.php/dav

    Would it be possible to provide a patch for this or do I need to tell all my users (50 of them) to manually change the address?

    This is the DEBUG INFO:

    SYNCHRONIZATION INFO
    Synchronization phase: 1
    Account name: XXXXX
    Authority: com.android.calendar
    
    HTTP REQUEST:
    PROPFIND https://XXXX/remote.php/caldav/calendars/XXXXX/contact_birthdays/
    Content-Length: 300
    Content-Type: application/xml; charset=utf-8
    Depth: 0
    
    <?xml version='1.0' encoding='UTF-8' ?><propfind xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav" xmlns:CARD="urn:ietf:params:xml:ns:carddav"><prop><displayname /><n0:calendar-color xmlns:n0="http://apple.com/ns/ical/" /><n1:getctag xmlns:n1="http://calendarserver.org/ns/" /></prop></propfind>
    
    HTTP RESPONSE:
    http/1.1 404 Not Found
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Connection: keep-alive
    Content-Length: 294
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src *
    Content-Type: application/xml; charset=utf-8
    Date: Wed, 09 Mar 2016 00:15:34 GMT
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    OkHttp-Received-Millis: 1457482534107
    OkHttp-Sent-Millis: 1457482533903
    Pragma: no-cache
    Server: nginx/1.9.11
    Set-Cookie: oc106ccbdf7c=b5b4miplbl8i7d2onoq9vh72d3; path=/; HttpOnly
    Set-Cookie: oc_sessionPassphrase=pMTCPQvhS58VnpWtPej5MB1z4ySHMGTSEJPuXzzM%2FkOdPjGifjJxLW0tKmEhvnMrCJ49%2Bmp%2BH4AhLMI5GVPy2%2B2k2itHCAkNwiVMMaf%2B40JWvphlhFhHtDcJ0kMmLl%2Br; path=/; secure; httponly
    Set-Cookie: oc106ccbdf7c=k6lqllgqt0ustg7dobe04nau94; path=/; secure; HttpOnly
    Strict-Transport-Security: max-age=15768000;includeSubdomains
    X-Content-Type-Options: nosniff
    X-Download-Options: noopen
    X-Frame-Options: SAMEORIGIN
    X-Permitted-Cross-Domain-Policies: none
    X-Robots-Tag: none
    X-Sabre-Version: 3.0.7
    X-XSS-Protection: 1; mode=block
    
    <?xml version="1.0" encoding="utf-8"?>[LF]
    <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">[LF]
      <s:sabredav-version>3.0.7</s:sabredav-version>[LF]
      <s:exception>Sabre\DAV\Exception\NotFound</s:exception>[LF]
      <s:message>Node with name 'contact_birthdays' could not be found</s:message>[LF]
    </d:error>[LF]
    
    STACK TRACE:
    at.bitfire.dav4android.exception.NotFoundException: 404 Not Found
    at.bitfire.dav4android.exception.NotFoundException: 404 Not Found
    at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:273)
    at at.bitfire.dav4android.DavResource.checkStatus(DavResource.java:286)
    at at.bitfire.dav4android.DavResource.propfind(DavResource.java:250)
    at at.bitfire.davdroid.syncadapter.CalendarSyncManager.queryCapabilities(CalendarSyncManager.java:80)
    at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.java:145)
    at at.bitfire.davdroid.syncadapter.CalendarsSyncAdapterService$SyncAdapter.onPerformSync(CalendarsSyncAdapterService.java:58)
    at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259)
    
    SOFTWARE INFORMATION
    DAVdroid version: 0.9.1.3 (87) Sat Jan 02 11:24:54 CET 2016
    Installed from: com.android.vending
    JB Workaround installed: no
    
    CONFIGURATION
    System-wide synchronization: automatically
    Account: XXXX
      Address book sync. interval: 1440 min
      Calendar     sync. interval: 1440 min
      OpenTasks    sync. interval: 1440 min
    
    SYSTEM INFORMATION
    Android version: 4.4.4 (KTU84P.G318HXCU0AOI2)
    Device: Samsung SM-G318H (vivalto3mveml3g)
    

  • developer

    Hello,

    Would it be possible to provide a patch for this or do I need to tell all my users (50 of them) to manually change the address?

    There's no need for a patch. If the CalDAV server (URL) has changed, just remove the account and add it again.



  • This post is deleted!


  • @rfc2822 Hmm... did you read everything properly? That's exactly why I wanted a patch. - to not have to change it manually. :) Could you at least hardcode the new address in the next update?


  • developer

    Hello,

    @enoch85 said:

    @rfc2822 Hmm... did you read everything properly? That's exactly why I wanted a patch. - to not have to change it manually.

    I have read it, but I'm not sure that I understand it correctly. Are you asking for a patch in a CalDAV client, which

    • detects which server in which version is running on which URL,
    • whether the server is OwnCloud and its version changed from 8 to 9,
    • in which case, it tries out whether the new service URL is /remote.php/dav, but only if the old URL was /remote.php/caldav,

    just because some server software has changed its default URL?

    I can understand that it's cumbersome to change the URLs on all clients, but technically, you run a completely different service.

    If you want to minimize migration work, you may redirect /remote.php/{cal,card}dav to /remote.php/dav on your server (.htaccess) and use the new URLs only for new accounts (i.e. set them as well-known URLs).

    Could you at least hardcode the new address in the next update?

    The are no hardcoded URLs in DAVdroid, and I don't see any reason why there should be such.



  • @rfc2822 said:

    Hello,

    @enoch85 said:

    @rfc2822 Hmm... did you read everything properly? That's exactly why I wanted a patch. - to not have to change it manually.

    I have read it, but I'm not sure that I understand it correctly. Are you asking for a patch in a CalDAV client, which

    • detects which server in which version is running on which URL,
    • whether the server is OwnCloud and its version changed from 8 to 9,
    • in which case, it tries out whether the new service URL is /remote.php/dav, but only if the old URL was /remote.php/caldav,

    just because some server software has changed its default URL?

    I can understand that it's cumbersome to change the URLs on all clients, but technically, you run a completely different service.

    If you want to minimize migration work, you may redirect /remote.php/{cal,card}dav to /remote.php/dav on your server (.htaccess) and use the new URLs only for new accounts (i.e. set them as well-known URLs).

    Could you at least hardcode the new address in the next update?

    The are no hardcoded URLs in DAVdroid, and I don't see any reason why there should be such.

    Ok, sorry if I was unclear.

    • in which case, it tries out whether the new service URL is /remote.php/dav, but only if the old URL was /remote.php/caldav,

    Would be nice. Or does DAVdroid already do that?

    Maybe this issue report is hard to grasp (even I'm not sure what I'm asking for. But what I know is, I don't (and others with me) want to change an address manually. Especially when you have a lot of users.

    Could you interpret anything from the debug log? Maybe I should report this ipstream instead? Thank you for your support!


  • developer

    @enoch85 said:

    • in which case, it tries out whether the new service URL is /remote.php/dav, but only if the old URL was /remote.php/caldav,

    Would be nice. Or does DAVdroid already do that?

    No. DAVdroid doesn't contain hardcoded server info and it never will. That would be very bad design.

    Maybe this issue report is hard to grasp (even I'm not sure what I'm asking for. But what I know is, I don't (and others with me) want to change an address manually. Especially when you have a lot of users.

    "Changing the address" means removing a CalDAV/CardDAV service and adding another one at another address. You

    • will either have to add the accounts again,
    • or you can map the old URLs to the new URLs (301 Redirect /remote.php/{cal,card}dav to /remote.php/dav) in your Web server config – why don't you just do that? The new URLs will be used for new accounts anyway (assuming they're configured as well-known URLs).
    • or find a solution how to configure your OwnCloud to use the old service paths (/remote.php/{cal,card}dav) so that for clients, nothing changes. Maybe there's a configuration parameter.


  • @rfc2822 said:

    @enoch85 said:

    • in which case, it tries out whether the new service URL is /remote.php/dav, but only if the old URL was /remote.php/caldav,

    Would be nice. Or does DAVdroid already do that?

    No. DAVdroid doesn't contain hardcoded server info and it never will. That would be very bad design.

    Maybe this issue report is hard to grasp (even I'm not sure what I'm asking for. But what I know is, I don't (and others with me) want to change an address manually. Especially when you have a lot of users.

    "Changing the address" means removing a CalDAV/CardDAV service and adding another one at another address. You

    • will either have to add the accounts again,
    • or you can map the old URLs to the new URLs (301 Redirect /remote.php/{cal,card}dav to /remote.php/dav) in your Web server config – why don't you just do that? The new URLs will be used for new accounts anyway (assuming they're configured as well-known URLs).
    • or find a solution how to configure your OwnCloud to use the old service paths (/remote.php/{cal,card}dav) so that for clients, nothing changes. Maybe there's a configuration parameter.

    Alright then. Thanks for your support!


  • developer

    @enoch85 Will you redirect the URLs? In this case, can you please report whether that actually works? It should work, but I have never tried it.



  • @rfc2822 I'm very sorry. This turned out to be an upstream bug.: https://github.com/owncloud/core/pull/23035/files Thanks for great support and a great app.

    Everything works.


Log in to reply
 

Looks like your connection to Bitfire App Forums was lost, please wait while we try to reconnect.