Mailing List Archive

iCal and 0.9.7-2
Hi there,

I am running davical 0.9.7-2 on a CentOS 5.3 box with php 5.3 packages from the
remi yum repository.

I have ssl and ldap integration working fine and I can add calendar events to user
accounts using sunbird without any apparent issues using the url
https://calendar.thefoundry.co.uk/dan/Home/.

However, whenever I try to add an account into iCal 3.0 (Leopard) or iCal 4.0
(Snow Leopard) I get the following error:

"Request encountered an unexpected error (domain CalDAV no Calendar Home Error /
code 1)."

If I try and subscribe to the calendar https://calendar.thefoundry.co.uk/dan/Home/
I get the error:

"Error subscribing to calendar
Data downloaded from https://calendar.thefoundry.co.uk/dan/Home/ is not valid."

The debug output from my logs is below. I have also included my config. Any help
would be greatly appreciated. I notice that there are locale errors. If I set
the locale in the config to anything other than empty the web server no longer
serves up the pages. Perhaps this is related?

My configuration (pasted as quotation to try and stop wrapping).

> <?php
> $c->dbg["ALL"] = 1;
>
> $c->domain_name = "calendar.thefoundry.co.uk";
> $c->base_directory = "/";
> $c->sysabbr = 'DAViCal';
> $c->admin_email = 'sysadmin at thefoundry.co.uk';
> $c->system_name = "The Foundry DAViCal Server";
> $c->enable_row_linking = true;
> $c->pg_connect[] = 'dbname=davical port=5432 user=davical_app';
> //$c->default_locale = "en_GB"
> $c->local_tzid = "Europe/London";
>
> /**
> * The "collections_always_exist" value defines whether a MKCALENDAR
> * command is needed to create a calendar collection before calendar
> * resources can be stored in it. You will want to leave this to the
> * default (true) if people will be using Evolution or Sunbird /
> * Lightning against this because that software does not support the
> * creation of calendar collections.
> * Default: true
> */
> $c->collections_always_exist = false;
>
> /**
> * The name of a user's "home" calendar. This will be created for each
> * new user.
> * Default: 'home'
> */
> $c->home_calendar_name = 'Home';
>
> $c->readonly_webdav_collections = true;
>
> $c->authenticate_hook['call'] = 'LDAP_check';
> $c->authenticate_hook['config'] = array(
> 'host' => 'ldap.thefoundry.co.uk', //host name of your LDAP Server
> 'port' => '389', //port
> 'baseDNUsers'=> 'ou=People,dc=thefoundry,dc=co,dc=uk', //where to look for valid user
> 'protocolVersion' => 3, // important for simple auth (no sasl)
> 'filterUsers' => 'employeeNumber=*',
> 'mapping_field' => array("username" => "uid",
> "updated" => "modifyTimestamp",
> "fullname" => "cn" ,
> "email" => "mail" ,
> "user_no" => "uidNumber"
> ), //used to create the user based on his LDAP properties
> 'format_updated'=> array('Y' => array(0,4),
> 'm' => array(4,2),
> 'd' => array(6,2),
> 'H' => array(8,2),
> 'M' => array(10,2),
> 'S' => array(12,2)), // map LDAP "modifyTimestamp" field to SQL "updated" field
> );
> # 'bindDN'=> '<BIND-CONTAINER/USERNAME>', //DN to bind request to this server (if required)
> # 'passDN'=> '<PASSWORD>', //Password of request bind
> include('drivers_ldap.php');

Log output when connecting with iCal 3.0 (again, pasted as quotation to try and
stop wrapping).

> [client 192.9.200.43] DAViCal: LOG: :==========> method =PROPFIND= =https://calendar.thefoundry.co.uk= == == =/=
> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: : >>0<< = >>en<<
> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: : >>1<< = >>en.UTF-8<<
> [client 192.9.200.43] DAViCal: ALL: caldav:Version (0.9.7) == 9.7
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1;
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000986 for SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1; to find 1 rows.
> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #13 Rows: 1, Rownum: -1
> [client 192.9.200.43] DAViCal: ALL: caldav: User agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_URL<< = >>/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_URI<< = >>https://calendar.thefoundry.co.uk/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTPS<< = >>on<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_HOST<< = >>calendar.thefoundry.co.uk<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_USER_AGENT<< = >>DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>CONTENT_TYPE<< = >>text/xml<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_DEPTH<< = >>0<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>CONTENT_LENGTH<< = >>374<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_CONNECTION<< = >>close<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PATH<< = >>/sbin:/usr/sbin:/bin:/usr/bin<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_SIGNATURE<< = >><address>Apache/2.2.3 (Red Hat) Server at calendar.thefoundry.co.uk Port 443</address>\n<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_SOFTWARE<< = >>Apache/2.2.3 (Red Hat)<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_NAME<< = >>calendar.thefoundry.co.uk<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_ADDR<< = >>192.9.210.30<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_PORT<< = >>443<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REMOTE_ADDR<< = >>192.9.200.43<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>DOCUMENT_ROOT<< = >>/usr/share/davical/htdocs/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_ADMIN<< = >>root at localhost<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_FILENAME<< = >>/usr/share/davical/htdocs/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REMOTE_PORT<< = >>51982<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>GATEWAY_INTERFACE<< = >>CGI/1.1<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_PROTOCOL<< = >>HTTP/1.1<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_METHOD<< = >>PROPFIND<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>QUERY_STRING<< = >><<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_URI<< = >>/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_NAME<< = >>/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PHP_SELF<< = >>/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_TIME<< = >>1254835499<<
> [client 192.9.200.43] DAViCal: ALL: HTTPAuth::Session: User is not authorised
> [client 192.9.200.43] DAViCal: LOG: :==========> method =PROPFIND= =https://calendar.thefoundry.co.uk= == == =/=
> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: : >>0<< = >>en<<
> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: : >>1<< = >>en.UTF-8<<
> [client 192.9.200.43] DAViCal: ALL: caldav:Version (0.9.7) == 9.7
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1;
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000917 for SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1; to find 1 rows.
> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #13 Rows: 1, Rownum: -1
> [client 192.9.200.43] DAViCal: ALL: caldav: User agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_URL<< = >>/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_URI<< = >>https://calendar.thefoundry.co.uk/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTPS<< = >>on<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_HOST<< = >>calendar.thefoundry.co.uk<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_USER_AGENT<< = >>DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>CONTENT_TYPE<< = >>text/xml<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_DEPTH<< = >>0<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>CONTENT_LENGTH<< = >>374<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>HTTP_CONNECTION<< = >>close<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PATH<< = >>/sbin:/usr/sbin:/bin:/usr/bin<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_SIGNATURE<< = >><address>Apache/2.2.3 (Red Hat) Server at calendar.thefoundry.co.uk Port 443</address>\n<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_SOFTWARE<< = >>Apache/2.2.3 (Red Hat)<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_NAME<< = >>calendar.thefoundry.co.uk<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_ADDR<< = >>192.9.210.30<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_PORT<< = >>443<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REMOTE_ADDR<< = >>192.9.200.43<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>DOCUMENT_ROOT<< = >>/usr/share/davical/htdocs/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_ADMIN<< = >>root at localhost<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_FILENAME<< = >>/usr/share/davical/htdocs/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REMOTE_PORT<< = >>51983<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>GATEWAY_INTERFACE<< = >>CGI/1.1<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SERVER_PROTOCOL<< = >>HTTP/1.1<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_METHOD<< = >>PROPFIND<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>QUERY_STRING<< = >><<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_URI<< = >>/<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>SCRIPT_NAME<< = >>/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PHP_SELF<< = >>/index.php<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PHP_AUTH_USER<< = >>dan<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>PHP_AUTH_PW<< = >>myuserpassword<<
> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER: >>REQUEST_TIME<< = >>1254835499<<
> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Connected to LDAP server ldap.thefoundry.co.uk
> [client 192.9.200.43] DAViCal: ALL: LDAP:checking user dan for password myuserpassword against LDAP
> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Found a user using filter (&(employeeNumber=*)(uid=dan))
> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Bound to user uid=dan,ou=People,dc=thefoundry,dc=co,dc=uk using password myuserpassword
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan')
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.001368 for SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan') to find 1 rows.
> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #21 Rows: 1, Rownum: -1
> [client 192.9.200.43] DAViCal: LOG: BasicAuth: Query: DBGQ: SELECT role_name FROM role_member m join roles r ON r.role_no = m.role_no WHERE user_no = E'1699'
> [client 192.9.200.43] DAViCal: LOG: BasicAuth: Query: DBGQ: Took: 0.000465 for SELECT role_name FROM role_member m join roles r ON r.role_no = m.role_no WHERE user_no = E'1699' to find 0 rows.
> [client 192.9.200.43] DAViCal: LOG: :***************** Request Header ****************
> [client 192.9.200.43] DAViCal: LOG: :PROPFIND /
> [client 192.9.200.43] DAViCal: LOG: headers:-->Host: calendar.thefoundry.co.uk
> [client 192.9.200.43] DAViCal: LOG: headers:-->User-Agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
> [client 192.9.200.43] DAViCal: LOG: headers:-->Authorization: Basic ZGFuOmdxbXBlZzY=
> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-Type: text/xml
> [client 192.9.200.43] DAViCal: LOG: headers:-->Depth: 0
> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-Length: 374
> [client 192.9.200.43] DAViCal: LOG: headers:-->Connection: close
> [client 192.9.200.43] DAViCal: LOG: :******************** Request ********************
> [client 192.9.200.43] DAViCal: LOG: request:--><?xml version="1.0" encoding="utf-8"?>
> [client 192.9.200.43] DAViCal: LOG: request:--><x0:propfind xmlns:x2="http://calendarserver.org/ns/" xmlns:x1="urn:ietf:params:xml:ns:caldav" xmlns:x0="DAV:">
> [client 192.9.200.43] DAViCal: LOG: request:--> <x0:prop>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:calendar-home-set/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:calendar-user-address-set/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:schedule-inbox-URL/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:schedule-outbox-URL/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x2:dropbox-home-URL/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x2:notifications-URL/>
> [client 192.9.200.43] DAViCal: LOG: request:--> <x0:displayname/>
> [client 192.9.200.43] DAViCal: LOG: request:--> </x0:prop>
> [client 192.9.200.43] DAViCal: LOG: request:--></x0:propfind>
> [client 192.9.200.43] DAViCal: LOG: caldav: Query: DBGQ: SELECT * FROM collection WHERE dav_name = E'/'ORDER BY LENGTH(dav_name) DESC LIMIT 1
> [client 192.9.200.43] DAViCal: LOG: caldav: Query: DBGQ: Took: 0.000512 for SELECT * FROM collection WHERE dav_name = E'/'ORDER BY LENGTH(dav_name) DESC LIMIT 1 to find 0 rows.
> [client 192.9.200.43] DAViCal: ALL: caldav: Collection '/' is -1, type root
> [client 192.9.200.43] DAViCal: ALL: principal:Finding Principal from path: "/", options.allow_by_email: ""
> [client 192.9.200.43] DAViCal: ALL: principal:No useful path split possible
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan')
> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000205 for SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan') to find 1 rows.
> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #29 Rows: 1, Rownum: -1
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT * FROM relationship LEFT JOIN usr ON (from_user = usr.user_no) LEFT JOIN role_member ON (to_user = role_member.user_no) LEFT JOIN roles USING (role_no) WHERE to_user = E'1699' AND role_name = 'Group'
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000760 for SELECT * FROM relationship LEFT JOIN usr ON (from_user = usr.user_no) LEFT JOIN role_member ON (to_user = role_member.user_no) LEFT JOIN roles USING (role_no) WHERE to_user = E'1699' AND role_name = 'Group' to find 0 rows
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: .
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT * FROM relationship LEFT JOIN usr ON (to_user = user_no) LEFT JOIN role_member USING (user_no) LEFT JOIN roles USING (role_no) WHERE from_user = E'1699' AND role_name = 'Group'
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000598 for SELECT * FROM relationship LEFT JOIN usr ON (to_user = user_no) LEFT JOIN role_member USING (user_no) LEFT JOIN roles USING (role_no) WHERE from_user = E'1699' AND role_name = 'Group' to find 0 rows.
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT from_user.user_no AS from_user_no, from_user.username AS from_username,get_permissions(from_user.user_no, to_user.user_no) AS confers,to_user.user_no AS to_user_no, to_user.username AS to_username FROM usr from_user, usr to_user WHER
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: E get_permissions(from_user.user_no, to_user.user_no) ~ '[AWR]' AND to_user.user_no != from_user.user_no AND (from_user.user_no = E'1699' OR to_user.user_no = E'1699')
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.004241 for SELECT from_user.user_no AS from_user_no, from_user.username AS from_username,get_permissions(from_user.user_no, to_user.user_no) AS confers,to_user.user_no AS to_user_no, to_user.username AS to_username FROM usr from_use
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: r, usr to_user WHERE get_permissions(from_user.user_no, to_user.user_no) ~ '[AWR]' AND to_user.user_no != from_user.user_no AND (from_user.user_no = E'1699' OR to_user.user_no = E'1699') to find 0 rows.
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT dav_name FROM collection WHERE user_no = E'1699' AND is_calendar
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000167 for SELECT dav_name FROM collection WHERE user_no = E'1699' AND is_calendar to find 1 rows.
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: Fetch: Resource id #33 Rows: 1, Rownum: -1
> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: Fetch: Resource id #33 Rows: 1, Rownum: 0
> [client 192.9.200.43] DAViCal: ALL: principal:User: dan (1699) URL: /caldav.php/dan/, Home: Array, By Email: 0
> [client 192.9.200.43] DAViCal: ALL: caldav:Read permissions for user accessing /
> [client 192.9.200.43] DAViCal: ALL: caldav: Parsed incoming XML request body.
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:method handler
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "0" => "DAV::propfind"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: open -> DAV::propfind
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "1" => "DAV::prop"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: open -> DAV::prop
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "2" => "urn:ietf:params:xml:ns:caldav:calendar-home-set"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:calendar-home-set"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "3" => "urn:ietf:params:xml:ns:caldav:calendar-user-address-set"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:calendar-user-address-set"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "4" => "urn:ietf:params:xml:ns:caldav:schedule-inbox-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:schedule-inbox-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "5" => "urn:ietf:params:xml:ns:caldav:schedule-outbox-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:schedule-outbox-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "6" => "http://calendarserver.org/ns/:dropbox-home-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding arbitrary property "http://calendarserver.org/ns/:dropbox-home-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "7" => "http://calendarserver.org/ns/:notifications-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding arbitrary property "http://calendarserver.org/ns/:notifications-URL"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "8" => "DAV::displayname"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "DAV::displayname"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "9" => "DAV::prop"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: close -> DAV::prop
> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "10" => "DAV::propfind"
> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: close -> DAV::propfind
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Getting collection: Depth 0, User: 1699, Path: /
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Building XML Response for collection "/" (0)
> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding principal properties
> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: DBGQ: SELECT property_name, property_value FROM property WHERE dav_name=E'/' AND property_name IN (E'http://calendarserver.org/ns/:dropbox-home-URL', E'http://calendarserver.org/ns/:notifications-URL')
> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: DBGQ: Took: 0.000722 for SELECT property_name, property_value FROM property WHERE dav_name=E'/' AND property_name IN (E'http://calendarserver.org/ns/:dropbox-home-URL', E'http://calendarserver.org/ns/:notifications-URL') to find 0 rows.
> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: Fetch: Resource id #38 Rows: 0, Rownum: -1
> [client 192.9.200.43] DAViCal: ALL: XMLDocument:auto-assigning prefix of 'C1' for ns of 'http://calendarserver.org/ns/'
> [client 192.9.200.43] DAViCal: LOG: :***************** Response Header ****************
> [client 192.9.200.43] DAViCal: LOG: headers:-->X-Powered-By: PHP/5.3.0
> [client 192.9.200.43] DAViCal: LOG: headers:-->Server: 0.9
> [client 192.9.200.43] DAViCal: LOG: headers:-->DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
> [client 192.9.200.43] DAViCal: LOG: headers:-->ETag: "4381616d809371fd4d8824bbb31de5a7"
> [client 192.9.200.43] DAViCal: LOG: headers:-->X-DAViCal-Version: DAViCal/0.9.7; DB/1.2.5
> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-type: text/xml; charset="utf-8"
> [client 192.9.200.43] DAViCal: LOG: :******************** Response ********************
> [client 192.9.200.43] DAViCal: LOG: response:--><?xml version="1.0" encoding="utf-8" ?>
> [client 192.9.200.43] DAViCal: LOG: response:--><multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:C1="http://calendarserver.org/ns/">
> [client 192.9.200.43] DAViCal: LOG: response:--> <response>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> <propstat>
> [client 192.9.200.43] DAViCal: LOG: response:--> <prop>
> [client 192.9.200.43] DAViCal: LOG: response:--> <displayname>The Foundry DAViCal Server</displayname>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C:calendar-home-set>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> </C:calendar-home-set>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C:schedule-inbox-URL>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/.in/</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> </C:schedule-inbox-URL>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C:schedule-outbox-URL>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/.out/</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> </C:schedule-outbox-URL>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C:calendar-user-address-set>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>mailto%3Adan%40thefoundry.co.uk</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/</href>
> [client 192.9.200.43] DAViCal: LOG: response:--> </C:calendar-user-address-set>
> [client 192.9.200.43] DAViCal: LOG: response:--> </prop>
> [client 192.9.200.43] DAViCal: LOG: response:--> <status>HTTP/1.1 200 OK</status>
> [client 192.9.200.43] DAViCal: LOG: response:--> </propstat>
> [client 192.9.200.43] DAViCal: LOG: response:--> <propstat>
> [client 192.9.200.43] DAViCal: LOG: response:--> <prop>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C1:dropbox-home-URL/>
> [client 192.9.200.43] DAViCal: LOG: response:--> <C1:notifications-URL/>
> [client 192.9.200.43] DAViCal: LOG: response:--> </prop>
> [client 192.9.200.43] DAViCal: LOG: response:--> <status>HTTP/1.1 404 Not Found</status>
> [client 192.9.200.43] DAViCal: LOG: response:--> </propstat>
> [client 192.9.200.43] DAViCal: LOG: response:--> </response>
> [client 192.9.200.43] DAViCal: LOG: response:--></multistatus>
> [client 192.9.200.43] DAViCal: LOG: response:-->
> [client 192.9.200.43] DAViCal: ALL: caldav:Status: 207, Message: <?xml version="1.0" encoding="utf-8" ?> <multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:ca..., User: 1699, Path: /

Many thanks,

Dan.
--
Dan Alderman
Systems Manager
The Foundry, 1 Wardour Street, London. W1D 6PA
Tel: +44 (0)20 7434 0449 - Fax: +44 (0)20 7434 1550
Direct: +44 (0)20 7255 8557
Web: www.thefoundry.co.uk
Email: dan at thefoundry.co.uk

The Foundry Visionmongers Ltd.
Registered in England and Wales No: 4642027
iCal and 0.9.7-2 [ In reply to ]
It seems removing the config entry

php_value default_charset "utf-8"

from the apache virtual host and making sure the config file had no trailing
newlines has cured it.

Thanks,

D.

On 10/06/2009 02:46 PM, Dan Alderman wrote:
> Hi there,
>
> I am running davical 0.9.7-2 on a CentOS 5.3 box with php 5.3 packages from the
> remi yum repository.
>
> I have ssl and ldap integration working fine and I can add calendar events to user
> accounts using sunbird without any apparent issues using the url
> https://calendar.thefoundry.co.uk/dan/Home/.
>
> However, whenever I try to add an account into iCal 3.0 (Leopard) or iCal 4.0
> (Snow Leopard) I get the following error:
>
> "Request encountered an unexpected error (domain CalDAV no Calendar Home Error /
> code 1)."
>
> If I try and subscribe to the calendar https://calendar.thefoundry.co.uk/dan/Home/
> I get the error:
>
> "Error subscribing to calendar
> Data downloaded from https://calendar.thefoundry.co.uk/dan/Home/ is not valid."
>
> The debug output from my logs is below. I have also included my config. Any help
> would be greatly appreciated. I notice that there are locale errors. If I set
> the locale in the config to anything other than empty the web server no longer
> serves up the pages. Perhaps this is related?
>
> My configuration (pasted as quotation to try and stop wrapping).
>
>> <?php
>> $c->dbg["ALL"] = 1;
>>
>> $c->domain_name = "calendar.thefoundry.co.uk";
>> $c->base_directory = "/";
>> $c->sysabbr = 'DAViCal';
>> $c->admin_email = 'sysadmin at thefoundry.co.uk';
>> $c->system_name = "The Foundry DAViCal Server";
>> $c->enable_row_linking = true;
>> $c->pg_connect[] = 'dbname=davical port=5432 user=davical_app';
>> //$c->default_locale = "en_GB"
>> $c->local_tzid = "Europe/London";
>>
>> /**
>> * The "collections_always_exist" value defines whether a MKCALENDAR
>> * command is needed to create a calendar collection before calendar
>> * resources can be stored in it. You will want to leave this to the
>> * default (true) if people will be using Evolution or Sunbird /
>> * Lightning against this because that software does not support the
>> * creation of calendar collections.
>> * Default: true
>> */
>> $c->collections_always_exist = false;
>>
>> /**
>> * The name of a user's "home" calendar. This will be created for each
>> * new user.
>> * Default: 'home'
>> */
>> $c->home_calendar_name = 'Home';
>>
>> $c->readonly_webdav_collections = true;
>>
>> $c->authenticate_hook['call'] = 'LDAP_check';
>> $c->authenticate_hook['config'] = array(
>> 'host' => 'ldap.thefoundry.co.uk', //host name of your LDAP Server
>> 'port' => '389', //port
>> 'baseDNUsers'=> 'ou=People,dc=thefoundry,dc=co,dc=uk', //where to look for valid user
>> 'protocolVersion' => 3, // important for simple auth (no sasl)
>> 'filterUsers' => 'employeeNumber=*',
>> 'mapping_field' => array("username" => "uid",
>> "updated" => "modifyTimestamp",
>> "fullname" => "cn" ,
>> "email" => "mail" ,
>> "user_no" => "uidNumber"
>> ), //used to create the user based on his LDAP properties
>> 'format_updated'=> array('Y' => array(0,4),
>> 'm' => array(4,2),
>> 'd' => array(6,2),
>> 'H' => array(8,2),
>> 'M' => array(10,2),
>> 'S' => array(12,2)), // map LDAP "modifyTimestamp" field to SQL "updated" field
>> );
>> # 'bindDN'=> '<BIND-CONTAINER/USERNAME>', //DN to bind request to this server (if required)
>> # 'passDN'=> '<PASSWORD>', //Password of request bind
>> include('drivers_ldap.php');
>
> Log output when connecting with iCal 3.0 (again, pasted as quotation to try and
> stop wrapping).
>
>> [client 192.9.200.43] DAViCal: LOG: :==========> method =PROPFIND= =https://calendar.thefoundry.co.uk= == == =/=
>> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: :>>0<< =>>en<<
>> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: :>>1<< =>>en.UTF-8<<
>> [client 192.9.200.43] DAViCal: ALL: caldav:Version (0.9.7) == 9.7
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1;
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000986 for SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1; to find 1 rows.
>> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #13 Rows: 1, Rownum: -1
>> [client 192.9.200.43] DAViCal: ALL: caldav: User agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_URL<< =>>/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_URI<< =>>https://calendar.thefoundry.co.uk/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTPS<< =>>on<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_HOST<< =>>calendar.thefoundry.co.uk<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_USER_AGENT<< =>>DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>CONTENT_TYPE<< =>>text/xml<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_DEPTH<< =>>0<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>CONTENT_LENGTH<< =>>374<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_CONNECTION<< =>>close<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PATH<< =>>/sbin:/usr/sbin:/bin:/usr/bin<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_SIGNATURE<< =>><address>Apache/2.2.3 (Red Hat) Server at calendar.thefoundry.co.uk Port 443</address>\n<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_SOFTWARE<< =>>Apache/2.2.3 (Red Hat)<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_NAME<< =>>calendar.thefoundry.co.uk<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_ADDR<< =>>192.9.210.30<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_PORT<< =>>443<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REMOTE_ADDR<< =>>192.9.200.43<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>DOCUMENT_ROOT<< =>>/usr/share/davical/htdocs/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_ADMIN<< =>>root at localhost<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_FILENAME<< =>>/usr/share/davical/htdocs/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REMOTE_PORT<< =>>51982<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>GATEWAY_INTERFACE<< =>>CGI/1.1<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_PROTOCOL<< =>>HTTP/1.1<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_METHOD<< =>>PROPFIND<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>QUERY_STRING<< =>><<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_URI<< =>>/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_NAME<< =>>/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PHP_SELF<< =>>/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_TIME<< =>>1254835499<<
>> [client 192.9.200.43] DAViCal: ALL: HTTPAuth::Session: User is not authorised
>> [client 192.9.200.43] DAViCal: LOG: :==========> method =PROPFIND= =https://calendar.thefoundry.co.uk= == == =/=
>> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: :>>0<< =>>en<<
>> [client 192.9.200.43] DAViCal: ALL: I18N:Unsupported locale: :>>1<< =>>en.UTF-8<<
>> [client 192.9.200.43] DAViCal: ALL: caldav:Version (0.9.7) == 9.7
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1;
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000917 for SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1; to find 1 rows.
>> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #13 Rows: 1, Rownum: -1
>> [client 192.9.200.43] DAViCal: ALL: caldav: User agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_URL<< =>>/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_URI<< =>>https://calendar.thefoundry.co.uk/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTPS<< =>>on<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_HOST<< =>>calendar.thefoundry.co.uk<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_USER_AGENT<< =>>DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>CONTENT_TYPE<< =>>text/xml<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_DEPTH<< =>>0<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>CONTENT_LENGTH<< =>>374<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>HTTP_CONNECTION<< =>>close<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PATH<< =>>/sbin:/usr/sbin:/bin:/usr/bin<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_SIGNATURE<< =>><address>Apache/2.2.3 (Red Hat) Server at calendar.thefoundry.co.uk Port 443</address>\n<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_SOFTWARE<< =>>Apache/2.2.3 (Red Hat)<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_NAME<< =>>calendar.thefoundry.co.uk<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_ADDR<< =>>192.9.210.30<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_PORT<< =>>443<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REMOTE_ADDR<< =>>192.9.200.43<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>DOCUMENT_ROOT<< =>>/usr/share/davical/htdocs/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_ADMIN<< =>>root at localhost<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_FILENAME<< =>>/usr/share/davical/htdocs/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REMOTE_PORT<< =>>51983<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>GATEWAY_INTERFACE<< =>>CGI/1.1<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SERVER_PROTOCOL<< =>>HTTP/1.1<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_METHOD<< =>>PROPFIND<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>QUERY_STRING<< =>><<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_URI<< =>>/<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>SCRIPT_NAME<< =>>/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PHP_SELF<< =>>/index.php<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PHP_AUTH_USER<< =>>dan<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>PHP_AUTH_PW<< =>>myuserpassword<<
>> [client 192.9.200.43] DAViCal: ALL: headers:_SERVER:>>REQUEST_TIME<< =>>1254835499<<
>> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Connected to LDAP server ldap.thefoundry.co.uk
>> [client 192.9.200.43] DAViCal: ALL: LDAP:checking user dan for password myuserpassword against LDAP
>> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Found a user using filter (&(employeeNumber=*)(uid=dan))
>> [client 192.9.200.43] DAViCal: ALL: LDAP:drivers_ldap : Bound to user uid=dan,ou=People,dc=thefoundry,dc=co,dc=uk using password myuserpassword
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan')
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.001368 for SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan') to find 1 rows.
>> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #21 Rows: 1, Rownum: -1
>> [client 192.9.200.43] DAViCal: LOG: BasicAuth: Query: DBGQ: SELECT role_name FROM role_member m join roles r ON r.role_no = m.role_no WHERE user_no = E'1699'
>> [client 192.9.200.43] DAViCal: LOG: BasicAuth: Query: DBGQ: Took: 0.000465 for SELECT role_name FROM role_member m join roles r ON r.role_no = m.role_no WHERE user_no = E'1699' to find 0 rows.
>> [client 192.9.200.43] DAViCal: LOG: :***************** Request Header ****************
>> [client 192.9.200.43] DAViCal: LOG: :PROPFIND /
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Host: calendar.thefoundry.co.uk
>> [client 192.9.200.43] DAViCal: LOG: headers:-->User-Agent: DAVKit/3.0.6 (661); CalendarStore/3.0.8 (860); iCal/3.0.8 (1287); Mac OS X/10.5.8 (9L31a)
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Authorization: Basic ZGFuOmdxbXBlZzY=
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-Type: text/xml
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Depth: 0
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-Length: 374
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Connection: close
>> [client 192.9.200.43] DAViCal: LOG: :******************** Request ********************
>> [client 192.9.200.43] DAViCal: LOG: request:--><?xml version="1.0" encoding="utf-8"?>
>> [client 192.9.200.43] DAViCal: LOG: request:--><x0:propfind xmlns:x2="http://calendarserver.org/ns/" xmlns:x1="urn:ietf:params:xml:ns:caldav" xmlns:x0="DAV:">
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x0:prop>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:calendar-home-set/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:calendar-user-address-set/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:schedule-inbox-URL/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x1:schedule-outbox-URL/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x2:dropbox-home-URL/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x2:notifications-URL/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> <x0:displayname/>
>> [client 192.9.200.43] DAViCal: LOG: request:--> </x0:prop>
>> [client 192.9.200.43] DAViCal: LOG: request:--></x0:propfind>
>> [client 192.9.200.43] DAViCal: LOG: caldav: Query: DBGQ: SELECT * FROM collection WHERE dav_name = E'/'ORDER BY LENGTH(dav_name) DESC LIMIT 1
>> [client 192.9.200.43] DAViCal: LOG: caldav: Query: DBGQ: Took: 0.000512 for SELECT * FROM collection WHERE dav_name = E'/'ORDER BY LENGTH(dav_name) DESC LIMIT 1 to find 0 rows.
>> [client 192.9.200.43] DAViCal: ALL: caldav: Collection '/' is -1, type root
>> [client 192.9.200.43] DAViCal: ALL: principal:Finding Principal from path: "/", options.allow_by_email: ""
>> [client 192.9.200.43] DAViCal: ALL: principal:No useful path split possible
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan')
>> [client 192.9.200.43] DAViCal: LOG: always: Query: DBGQ: Took: 0.000205 for SELECT *, to_char(updated at time zone 'GMT','Dy, DD Mon IYYY HH24:MI:SS "GMT"') AS modified FROM usr WHERE lower(username) = lower(E'dan') to find 1 rows.
>> [client 192.9.200.43] DAViCal: LOG: always: Query: Fetch: Resource id #29 Rows: 1, Rownum: -1
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT * FROM relationship LEFT JOIN usr ON (from_user = usr.user_no) LEFT JOIN role_member ON (to_user = role_member.user_no) LEFT JOIN roles USING (role_no) WHERE to_user = E'1699' AND role_name = 'Group'
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000760 for SELECT * FROM relationship LEFT JOIN usr ON (from_user = usr.user_no) LEFT JOIN role_member ON (to_user = role_member.user_no) LEFT JOIN roles USING (role_no) WHERE to_user = E'1699' AND role_name = 'Group' to find 0 rows
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: .
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT * FROM relationship LEFT JOIN usr ON (to_user = user_no) LEFT JOIN role_member USING (user_no) LEFT JOIN roles USING (role_no) WHERE from_user = E'1699' AND role_name = 'Group'
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000598 for SELECT * FROM relationship LEFT JOIN usr ON (to_user = user_no) LEFT JOIN role_member USING (user_no) LEFT JOIN roles USING (role_no) WHERE from_user = E'1699' AND role_name = 'Group' to find 0 rows.
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT from_user.user_no AS from_user_no, from_user.username AS from_username,get_permissions(from_user.user_no, to_user.user_no) AS confers,to_user.user_no AS to_user_no, to_user.username AS to_username FROM usr from_user, usr to_user WHER
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: E get_permissions(from_user.user_no, to_user.user_no) ~ '[AWR]' AND to_user.user_no != from_user.user_no AND (from_user.user_no = E'1699' OR to_user.user_no = E'1699')
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.004241 for SELECT from_user.user_no AS from_user_no, from_user.username AS from_username,get_permissions(from_user.user_no, to_user.user_no) AS confers,to_user.user_no AS to_user_no, to_user.username AS to_username FROM usr from_use
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: r, usr to_user WHERE get_permissions(from_user.user_no, to_user.user_no) ~ '[AWR]' AND to_user.user_no != from_user.user_no AND (from_user.user_no = E'1699' OR to_user.user_no = E'1699') to find 0 rows.
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: SELECT dav_name FROM collection WHERE user_no = E'1699' AND is_calendar
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: DBGQ: Took: 0.000167 for SELECT dav_name FROM collection WHERE user_no = E'1699' AND is_calendar to find 1 rows.
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: Fetch: Resource id #33 Rows: 1, Rownum: -1
>> [client 192.9.200.43] DAViCal: LOG: CalDAVPrincipal: Query: Fetch: Resource id #33 Rows: 1, Rownum: 0
>> [client 192.9.200.43] DAViCal: ALL: principal:User: dan (1699) URL: /caldav.php/dan/, Home: Array, By Email: 0
>> [client 192.9.200.43] DAViCal: ALL: caldav:Read permissions for user accessing /
>> [client 192.9.200.43] DAViCal: ALL: caldav: Parsed incoming XML request body.
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:method handler
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "0" => "DAV::propfind"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: open -> DAV::propfind
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "1" => "DAV::prop"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: open -> DAV::prop
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "2" => "urn:ietf:params:xml:ns:caldav:calendar-home-set"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:calendar-home-set"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "3" => "urn:ietf:params:xml:ns:caldav:calendar-user-address-set"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:calendar-user-address-set"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "4" => "urn:ietf:params:xml:ns:caldav:schedule-inbox-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:schedule-inbox-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "5" => "urn:ietf:params:xml:ns:caldav:schedule-outbox-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "urn:ietf:params:xml:ns:caldav:schedule-outbox-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "6" => "http://calendarserver.org/ns/:dropbox-home-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding arbitrary property "http://calendarserver.org/ns/:dropbox-home-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "7" => "http://calendarserver.org/ns/:notifications-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding arbitrary property "http://calendarserver.org/ns/:notifications-URL"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "8" => "DAV::displayname"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding attribute "DAV::displayname"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "9" => "DAV::prop"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: close -> DAV::prop
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND: Handling Tag "10" => "DAV::propfind"
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND::Request: close -> DAV::propfind
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Getting collection: Depth 0, User: 1699, Path: /
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Building XML Response for collection "/" (0)
>> [client 192.9.200.43] DAViCal: ALL: PROPFIND:Adding principal properties
>> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: DBGQ: SELECT property_name, property_value FROM property WHERE dav_name=E'/' AND property_name IN (E'http://calendarserver.org/ns/:dropbox-home-URL', E'http://calendarserver.org/ns/:notifications-URL')
>> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: DBGQ: Took: 0.000722 for SELECT property_name, property_value FROM property WHERE dav_name=E'/' AND property_name IN (E'http://calendarserver.org/ns/:dropbox-home-URL', E'http://calendarserver.org/ns/:notifications-URL') to find 0 rows.
>> [client 192.9.200.43] DAViCal: LOG: PROPFIND: Query: Fetch: Resource id #38 Rows: 0, Rownum: -1
>> [client 192.9.200.43] DAViCal: ALL: XMLDocument:auto-assigning prefix of 'C1' for ns of 'http://calendarserver.org/ns/'
>> [client 192.9.200.43] DAViCal: LOG: :***************** Response Header ****************
>> [client 192.9.200.43] DAViCal: LOG: headers:-->X-Powered-By: PHP/5.3.0
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Server: 0.9
>> [client 192.9.200.43] DAViCal: LOG: headers:-->DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
>> [client 192.9.200.43] DAViCal: LOG: headers:-->ETag: "4381616d809371fd4d8824bbb31de5a7"
>> [client 192.9.200.43] DAViCal: LOG: headers:-->X-DAViCal-Version: DAViCal/0.9.7; DB/1.2.5
>> [client 192.9.200.43] DAViCal: LOG: headers:-->Content-type: text/xml; charset="utf-8"
>> [client 192.9.200.43] DAViCal: LOG: :******************** Response ********************
>> [client 192.9.200.43] DAViCal: LOG: response:--><?xml version="1.0" encoding="utf-8" ?>
>> [client 192.9.200.43] DAViCal: LOG: response:--><multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:C1="http://calendarserver.org/ns/">
>> [client 192.9.200.43] DAViCal: LOG: response:--> <response>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <propstat>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <prop>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <displayname>The Foundry DAViCal Server</displayname>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C:calendar-home-set>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </C:calendar-home-set>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C:schedule-inbox-URL>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/.in/</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </C:schedule-inbox-URL>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C:schedule-outbox-URL>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/.out/</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </C:schedule-outbox-URL>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C:calendar-user-address-set>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>mailto%3Adan%40thefoundry.co.uk</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <href>/caldav.php/dan/</href>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </C:calendar-user-address-set>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </prop>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <status>HTTP/1.1 200 OK</status>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </propstat>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <propstat>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <prop>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C1:dropbox-home-URL/>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <C1:notifications-URL/>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </prop>
>> [client 192.9.200.43] DAViCal: LOG: response:--> <status>HTTP/1.1 404 Not Found</status>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </propstat>
>> [client 192.9.200.43] DAViCal: LOG: response:--> </response>
>> [client 192.9.200.43] DAViCal: LOG: response:--></multistatus>
>> [client 192.9.200.43] DAViCal: LOG: response:-->
>> [client 192.9.200.43] DAViCal: ALL: caldav:Status: 207, Message:<?xml version="1.0" encoding="utf-8" ?> <multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:ca..., User: 1699, Path: /
>
> Many thanks,
>
> Dan.

--
Dan Alderman
Systems Manager
The Foundry, 1 Wardour Street, London. W1D 6PA
Tel: +44 (0)20 7434 0449 - Fax: +44 (0)20 7434 1550
Direct: +44 (0)20 7255 8557
Web: www.thefoundry.co.uk
Email: dan at thefoundry.co.uk

The Foundry Visionmongers Ltd.
Registered in England and Wales No: 4642027