From fe659b4aaa3f8d46359e5c448c25ba4b8a82b907 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 07:53:04 +1200 Subject: [PATCH 01/31] Set 'active' and 'default_privileges' fallback values. --- inc/drivers_ldap.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/drivers_ldap.php b/inc/drivers_ldap.php index b78bcf19..b241d4d7 100644 --- a/inc/drivers_ldap.php +++ b/inc/drivers_ldap.php @@ -261,7 +261,11 @@ function sync_user_from_LDAP( Principal &$principal, $mapping, $ldap_values ) { dbg_error_log( "LDAP", "Going to sync the user from LDAP" ); - $fields_to_set = array( 'username' => $principal->username() ); + $fields_to_set = array( + 'username' => $principal->username(), + 'active' => true, + 'default_privileges' => decbin(privilege_to_bits($c->default_privileges)) + ); $updateable_fields = Principal::updateableFields(); $updateable_fields[] = 'active'; // Backward compatibility: now 'user_exists' $updateable_fields[] = 'updated'; // Backward compatibility: now 'modified' From bc36ff60a30b8e5364a3b2fcc4cb6b07f1089047 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 07:54:09 +1200 Subject: [PATCH 02/31] Update timezone database from remote server. --- inc/tz/updatecheck.php | 108 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/inc/tz/updatecheck.php b/inc/tz/updatecheck.php index 2d0ed736..d751f633 100644 --- a/inc/tz/updatecheck.php +++ b/inc/tz/updatecheck.php @@ -10,6 +10,8 @@ */ require_once('vCalendar.php'); +require_once('XMLDocument.php'); +require_once('RRule-v2.php'); $new_zones = 0; $modified_zones = 0; @@ -17,6 +19,107 @@ $modified_zones = 0; if ( empty($c->tzsource) ) $c->tzsource = '../zonedb/vtimezones'; if ( preg_match('{^http}', $c->tzsource ) ) { + function fetch_tz_ids( $base_url, $current_zones ) { + global $request; + $result = array(); + $list_url = $base_url . '?action=list'; + printf( "Fetching timezone list\n", $list_url ); + $raw_xml = file_get_contents($list_url); + $xml_parser = xml_parser_create_ns('UTF-8'); + $xml_tags = array(); + xml_parser_set_option ( $xml_parser, XML_OPTION_SKIP_WHITE, 1 ); + xml_parser_set_option ( $xml_parser, XML_OPTION_CASE_FOLDING, 0 ); + $rc = xml_parse_into_struct( $xml_parser, $raw_xml, $xml_tags ); + if ( $rc == false ) { + dbg_error_log( 'ERROR', 'XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) ); + $request->PreconditionFailed(400, 'invalid-xml', + sprintf('XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) )); + } + xml_parser_free($xml_parser); + $position = 0; + $xmltree = BuildXMLTree( $xml_tags, $position); + $zones = $xmltree->GetElements('urn:ietf:params:xml:ns:timezone-service:summary'); + foreach( $zones AS $zone ) { + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:tzid'); + $tzid = $elements[0]->GetContent(); + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:last-modified'); + $last_modified = new RepeatRuleDateTime($elements[0]->GetContent()); + if ( $last_modified > $current_zones[$tzid] ) { + $result[] = $tzid; + printf("Found timezone %s needs updating\n", $tzid); + } + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:alias'); + foreach( $elements AS $element ) { + $alias = $element->GetContent(); + } + } + return $result; + } + + $changesince = null; + $qry = new AwlQuery("SELECT tzid, to_char(last_modified,'YYYY-MM-DD\"T\"HH24:MI:SS') AS last_modified FROM timezones"); + $current_zones = array(); + if ( $qry->Exec('tz/updatecheck',__LINE__,__FILE__) && $qry->rows() > 0 ) { + $row = $qry->Fetch(); + $current_zones[$row->tzid] = new RepeatRuleDateTime($row->last_modified); + } + foreach( fetch_tz_ids($c->tzsource, $current_zones) AS $tzid ) { + $tz_url = $c->tzsource . '?action=get&tzid=' .$tzid; + $tzrow = null; + if ( $qry->QDo('SELECT * FROM timezones WHERE tzid=:tzid', array(':tzid' => $tzid)) && $qry->rows() > 0 ) { + $tzrow = $qry->Fetch(); + } + printf( "Fetching zone for %s from %s\n", $tzid, $tz_url ); + dbg_error_log( 'tz/updatecheck', "Fetching zone for %s from %s\n", $tzid, $tz_url ); + $vtimezone = file_get_contents( $tz_url ); + if ( empty($vtimezone) ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no data from server', $tzid ); + continue; + } + if ( $vtimezone == $tzrow->vtimezone ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); + continue; + } + $vtz = new vCalendar($vtimezone); + $last_modified = $vtz->GetPValue('LAST-MODIFIED'); + if ( empty($last_modified) ) { + $last_modified = gmdate('Ymd\THis\Z'); + // Then it was probably that way when we last updated the data, too :-( + if ( !empty($tzrow) ) { + $old_vtz = new vCalendar($tzrow->vtimezone); + $old_vtz->ClearProperties('LAST-MODIFIED'); + // We need to add & remove this property so the Render is equivalent. + $vtz->AddProperty('LAST-MODIFIED',$last_modified); + $vtz->ClearProperties('LAST-MODIFIED'); + if ( $vtz->Render() == $old_vtz->Render() ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); + continue; + } + } + $vtz->AddProperty('LAST-MODIFIED',$last_modified); + } + dbg_error_log('tz/updatecheck', 'Writing %s zone for "%s"', (empty($tzrow)?"new":"updated"), $tzid ); + $params = array( + ':tzid' => $tzid, + ':olson_name' => $tzid, + ':vtimezone' => $vtz->Render(), + ':last_modified' => $last_modified, + ':etag' => md5($vtz->Render()) + ); + if ( empty($tzrow) ) { + $new_zones++; + $sql = 'INSERT INTO timezones(tzid,active,olson_name,last_modified,etag,vtimezone) '; + $sql .= 'VALUES(:tzid,TRUE,:olson_name,:last_modified,:etag,:vtimezone)'; + } + else { + $modified_zones++; + $sql = 'UPDATE timezones SET active=TRUE, olson_name=:olson_name, last_modified=:last_modified, '; + $sql .= 'etag=:etag, vtimezone=:vtimezone WHERE tzid=:tzid'; + } + $qry->QDo($sql,$params); + } } else if ( file_exists($c->tzsource) ) { /** @@ -90,11 +193,12 @@ else if ( file_exists($c->tzsource) ) { } $qry->QDo($sql,$params); } - header('Content-type: text/plain'); - printf('Added %d new zones and updated data for %d zones', $new_zones, $modified_zones); } else { dbg_error_log('ERROR', '$c->tzsource is not configured to a good source of timezone data'); } +header('Content-type: text/plain'); +printf("Added %d new zones and updated data for %d zones\n", $new_zones, $modified_zones); + exit(0); \ No newline at end of file From df3a901c91be1e74251b51fdf6918443f074b65d Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 09:40:10 +1200 Subject: [PATCH 03/31] Rather than fixing in drivers_ldap, fix properly in Principal class. This fixes a bug in the Principal class when updating where fields are set on the principal, but are not being updated and end up getting set to NULL as a result. --- inc/Principal.php | 14 ++++++++++---- inc/drivers_ldap.php | 6 +----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/inc/Principal.php b/inc/Principal.php index a0618db6..ccf68fab 100644 --- a/inc/Principal.php +++ b/inc/Principal.php @@ -485,12 +485,18 @@ class Principal { private function Write( $field_values, $inserting=true ) { if ( is_array($field_values) ) $field_values = (object) $field_values; - if ( !isset($field_values->{'user_active'}) && isset($field_values->{'active'}) ) - $field_values->{'user_active'} = $field_values->{'active'}; + if ( !isset($field_values->{'user_active'}) ) { + if ( isset($field_values->{'active'}) ) + $field_values->{'user_active'} = $field_values->{'active'}; + else if ( $inserting ) + $field_values->{'user_active'} = true; + } if ( !isset($field_values->{'modified'}) && isset($field_values->{'updated'}) ) $field_values->{'modified'} = $field_values->{'updated'}; - if ( !isset($field_values->{'type_id'}) ) + if ( !isset($field_values->{'type_id'}) && $inserting ) $field_values->{'type_id'} = 1; // Default to 'person' + if ( !isset($field_values->{'default_privileges'}) && $inserting ) + $field_values->{'default_privileges'} = decbin(privilege_to_bits($c->default_privileges)); $sql = ''; @@ -511,7 +517,7 @@ class Principal { else { $update_list[] = $k.'=:'.$k; } - $sql_params[':'.$k] = $field_values->{$k}; + $sql_params[':'.$k] = (isset($field_values->{$k}) ? $field_values->{$k} : $this->{$k}); } if ( $inserting && isset(self::$db_mandatory_fields) ) { diff --git a/inc/drivers_ldap.php b/inc/drivers_ldap.php index b241d4d7..895a2311 100644 --- a/inc/drivers_ldap.php +++ b/inc/drivers_ldap.php @@ -261,11 +261,7 @@ function sync_user_from_LDAP( Principal &$principal, $mapping, $ldap_values ) { dbg_error_log( "LDAP", "Going to sync the user from LDAP" ); - $fields_to_set = array( - 'username' => $principal->username(), - 'active' => true, - 'default_privileges' => decbin(privilege_to_bits($c->default_privileges)) - ); + $fields_to_set = array(); $updateable_fields = Principal::updateableFields(); $updateable_fields[] = 'active'; // Backward compatibility: now 'user_exists' $updateable_fields[] = 'updated'; // Backward compatibility: now 'modified' From b3758feb2b506d1c1e78920f1fa74d9b2ac1d45b Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 09:42:59 +1200 Subject: [PATCH 04/31] Forgot to declare use of $c --- inc/Principal.php | 1 + 1 file changed, 1 insertion(+) diff --git a/inc/Principal.php b/inc/Principal.php index ccf68fab..f0fc3596 100644 --- a/inc/Principal.php +++ b/inc/Principal.php @@ -483,6 +483,7 @@ class Principal { private function Write( $field_values, $inserting=true ) { + global $c; if ( is_array($field_values) ) $field_values = (object) $field_values; if ( !isset($field_values->{'user_active'}) ) { From d4e29a91b6b84b4c18135c4da49622892e38bd89 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 13:46:26 +1200 Subject: [PATCH 05/31] $_SERVERS['SERVER_PORT'] might not be set in some circumstances. --- htdocs/always.php | 6 ++++-- inc/always.php.in | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/always.php b/htdocs/always.php index 662fca72..9f356778 100644 --- a/htdocs/always.php +++ b/htdocs/always.php @@ -109,8 +109,10 @@ $c->protocol_server_port = sprintf( '%s://%s%s', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'? 'https' : 'http'), $_SERVER['SERVER_NAME'], ( - ( (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') && $_SERVER['SERVER_PORT'] == 80 ) - || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' && $_SERVER['SERVER_PORT'] == 443 ) + ( (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') + && (!isset($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == 80) ) + || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' + && (!isset($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == 443) ) ? '' : ':'.$_SERVER['SERVER_PORT'] ) ); diff --git a/inc/always.php.in b/inc/always.php.in index 8b5f4eb8..39bc4cbd 100644 --- a/inc/always.php.in +++ b/inc/always.php.in @@ -109,8 +109,10 @@ $c->protocol_server_port = sprintf( '%s://%s%s', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'? 'https' : 'http'), $_SERVER['SERVER_NAME'], ( - ( (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') && $_SERVER['SERVER_PORT'] == 80 ) - || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' && $_SERVER['SERVER_PORT'] == 443 ) + ( (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') + && (!isset($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == 80) ) + || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' + && (!isset($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == 443) ) ? '' : ':'.$_SERVER['SERVER_PORT'] ) ); From 3ce63406c82d3af20d8e987ab030e2167599769a Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Thu, 22 Sep 2011 15:34:33 +1200 Subject: [PATCH 06/31] A script that can be run from cron to sync from LDAP. As proposed by 'mate' on IRC. This simple code hopefully also demonstrates a good general starting point to future PHP scripts running from the command-line within DAViCal. --- scripts/cron-sync-ldap.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 scripts/cron-sync-ldap.php diff --git a/scripts/cron-sync-ldap.php b/scripts/cron-sync-ldap.php new file mode 100755 index 00000000..ae9be7e6 --- /dev/null +++ b/scripts/cron-sync-ldap.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php + Date: Thu, 22 Sep 2011 15:34:52 +1200 Subject: [PATCH 07/31] Move the zone update code out of an online process. --- .../updatecheck.php => scripts/tz-update.php | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) rename inc/tz/updatecheck.php => scripts/tz-update.php (90%) mode change 100644 => 100755 diff --git a/inc/tz/updatecheck.php b/scripts/tz-update.php old mode 100644 new mode 100755 similarity index 90% rename from inc/tz/updatecheck.php rename to scripts/tz-update.php index d751f633..ec082e37 --- a/inc/tz/updatecheck.php +++ b/scripts/tz-update.php @@ -1,6 +1,7 @@ +#!/usr/bin/env php tzsource configuration value, with +a further default to the zonedb/vtimezone directory relative to the root of the +DAViCal installation. + +This script can be used to initialise or update the timezone information in +DAViCal used for the in-built timezone service. + +USAGE; + exit(1); +} + +$_SERVER['SERVER_NAME'] = $argv[1]; + +chdir(str_replace('/scripts/tz-update.php','/htdocs',$script_file)); + +require_once("./always.php"); + +if ( isset($argv[2]) ) { + $c->tzsource = $argv[2]; +} require_once('vCalendar.php'); require_once('XMLDocument.php'); From 5d3b265ba5bd8cb27e08ddf166bb2d9fe330388a Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 23 Sep 2011 13:02:28 +1200 Subject: [PATCH 08/31] Support multiple SCRIPT= lines in a regression test. --- testing/dav_test | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/testing/dav_test b/testing/dav_test index da648a37..185b2f75 100755 --- a/testing/dav_test +++ b/testing/dav_test @@ -46,6 +46,8 @@ push @arguments, "--silent" unless ( $debug ); push @arguments, "--verbose" if ( $debug ); my $url; +my $script; +my @scripts = ( ); my $is_head_request = 0; my @auth = ( "--user", "user1:user1" ); @@ -182,14 +184,18 @@ while( ) { $url =~ s{alternate.host}{$althost}; }; + $line =~ /^\s*SCRIPT\s*=\s*(\S.*)$/ && do { + $script=$1; + $script =~ s{regression.host}{$webhost}; + $script =~ s{alternate.host}{$althost}; + push @scripts, $script; + }; + } -if ( !defined($url) ) { +if ( !defined($url) && !defined($script) ) { print < ) { - my $line = $_; - foreach my $replacement ( @$replacements ) { - $line =~ s/$replacement->{'pattern'}/$replacement->{'replacement'}/; + open RESULTS, "-|", "curl", @arguments; + while( ) { + my $line = $_; + foreach my $replacement ( @$replacements ) { + $line =~ s/$replacement->{'pattern'}/$replacement->{'replacement'}/; + } + print $line; + } +} + +if ( defined($script) ) { + foreach $script ( @scripts ) { + open RESULTS, "-|", $script; + while( ) { + my $line = $_; + foreach my $replacement ( @$replacements ) { + $line =~ s/$replacement->{'pattern'}/$replacement->{'replacement'}/; + } + print $line; + } } - print $line; } if ( defined(@{$queries}) && @{$queries} ) { From 834714387989a4f658cdcef3d9c27c3a668f78a8 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 23 Sep 2011 13:03:07 +1200 Subject: [PATCH 09/31] Refactor this to move duplicated code into functions. --- scripts/tz-update.php | 270 ++++++++++++++++++++---------------------- 1 file changed, 129 insertions(+), 141 deletions(-) diff --git a/scripts/tz-update.php b/scripts/tz-update.php index ec082e37..8ef49d70 100755 --- a/scripts/tz-update.php +++ b/scripts/tz-update.php @@ -46,111 +46,142 @@ require_once('RRule-v2.php'); $new_zones = 0; $modified_zones = 0; +$added_aliases = 0; + + +function fetch_remote_list($base_url ) { + global $request; + $result = array(); + $list_url = $base_url . '?action=list'; + printf( "Fetching timezone list\n", $list_url ); + $raw_xml = file_get_contents($list_url); + $xml_parser = xml_parser_create_ns('UTF-8'); + $xml_tags = array(); + xml_parser_set_option ( $xml_parser, XML_OPTION_SKIP_WHITE, 1 ); + xml_parser_set_option ( $xml_parser, XML_OPTION_CASE_FOLDING, 0 ); + $rc = xml_parse_into_struct( $xml_parser, $raw_xml, $xml_tags ); + if ( $rc == false ) { + dbg_error_log( 'ERROR', 'XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) ); + $request->PreconditionFailed(400, 'invalid-xml', + sprintf('XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) )); + } + xml_parser_free($xml_parser); + $position = 0; + return BuildXMLTree( $xml_tags, $position); +} + +function fetch_remote_zone( $base_url, $tzid ) { + $tz_url = $base_url . '?action=get&tzid=' .$tzid; + printf( "Fetching zone for %s from %s\n", $tzid, $tz_url ); + dbg_error_log( 'tz/updatecheck', "Fetching zone for %s from %s\n", $tzid, $tz_url ); + $vtimezone = file_get_contents( $tz_url ); + return $vtimezone; +} + +function fetch_db_zone( $tzid ) { + $tzrow = null; + $qry = new AwlQuery('SELECT * FROM timezones WHERE tzid=:tzid', array(':tzid' => $tzid)); + if ( $qry->Exec('tz/update',__LINE__,__FILE__) && $qry->rows() > 0 ) { + $tzrow = $qry->Fetch(); + } + return $tzrow; +} + +function write_updated_zone( $vtimezone, $tzid ) { + global $new_zones, $modified_zones; + if ( empty($vtimezone) ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no data from server', $tzid ); + return; + } + $tzrow = fetch_db_zone($tzid); + if ( isset($tzrow) && $vtimezone == $tzrow->vtimezone ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); + return; + } + $vtz = new vCalendar($vtimezone); + $last_modified = $vtz->GetPValue('LAST-MODIFIED'); + if ( empty($last_modified) ) { + $last_modified = gmdate('Ymd\THis\Z'); + // Then it was probably that way when we last updated the data, too :-( + if ( !empty($tzrow) ) { + $old_vtz = new vCalendar($tzrow->vtimezone); + $old_vtz->ClearProperties('LAST-MODIFIED'); + // We need to add & remove this property so the Render is equivalent. + $vtz->AddProperty('LAST-MODIFIED',$last_modified); + $vtz->ClearProperties('LAST-MODIFIED'); + if ( $vtz->Render() == $old_vtz->Render() ) { + dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); + return; + } + } + $vtz->AddProperty('LAST-MODIFIED',$last_modified); + } + dbg_error_log('tz/updatecheck', 'Writing %s zone for "%s"', (empty($tzrow)?"new":"updated"), $tzid ); + printf("Writing %s zone for '%s'\n", (empty($tzrow)?"new":"updated"), $tzid ); + $params = array( + ':tzid' => $tzid, + ':olson_name' => $tzid, + ':vtimezone' => $vtz->Render(), + ':last_modified' => $last_modified, + ':etag' => md5($vtz->Render()) + ); + if ( empty($tzrow) ) { + $new_zones++; + $sql = 'INSERT INTO timezones(tzid,active,olson_name,last_modified,etag,vtimezone) '; + $sql .= 'VALUES(:tzid,TRUE,:olson_name,:last_modified,:etag,:vtimezone)'; + } + else { + $modified_zones++; + $sql = 'UPDATE timezones SET active=TRUE, olson_name=:olson_name, last_modified=:last_modified, '; + $sql .= 'etag=:etag, vtimezone=:vtimezone WHERE tzid=:tzid'; + } + $qry = new AwlQuery($sql,$params); + $qry->Exec('tz/update',__LINE__,__FILE__); +} + +function write_zone_aliases( $tzid, $aliases ) { + global $added_aliases; + foreach( $aliases AS $alias_node ) { + $alias = $alias_node->GetContent(); + $params = array(':tzid' => $tzid, ':alias' => $alias ); + $qry = new AwlQuery('SELECT * FROM tz_aliases JOIN timezones USING(our_tzno) WHERE tzid=:tzid AND tzalias=:alias', $params); + if ( $qry->Exec('tz/update', __LINE__, __FILE__) && $qry->rows() < 1 ) { + $qry->QDo('INSERT INTO tz_aliases(our_tzno,tzalias) SELECT our_tzno, :alias FROM timezones WHERE tzid = :tzid', $params); + $added_aliases++; + } + } +} + if ( empty($c->tzsource) ) $c->tzsource = '../zonedb/vtimezones'; if ( preg_match('{^http}', $c->tzsource ) ) { - function fetch_tz_ids( $base_url, $current_zones ) { - global $request; - $result = array(); - $list_url = $base_url . '?action=list'; - printf( "Fetching timezone list\n", $list_url ); - $raw_xml = file_get_contents($list_url); - $xml_parser = xml_parser_create_ns('UTF-8'); - $xml_tags = array(); - xml_parser_set_option ( $xml_parser, XML_OPTION_SKIP_WHITE, 1 ); - xml_parser_set_option ( $xml_parser, XML_OPTION_CASE_FOLDING, 0 ); - $rc = xml_parse_into_struct( $xml_parser, $raw_xml, $xml_tags ); - if ( $rc == false ) { - dbg_error_log( 'ERROR', 'XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), - xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) ); - $request->PreconditionFailed(400, 'invalid-xml', - sprintf('XML parsing error: %s at line %d, column %d', xml_error_string(xml_get_error_code($xml_parser)), - xml_get_current_line_number($xml_parser), xml_get_current_column_number($xml_parser) )); - } - xml_parser_free($xml_parser); - $position = 0; - $xmltree = BuildXMLTree( $xml_tags, $position); - $zones = $xmltree->GetElements('urn:ietf:params:xml:ns:timezone-service:summary'); - foreach( $zones AS $zone ) { - $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:tzid'); - $tzid = $elements[0]->GetContent(); - $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:last-modified'); - $last_modified = new RepeatRuleDateTime($elements[0]->GetContent()); - if ( $last_modified > $current_zones[$tzid] ) { - $result[] = $tzid; - printf("Found timezone %s needs updating\n", $tzid); - } - $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:alias'); - foreach( $elements AS $element ) { - $alias = $element->GetContent(); - } - } - return $result; - } - $changesince = null; $qry = new AwlQuery("SELECT tzid, to_char(last_modified,'YYYY-MM-DD\"T\"HH24:MI:SS') AS last_modified FROM timezones"); $current_zones = array(); if ( $qry->Exec('tz/updatecheck',__LINE__,__FILE__) && $qry->rows() > 0 ) { - $row = $qry->Fetch(); - $current_zones[$row->tzid] = new RepeatRuleDateTime($row->last_modified); + while( $row = $qry->Fetch() ) + $current_zones[$row->tzid] = new RepeatRuleDateTime($row->last_modified); } - foreach( fetch_tz_ids($c->tzsource, $current_zones) AS $tzid ) { - $tz_url = $c->tzsource . '?action=get&tzid=' .$tzid; - $tzrow = null; - if ( $qry->QDo('SELECT * FROM timezones WHERE tzid=:tzid', array(':tzid' => $tzid)) && $qry->rows() > 0 ) { - $tzrow = $qry->Fetch(); + + $xmltree = fetch_remote_list($c->tzsource); + $zones = $xmltree->GetElements('urn:ietf:params:xml:ns:timezone-service:summary'); + foreach( $zones AS $zone ) { + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:tzid'); + $tzid = $elements[0]->GetContent(); + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:last-modified'); + $last_modified = new RepeatRuleDateTime($elements[0]->GetContent()); + if ( !isset($current_zones[$tzid]) || $last_modified > $current_zones[$tzid] ) { + printf("Found timezone %s needs updating\n", $tzid ); + $vtimezone = fetch_remote_zone($c->tzsource,$tzid); + write_updated_zone($vtimezone, $tzid); } - printf( "Fetching zone for %s from %s\n", $tzid, $tz_url ); - dbg_error_log( 'tz/updatecheck', "Fetching zone for %s from %s\n", $tzid, $tz_url ); - $vtimezone = file_get_contents( $tz_url ); - if ( empty($vtimezone) ) { - dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no data from server', $tzid ); - continue; - } - if ( $vtimezone == $tzrow->vtimezone ) { - dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); - continue; - } - $vtz = new vCalendar($vtimezone); - $last_modified = $vtz->GetPValue('LAST-MODIFIED'); - if ( empty($last_modified) ) { - $last_modified = gmdate('Ymd\THis\Z'); - // Then it was probably that way when we last updated the data, too :-( - if ( !empty($tzrow) ) { - $old_vtz = new vCalendar($tzrow->vtimezone); - $old_vtz->ClearProperties('LAST-MODIFIED'); - // We need to add & remove this property so the Render is equivalent. - $vtz->AddProperty('LAST-MODIFIED',$last_modified); - $vtz->ClearProperties('LAST-MODIFIED'); - if ( $vtz->Render() == $old_vtz->Render() ) { - dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); - continue; - } - } - $vtz->AddProperty('LAST-MODIFIED',$last_modified); - } - dbg_error_log('tz/updatecheck', 'Writing %s zone for "%s"', (empty($tzrow)?"new":"updated"), $tzid ); - $params = array( - ':tzid' => $tzid, - ':olson_name' => $tzid, - ':vtimezone' => $vtz->Render(), - ':last_modified' => $last_modified, - ':etag' => md5($vtz->Render()) - ); - if ( empty($tzrow) ) { - $new_zones++; - $sql = 'INSERT INTO timezones(tzid,active,olson_name,last_modified,etag,vtimezone) '; - $sql .= 'VALUES(:tzid,TRUE,:olson_name,:last_modified,:etag,:vtimezone)'; - } - else { - $modified_zones++; - $sql = 'UPDATE timezones SET active=TRUE, olson_name=:olson_name, last_modified=:last_modified, '; - $sql .= 'etag=:etag, vtimezone=:vtimezone WHERE tzid=:tzid'; - } - $qry->QDo($sql,$params); + $elements = $zone->GetElements('urn:ietf:params:xml:ns:timezone-service:alias'); + write_zone_aliases($tzid, $elements); } + } else if ( file_exists($c->tzsource) ) { /** @@ -163,6 +194,7 @@ else if ( file_exists($c->tzsource) ) { $result = array(); while( $fn = readdir($d) ) { if ( substr($fn,0,1) == '.' ) continue; + if ( substr($fn,0,14) == 'primary-source' ) continue; $fn = $dirname.'/'.$fn; if ( is_dir($fn) ) { $result = array_merge($result,recursive_files($fn)); @@ -177,59 +209,15 @@ else if ( file_exists($c->tzsource) ) { $qry = new AwlQuery(); foreach( recursive_files($c->tzsource) AS $filename ) { $tzid = str_replace('.ics', '', str_replace($c->tzsource.'/', '', $filename)); - $tzrow = null; - if ( $qry->QDo('SELECT * FROM timezones WHERE tzid=:tzid', array(':tzid' => $tzid)) && $qry->rows() > 0 ) { - $tzrow = $qry->Fetch(); - } $vtimezone = file_get_contents( $filename, false ); - if ( $vtimezone == $tzrow->vtimezone ) { - dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); - continue; - } - $vtz = new vCalendar($vtimezone); - $last_modified = $vtz->GetProperty('LAST-MODIFIED'); - if ( empty($last_modified) ) { - $last_modified = gmdate('Ymd\THis\Z'); - // Then it was probably that way when we last updated the data, too :-( - if ( !empty($tzrow) ) { - $old_vtz = new vCalendar($tzrow->vtimezone); - $old_vtz->ClearProperties('LAST-MODIFIED'); - // We need to add & remove this property so the Render is equivalent. - $vtz->AddProperty('LAST-MODIFIED',$last_modified); - $vtz->ClearProperties('LAST-MODIFIED'); - if ( $vtz->Render() == $old_vtz->Render() ) { - dbg_error_log('tz/updatecheck', 'Skipping zone "%s" - no change', $tzid ); - continue; - } - } - $vtz->AddProperty('LAST-MODIFIED',$last_modified); - } - dbg_error_log('tz/updatecheck', 'Writing %s zone for "%s"', (empty($tzrow)?"new":"updated"), $tzid ); - $params = array( - ':tzid' => $tzid, - ':olson_name' => $tzid, - ':vtimezone' => $vtz->Render(), - ':last_modified' => $last_modified, - ':etag' => md5($vtz->Render()) - ); - if ( empty($tzrow) ) { - $new_zones++; - $sql = 'INSERT INTO timezones(tzid,active,olson_name,last_modified,etag,vtimezone) '; - $sql .= 'VALUES(:tzid,TRUE,:olson_name,:last_modified,:etag,:vtimezone)'; - } - else { - $modified_zones++; - $sql = 'UPDATE timezones SET active=TRUE, olson_name=:olson_name, last_modified=:last_modified, '; - $sql .= 'etag=:etag, vtimezone=:vtimezone WHERE tzid=:tzid'; - } - $qry->QDo($sql,$params); + write_updated_zone($vtimezone, $tzid); } } else { dbg_error_log('ERROR', '$c->tzsource is not configured to a good source of timezone data'); } -header('Content-type: text/plain'); -printf("Added %d new zones and updated data for %d zones\n", $new_zones, $modified_zones); +printf("Added %d new zones, updated data for %d zones and added %d new aliases\n", + $new_zones, $modified_zones, $added_aliases); exit(0); \ No newline at end of file From d6ea96d2a0a42e632c92117db41d6f702e0b8514 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 23 Sep 2011 13:06:25 +1200 Subject: [PATCH 10/31] Do all calculation of onset times in UTC (fixing some bugs). --- inc/tz/expand.php | 11 ++++-- testing/tests/timezone/5040-expand.result | 44 +++++++++++------------ testing/tests/timezone/5041-expand.result | 26 +++++++------- testing/tests/timezone/5042-expand.result | 4 +-- testing/tests/timezone/5043-expand.result | 10 +++--- 5 files changed, 50 insertions(+), 45 deletions(-) diff --git a/inc/tz/expand.php b/inc/tz/expand.php index c5f5c1ba..89a8c215 100644 --- a/inc/tz/expand.php +++ b/inc/tz/expand.php @@ -46,6 +46,7 @@ define( 'DEBUG_EXPAND', false ); * @param object $vResource is a VCALENDAR with a VTIMEZONE containing components needing expansion * @param object $range_start A RepeatRuleDateTime which is the beginning of the range for events. * @param object $range_end A RepeatRuleDateTime which is the end of the range for events. +* @param int $offset_from The offset from UTC in seconds at the onset time. * * @return array of onset datetimes with UTC from/to offsets */ @@ -60,8 +61,6 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range $is_date = false; $has_repeats = false; $zone_tz = $vtz->GetPValue('TZID'); - $range_start->setTimeZone($zone_tz); - $range_end->setTimeZone($zone_tz); foreach( $components AS $k => $comp ) { if ( DEBUG_EXPAND ) { @@ -73,8 +72,14 @@ function expand_timezone_onsets( vCalendar $vResource, RepeatRuleDateTime $range } $dtstart_prop = $comp->GetProperty('DTSTART'); if ( !isset($dtstart_prop) ) continue; - $dtstart_prop->SetParameterValue('TZID',$zone_tz); $dtstart = new RepeatRuleDateTime( $dtstart_prop ); + $dtstart->setTimeZone('UTC'); + $offset_from = $comp->GetPValue('TZOFFSETFROM'); + $offset_from = (($offset_from / 100) * 3600) + ((abs($offset_from) % 100) * 60 * ($offset_from < 0 ? -1 : 0)); + $offset_from *= -1; + $offset_from = "$offset_from seconds"; + dbg_error_log( 'tz/update', "%s of offset\n", $offset_from); + $dtstart->modify($offset_from); $is_date = $dtstart->isDate(); $instances[$dtstart->UTC('Y-m-d\TH:i:s\Z')] = $comp; $rrule = $comp->GetProperty('RRULE'); diff --git a/testing/tests/timezone/5040-expand.result b/testing/tests/timezone/5040-expand.result index e70636e3..8565d293 100644 --- a/testing/tests/timezone/5040-expand.result +++ b/testing/tests/timezone/5040-expand.result @@ -12,133 +12,133 @@ Content-Type: application/xml; charset="utf-8" Gregorian NZST - 2011-04-02T15:00:00Z + 2011-04-03T14:00:00Z +13:00 +12:00 NZDT - 2011-09-24T14:00:00Z + 2011-09-25T14:00:00Z +12:00 +13:00 NZST - 2012-03-31T15:00:00Z + 2012-04-01T14:00:00Z +13:00 +12:00 NZDT - 2012-09-29T14:00:00Z + 2012-09-30T14:00:00Z +12:00 +13:00 NZST - 2013-04-06T15:00:00Z + 2013-04-07T14:00:00Z +13:00 +12:00 NZDT - 2013-09-28T14:00:00Z + 2013-09-29T14:00:00Z +12:00 +13:00 NZST - 2014-04-05T15:00:00Z + 2014-04-06T14:00:00Z +13:00 +12:00 NZDT - 2014-09-27T14:00:00Z + 2014-09-28T14:00:00Z +12:00 +13:00 NZST - 2015-04-04T15:00:00Z + 2015-04-05T14:00:00Z +13:00 +12:00 NZDT - 2015-09-26T14:00:00Z + 2015-09-27T14:00:00Z +12:00 +13:00 NZST - 2016-04-02T15:00:00Z + 2016-04-03T14:00:00Z +13:00 +12:00 NZDT - 2016-09-24T14:00:00Z + 2016-09-25T14:00:00Z +12:00 +13:00 NZST - 2017-04-01T15:00:00Z + 2017-04-02T14:00:00Z +13:00 +12:00 NZDT - 2017-09-23T14:00:00Z + 2017-09-24T14:00:00Z +12:00 +13:00 NZST - 2018-03-31T15:00:00Z + 2018-04-01T14:00:00Z +13:00 +12:00 NZDT - 2018-09-29T14:00:00Z + 2018-09-30T14:00:00Z +12:00 +13:00 NZST - 2019-04-06T15:00:00Z + 2019-04-07T14:00:00Z +13:00 +12:00 NZDT - 2019-09-28T14:00:00Z + 2019-09-29T14:00:00Z +12:00 +13:00 NZST - 2020-04-04T15:00:00Z + 2020-04-05T14:00:00Z +13:00 +12:00 NZDT - 2020-09-26T14:00:00Z + 2020-09-27T14:00:00Z +12:00 +13:00 NZST - 2021-04-03T15:00:00Z + 2021-04-04T14:00:00Z +13:00 +12:00 NZDT - 2021-09-25T14:00:00Z + 2021-09-26T14:00:00Z +12:00 +13:00 diff --git a/testing/tests/timezone/5041-expand.result b/testing/tests/timezone/5041-expand.result index a3298a14..b85119d5 100644 --- a/testing/tests/timezone/5041-expand.result +++ b/testing/tests/timezone/5041-expand.result @@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2009-11-01T07:00:00Z + 2009-11-01T06:00:00Z -04:00 -05:00 @@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2010-11-07T07:00:00Z + 2010-11-07T06:00:00Z -04:00 -05:00 @@ -42,7 +42,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2011-11-06T07:00:00Z + 2011-11-06T06:00:00Z -04:00 -05:00 @@ -54,7 +54,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2012-11-04T07:00:00Z + 2012-11-04T06:00:00Z -04:00 -05:00 @@ -66,7 +66,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2013-11-03T07:00:00Z + 2013-11-03T06:00:00Z -04:00 -05:00 @@ -78,7 +78,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2014-11-02T07:00:00Z + 2014-11-02T06:00:00Z -04:00 -05:00 @@ -90,7 +90,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2015-11-01T07:00:00Z + 2015-11-01T06:00:00Z -04:00 -05:00 @@ -102,7 +102,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2016-11-06T07:00:00Z + 2016-11-06T06:00:00Z -04:00 -05:00 @@ -114,7 +114,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2017-11-05T07:00:00Z + 2017-11-05T06:00:00Z -04:00 -05:00 @@ -126,7 +126,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2018-11-04T07:00:00Z + 2018-11-04T06:00:00Z -04:00 -05:00 @@ -138,7 +138,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2019-11-03T07:00:00Z + 2019-11-03T06:00:00Z -04:00 -05:00 @@ -150,7 +150,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2020-11-01T07:00:00Z + 2020-11-01T06:00:00Z -04:00 -05:00 @@ -162,7 +162,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2021-11-07T07:00:00Z + 2021-11-07T06:00:00Z -04:00 -05:00 diff --git a/testing/tests/timezone/5042-expand.result b/testing/tests/timezone/5042-expand.result index 8156f1a9..af9c6c8b 100644 --- a/testing/tests/timezone/5042-expand.result +++ b/testing/tests/timezone/5042-expand.result @@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2011-11-06T07:00:00Z + 2011-11-06T06:00:00Z -04:00 -05:00 @@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2012-11-04T07:00:00Z + 2012-11-04T06:00:00Z -04:00 -05:00 diff --git a/testing/tests/timezone/5043-expand.result b/testing/tests/timezone/5043-expand.result index 70e5e037..6cf071da 100644 --- a/testing/tests/timezone/5043-expand.result +++ b/testing/tests/timezone/5043-expand.result @@ -18,7 +18,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2014-11-02T07:00:00Z + 2014-11-02T06:00:00Z -04:00 -05:00 @@ -30,7 +30,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2015-11-01T07:00:00Z + 2015-11-01T06:00:00Z -04:00 -05:00 @@ -42,7 +42,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2016-11-06T07:00:00Z + 2016-11-06T06:00:00Z -04:00 -05:00 @@ -54,7 +54,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2017-11-05T07:00:00Z + 2017-11-05T06:00:00Z -04:00 -05:00 @@ -66,7 +66,7 @@ Content-Type: application/xml; charset="utf-8" EST - 2018-11-04T07:00:00Z + 2018-11-04T06:00:00Z -04:00 -05:00 From 037506f2055a4a8c4ac2e6da6043e3140ad7d0bb Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 23 Sep 2011 13:07:37 +1200 Subject: [PATCH 11/31] Add regression test for remote data load. --- .../tests/timezone/5020-updatecheck.result | 374 +++++++++++++++++- testing/tests/timezone/5020-updatecheck.test | 4 +- .../tests/timezone/5025-update-remote.result | 9 + .../tests/timezone/5025-update-remote.test | 11 + testing/tests/timezone/5030-get.result | 152 ++++++- 5 files changed, 537 insertions(+), 13 deletions(-) create mode 100644 testing/tests/timezone/5025-update-remote.result create mode 100644 testing/tests/timezone/5025-update-remote.test diff --git a/testing/tests/timezone/5020-updatecheck.result b/testing/tests/timezone/5020-updatecheck.result index e20f3a8b..4eafa2ca 100644 --- a/testing/tests/timezone/5020-updatecheck.result +++ b/testing/tests/timezone/5020-updatecheck.result @@ -1,6 +1,368 @@ -HTTP/1.1 200 OK -Date: Dow, 01 Jan 2000 00:00:00 GMT -Content-Length: 48 -Content-Type: text/plain - -Added 362 new zones and updated data for 5 zones \ No newline at end of file +Writing new zone for 'Europe/Budapest' +Writing new zone for 'Europe/Podgorica' +Writing new zone for 'Europe/Mariehamn' +Writing new zone for 'Europe/Copenhagen' +Writing new zone for 'Europe/Lisbon' +Writing new zone for 'Europe/Moscow' +Writing new zone for 'Europe/Vienna' +Writing new zone for 'Europe/Andorra' +Writing updated zone for 'Europe/Prague' +Writing new zone for 'Europe/Simferopol' +Writing new zone for 'Europe/Amsterdam' +Writing new zone for 'Europe/Minsk' +Writing new zone for 'Europe/Monaco' +Writing new zone for 'Europe/Zaporozhye' +Writing new zone for 'Europe/Sofia' +Writing new zone for 'Europe/Tirane' +Writing new zone for 'Europe/Kiev' +Writing new zone for 'Europe/Jersey' +Writing updated zone for 'Europe/Helsinki' +Writing new zone for 'Europe/Istanbul' +Writing new zone for 'Europe/Sarajevo' +Writing new zone for 'Europe/Zurich' +Writing new zone for 'Europe/Riga' +Writing new zone for 'Europe/Guernsey' +Writing new zone for 'Europe/Bucharest' +Writing new zone for 'Europe/Tallinn' +Writing new zone for 'Europe/Vatican' +Writing new zone for 'Europe/Berlin' +Writing new zone for 'Europe/Oslo' +Writing new zone for 'Europe/Stockholm' +Writing new zone for 'Europe/Belgrade' +Writing new zone for 'Europe/Ljubljana' +Writing new zone for 'Europe/Athens' +Writing new zone for 'Europe/Madrid' +Writing new zone for 'Europe/Gibraltar' +Writing new zone for 'Europe/Bratislava' +Writing new zone for 'Europe/Warsaw' +Writing new zone for 'Europe/Brussels' +Writing new zone for 'Europe/Uzhgorod' +Writing new zone for 'Europe/London' +Writing new zone for 'Europe/Volgograd' +Writing new zone for 'Europe/San_Marino' +Writing new zone for 'Europe/Dublin' +Writing new zone for 'Europe/Isle_of_Man' +Writing new zone for 'Europe/Rome' +Writing new zone for 'Europe/Vilnius' +Writing new zone for 'Europe/Skopje' +Writing new zone for 'Europe/Vaduz' +Writing new zone for 'Europe/Zagreb' +Writing new zone for 'Europe/Paris' +Writing new zone for 'Europe/Luxembourg' +Writing new zone for 'Europe/Kaliningrad' +Writing new zone for 'Europe/Nicosia' +Writing new zone for 'Europe/Chisinau' +Writing new zone for 'Europe/Malta' +Writing new zone for 'Europe/Samara' +Writing new zone for 'Atlantic/St_Helena' +Writing new zone for 'Atlantic/Madeira' +Writing new zone for 'Atlantic/Cape_Verde' +Writing new zone for 'Atlantic/Canary' +Writing new zone for 'Atlantic/Azores' +Writing new zone for 'Atlantic/Reykjavik' +Writing new zone for 'Atlantic/Faroe' +Writing new zone for 'Atlantic/Bermuda' +Writing new zone for 'Pacific/Norfolk' +Writing new zone for 'Pacific/Funafuti' +Writing new zone for 'Pacific/Tahiti' +Writing new zone for 'Pacific/Majuro' +Writing new zone for 'Pacific/Wake' +Writing new zone for 'Pacific/Pago_Pago' +Writing new zone for 'Pacific/Palau' +Writing new zone for 'Pacific/Marquesas' +Writing new zone for 'Pacific/Fakaofo' +Writing new zone for 'Pacific/Efate' +Writing new zone for 'Pacific/Noumea' +Writing new zone for 'Pacific/Guadalcanal' +Writing new zone for 'Pacific/Chatham' +Writing new zone for 'Pacific/Gambier' +Writing new zone for 'Pacific/Tarawa' +Writing new zone for 'Pacific/Pitcairn' +Writing new zone for 'Pacific/Nauru' +Writing new zone for 'Pacific/Johnston' +Writing new zone for 'Pacific/Rarotonga' +Writing new zone for 'Pacific/Pohnpei' +Writing new zone for 'Pacific/Tongatapu' +Writing new zone for 'Pacific/Fiji' +Writing new zone for 'Pacific/Kwajalein' +Writing new zone for 'Pacific/Guam' +Writing new zone for 'Pacific/Wallis' +Writing new zone for 'Pacific/Kosrae' +Writing new zone for 'Pacific/Port_Moresby' +Writing new zone for 'Pacific/Niue' +Writing new zone for 'Pacific/Enderbury' +Writing new zone for 'Pacific/Kiritimati' +Writing new zone for 'Pacific/Honolulu' +Writing new zone for 'Pacific/Midway' +Writing updated zone for 'Pacific/Auckland' +Writing new zone for 'Pacific/Saipan' +Writing new zone for 'Pacific/Chuuk' +Writing new zone for 'Pacific/Apia' +Writing new zone for 'Australia/Sydney' +Writing new zone for 'Australia/Hobart' +Writing new zone for 'Australia/Currie' +Writing new zone for 'Australia/Adelaide' +Writing new zone for 'Australia/Broken_Hill' +Writing new zone for 'Australia/Eucla' +Writing new zone for 'Australia/Darwin' +Writing new zone for 'Australia/Brisbane' +Writing new zone for 'Australia/Melbourne' +Writing new zone for 'Australia/Perth' +Writing new zone for 'Australia/Lindeman' +Writing new zone for 'Australia/Lord_Howe' +Writing new zone for 'Africa/Casablanca' +Writing new zone for 'Africa/Ndjamena' +Writing new zone for 'Africa/Addis_Ababa' +Writing new zone for 'Africa/Windhoek' +Writing new zone for 'Africa/Nouakchott' +Writing new zone for 'Africa/Tunis' +Writing new zone for 'Africa/Algiers' +Writing new zone for 'Africa/Johannesburg' +Writing new zone for 'Africa/Cairo' +Writing new zone for 'Africa/Bamako' +Writing new zone for 'Africa/Abidjan' +Writing new zone for 'Africa/Mbabane' +Writing new zone for 'Africa/Maseru' +Writing new zone for 'Africa/Mogadishu' +Writing new zone for 'Africa/Banjul' +Writing new zone for 'Africa/Freetown' +Writing new zone for 'Africa/Luanda' +Writing new zone for 'Africa/Dakar' +Writing new zone for 'Africa/Kampala' +Writing new zone for 'Africa/Dar_es_Salaam' +Writing new zone for 'Africa/Malabo' +Writing new zone for 'Africa/Kinshasa' +Writing new zone for 'Africa/Kigali' +Writing new zone for 'Africa/Bujumbura' +Writing new zone for 'Africa/Conakry' +Writing new zone for 'Africa/Blantyre' +Writing new zone for 'Africa/Niamey' +Writing new zone for 'Africa/Djibouti' +Writing new zone for 'Africa/Lagos' +Writing new zone for 'Africa/Brazzaville' +Writing new zone for 'Africa/Tripoli' +Writing new zone for 'Africa/Lusaka' +Writing new zone for 'Africa/Ouagadougou' +Writing new zone for 'Africa/Bangui' +Writing new zone for 'Africa/El_Aaiun' +Writing new zone for 'Africa/Lubumbashi' +Writing new zone for 'Africa/Bissau' +Writing new zone for 'Africa/Libreville' +Writing new zone for 'Africa/Harare' +Writing new zone for 'Africa/Porto-Novo' +Writing new zone for 'Africa/Monrovia' +Writing new zone for 'Africa/Juba' +Writing new zone for 'Africa/Ceuta' +Writing new zone for 'Africa/Nairobi' +Writing new zone for 'Africa/Douala' +Writing new zone for 'Africa/Khartoum' +Writing new zone for 'Africa/Maputo' +Writing new zone for 'Africa/Accra' +Writing new zone for 'Africa/Lome' +Writing new zone for 'Africa/Sao_Tome' +Writing new zone for 'Africa/Asmara' +Writing new zone for 'Africa/Gaborone' +Writing new zone for 'Arctic/Longyearbyen' +Writing new zone for 'Antarctica/Rothera' +Writing new zone for 'Antarctica/South_Pole' +Writing new zone for 'Antarctica/Mawson' +Writing new zone for 'Antarctica/Casey' +Writing new zone for 'Antarctica/Palmer' +Writing new zone for 'Antarctica/Vostok' +Writing new zone for 'Antarctica/Macquarie' +Writing new zone for 'Antarctica/Syowa' +Writing new zone for 'Antarctica/McMurdo' +Writing new zone for 'Antarctica/DumontDUrville' +Writing new zone for 'Antarctica/Davis' +Writing new zone for 'America/Chihuahua' +Writing new zone for 'America/Cambridge_Bay' +Writing new zone for 'America/St_Johns' +Writing new zone for 'America/Cancun' +Writing new zone for 'America/Toronto' +Writing new zone for 'America/Chicago' +Writing new zone for 'America/Metlakatla' +Writing new zone for 'America/Winnipeg' +Writing new zone for 'America/North_Dakota/Beulah' +Writing new zone for 'America/North_Dakota/Center' +Writing new zone for 'America/North_Dakota/New_Salem' +Writing new zone for 'America/Barbados' +Writing new zone for 'America/Moncton' +Writing new zone for 'America/Mazatlan' +Writing new zone for 'America/Anguilla' +Writing new zone for 'America/Tortola' +Writing new zone for 'America/Juneau' +Writing new zone for 'America/St_Vincent' +Writing new zone for 'America/Inuvik' +Writing new zone for 'America/Blanc-Sablon' +Writing new zone for 'America/Iqaluit' +Writing new zone for 'America/Swift_Current' +Writing new zone for 'America/Rainy_River' +Writing new zone for 'America/Scoresbysund' +Writing new zone for 'America/Costa_Rica' +Writing new zone for 'America/Dominica' +Writing new zone for 'America/Tegucigalpa' +Writing new zone for 'America/El_Salvador' +Writing new zone for 'America/Grand_Turk' +Writing new zone for 'America/Nome' +Writing new zone for 'America/Ojinaga' +Writing new zone for 'America/Tijuana' +Writing new zone for 'America/Jamaica' +Writing new zone for 'America/Mexico_City' +Writing new zone for 'America/Guatemala' +Writing new zone for 'America/Santa_Isabel' +Writing new zone for 'America/Nassau' +Writing new zone for 'America/Shiprock' +Writing new zone for 'America/St_Lucia' +Writing new zone for 'America/Marigot' +Writing new zone for 'America/Grenada' +Writing new zone for 'America/Port-au-Prince' +Writing new zone for 'America/St_Kitts' +Writing new zone for 'America/Atikokan' +Writing new zone for 'America/Miquelon' +Writing new zone for 'America/Anchorage' +Writing new zone for 'America/Hermosillo' +Writing new zone for 'America/Managua' +Writing new zone for 'America/Antigua' +Writing new zone for 'America/Godthab' +Writing new zone for 'America/Phoenix' +Writing new zone for 'America/Cayman' +Writing new zone for 'America/Sitka' +Writing new zone for 'America/Thule' +Writing new zone for 'America/Montserrat' +Writing new zone for 'America/Martinique' +Writing new zone for 'America/Puerto_Rico' +Writing new zone for 'America/Adak' +Writing new zone for 'America/Dawson' +Writing updated zone for 'America/New_York' +Writing new zone for 'America/Monterrey' +Writing new zone for 'America/Whitehorse' +Writing new zone for 'America/Goose_Bay' +Writing new zone for 'America/Guadeloupe' +Writing new zone for 'America/Dawson_Creek' +Writing new zone for 'America/Resolute' +Writing new zone for 'America/Belize' +Writing new zone for 'America/Denver' +Writing new zone for 'America/Merida' +Writing updated zone for 'America/Los_Angeles' +Writing new zone for 'America/Halifax' +Writing new zone for 'America/Regina' +Writing new zone for 'America/St_Barthelemy' +Writing new zone for 'America/Bahia_Banderas' +Writing new zone for 'America/Indiana/Winamac' +Writing new zone for 'America/Indiana/Tell_City' +Writing new zone for 'America/Indiana/Vincennes' +Writing new zone for 'America/Indiana/Indianapolis' +Writing new zone for 'America/Indiana/Petersburg' +Writing new zone for 'America/Indiana/Knox' +Writing new zone for 'America/Indiana/Marengo' +Writing new zone for 'America/Indiana/Vevay' +Writing new zone for 'America/Kentucky/Louisville' +Writing new zone for 'America/Kentucky/Monticello' +Writing new zone for 'America/Rankin_Inlet' +Writing new zone for 'America/Glace_Bay' +Writing new zone for 'America/Yakutat' +Writing new zone for 'America/Boise' +Writing new zone for 'America/Edmonton' +Writing new zone for 'America/Yellowknife' +Writing new zone for 'America/St_Thomas' +Writing new zone for 'America/Montreal' +Writing new zone for 'America/Pangnirtung' +Writing new zone for 'America/Detroit' +Writing new zone for 'America/Vancouver' +Writing new zone for 'America/Matamoros' +Writing new zone for 'America/Nipigon' +Writing new zone for 'America/Havana' +Writing new zone for 'America/Menominee' +Writing new zone for 'America/Thunder_Bay' +Writing new zone for 'America/Santo_Domingo' +Writing new zone for 'America/Danmarkshavn' +Writing new zone for 'America/Panama' +Writing new zone for 'Indian/Chagos' +Writing new zone for 'Indian/Comoro' +Writing new zone for 'Indian/Mayotte' +Writing new zone for 'Indian/Kerguelen' +Writing new zone for 'Indian/Mauritius' +Writing new zone for 'Indian/Mahe' +Writing new zone for 'Indian/Antananarivo' +Writing new zone for 'Indian/Maldives' +Writing new zone for 'Indian/Reunion' +Writing new zone for 'Indian/Christmas' +Writing new zone for 'Indian/Cocos' +Writing new zone for 'Asia/Seoul' +Writing new zone for 'Asia/Sakhalin' +Writing new zone for 'Asia/Tehran' +Writing new zone for 'Asia/Aden' +Writing new zone for 'Asia/Macau' +Writing new zone for 'Asia/Bishkek' +Writing new zone for 'Asia/Kabul' +Writing new zone for 'Asia/Hovd' +Writing new zone for 'Asia/Anadyr' +Writing new zone for 'Asia/Kuwait' +Writing new zone for 'Asia/Omsk' +Writing new zone for 'Asia/Manila' +Writing new zone for 'Asia/Makassar' +Writing new zone for 'Asia/Vientiane' +Writing new zone for 'Asia/Oral' +Writing new zone for 'Asia/Kashgar' +Writing new zone for 'Asia/Yekaterinburg' +Writing new zone for 'Asia/Kamchatka' +Writing new zone for 'Asia/Harbin' +Writing new zone for 'Asia/Aqtobe' +Writing new zone for 'Asia/Chongqing' +Writing new zone for 'Asia/Samarkand' +Writing new zone for 'Asia/Kuala_Lumpur' +Writing new zone for 'Asia/Taipei' +Writing new zone for 'Asia/Shanghai' +Writing new zone for 'Asia/Singapore' +Writing new zone for 'Asia/Kuching' +Writing new zone for 'Asia/Tbilisi' +Writing new zone for 'Asia/Dhaka' +Writing new zone for 'Asia/Krasnoyarsk' +Writing new zone for 'Asia/Istanbul' +Writing new zone for 'Asia/Tashkent' +Writing new zone for 'Asia/Jerusalem' +Writing new zone for 'Asia/Ulaanbaatar' +Writing new zone for 'Asia/Beirut' +Writing new zone for 'Asia/Jayapura' +Writing new zone for 'Asia/Tokyo' +Writing new zone for 'Asia/Bangkok' +Writing new zone for 'Asia/Kolkata' +Writing new zone for 'Asia/Baku' +Writing new zone for 'Asia/Karachi' +Writing new zone for 'Asia/Muscat' +Writing new zone for 'Asia/Kathmandu' +Writing new zone for 'Asia/Gaza' +Writing new zone for 'Asia/Yerevan' +Writing new zone for 'Asia/Colombo' +Writing new zone for 'Asia/Phnom_Penh' +Writing new zone for 'Asia/Vladivostok' +Writing new zone for 'Asia/Almaty' +Writing new zone for 'Asia/Riyadh' +Writing new zone for 'Asia/Thimphu' +Writing new zone for 'Asia/Dubai' +Writing new zone for 'Asia/Qyzylorda' +Writing new zone for 'Asia/Aqtau' +Writing new zone for 'Asia/Hong_Kong' +Writing new zone for 'Asia/Novosibirsk' +Writing new zone for 'Asia/Dushanbe' +Writing new zone for 'Asia/Ashgabat' +Writing new zone for 'Asia/Brunei' +Writing new zone for 'Asia/Novokuznetsk' +Writing new zone for 'Asia/Pyongyang' +Writing new zone for 'Asia/Magadan' +Writing new zone for 'Asia/Bahrain' +Writing new zone for 'Asia/Damascus' +Writing new zone for 'Asia/Qatar' +Writing new zone for 'Asia/Choibalsan' +Writing new zone for 'Asia/Ho_Chi_Minh' +Writing new zone for 'Asia/Yakutsk' +Writing new zone for 'Asia/Irkutsk' +Writing new zone for 'Asia/Dili' +Writing new zone for 'Asia/Urumqi' +Writing new zone for 'Asia/Nicosia' +Writing new zone for 'Asia/Pontianak' +Writing new zone for 'Asia/Amman' +Writing new zone for 'Asia/Jakarta' +Writing new zone for 'Asia/Baghdad' +Writing new zone for 'Asia/Rangoon' +Added 362 new zones, updated data for 5 zones and added 0 new aliases diff --git a/testing/tests/timezone/5020-updatecheck.test b/testing/tests/timezone/5020-updatecheck.test index 487a2857..996a34c6 100644 --- a/testing/tests/timezone/5020-updatecheck.test +++ b/testing/tests/timezone/5020-updatecheck.test @@ -1,7 +1,5 @@ # # Request the timezone server update itself # -TYPE=GET -URL=http://regression.host/tz.php?action=updatecheck -HEAD +SCRIPT=../scripts/tz-update.php regression.host ../zonedb/vtimezones diff --git a/testing/tests/timezone/5025-update-remote.result b/testing/tests/timezone/5025-update-remote.result new file mode 100644 index 00000000..ea95e9e4 --- /dev/null +++ b/testing/tests/timezone/5025-update-remote.result @@ -0,0 +1,9 @@ +UPDATE 2 +Fetching timezone list +Found timezone Pacific/Auckland needs updating +Fetching zone for Pacific/Auckland from http://dev.bedework.org/tzsvr/?action=get&tzid=Pacific/Auckland +Writing updated zone for 'Pacific/Auckland' +Found timezone Pacific/Apia needs updating +Fetching zone for Pacific/Apia from http://dev.bedework.org/tzsvr/?action=get&tzid=Pacific/Apia +Writing updated zone for 'Pacific/Apia' +Added 0 new zones, updated data for 2 zones and added 206 new aliases diff --git a/testing/tests/timezone/5025-update-remote.test b/testing/tests/timezone/5025-update-remote.test new file mode 100644 index 00000000..a8b04960 --- /dev/null +++ b/testing/tests/timezone/5025-update-remote.test @@ -0,0 +1,11 @@ +# +# Request the timezone server update itself +# + +# First set some old last_modified but only for Pacific zones +SCRIPT=psql regression -c "UPDATE timezones SET last_modified='2011-01-01' where tzid ~ '^Pacific/A'" + +# +# Now sync with bedework server +SCRIPT=../scripts/tz-update.php regression.host http://dev.bedework.org/tzsvr/ + diff --git a/testing/tests/timezone/5030-get.result b/testing/tests/timezone/5030-get.result index 08df2fab..590e1953 100644 --- a/testing/tests/timezone/5030-get.result +++ b/testing/tests/timezone/5030-get.result @@ -1,12 +1,13 @@ HTTP/1.1 200 OK Date: Dow, 01 Jan 2000 00:00:00 GMT ETag: "Some good etag" -Content-Length: 601 +Content-Length: 3658 Content-Type: text/calendar BEGIN:VCALENDAR -PRODID:-//Morphoss Ltd//NONSGML aCal//EN VERSION:2.0 +CALSCALE:GREGORIAN +PRODID:/bedework.org//NONSGML Bedework//EN LAST-MODIFIED:all good TZ-URL: http://mycaldav/tz.php?action=get&tzid=Pacific/Auckland&lang=en_US @@ -18,15 +19,158 @@ BEGIN:DAYLIGHT TZOFFSETFROM:+1200 TZOFFSETTO:+1300 TZNAME:NZDT -DTSTART:19700927T020000 +DTSTART:20070930T020000 RRULE:FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:+1300 TZOFFSETTO:+1200 TZNAME:NZST -DTSTART:19700405T030000 +DTSTART:20080406T030000 RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU END:STANDARD +BEGIN:STANDARD +TZOFFSETFROM:+113904 +TZOFFSETTO:+1130 +TZNAME:NZMT +DTSTART:18681102T000000 +RDATE:18681102T000000 +END:STANDARD +BEGIN:DAYLIGHT +TZOFFSETFROM:+1130 +TZOFFSETTO:+1230 +TZNAME:NZST +DTSTART:19271106T020000 +RDATE:19271106T020000 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+1230 +TZOFFSETTO:+1130 +TZNAME:NZMT +DTSTART:19280304T020000 +RDATE:19280304T020000 +END:STANDARD +BEGIN:DAYLIGHT +TZOFFSETFROM:+1130 +TZOFFSETTO:+1200 +TZNAME:NZST +DTSTART:19281014T020000 +RDATE:19281014T020000 +RDATE:19291013T020000 +RDATE:19301012T020000 +RDATE:19311011T020000 +RDATE:19321009T020000 +RDATE:19331008T020000 +RDATE:19340930T020000 +RDATE:19350929T020000 +RDATE:19360927T020000 +RDATE:19370926T020000 +RDATE:19380925T020000 +RDATE:19390924T020000 +RDATE:19400929T020000 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+1200 +TZOFFSETTO:+1130 +TZNAME:NZMT +DTSTART:19290317T020000 +RDATE:19290317T020000 +RDATE:19300316T020000 +RDATE:19310315T020000 +RDATE:19320320T020000 +RDATE:19330319T020000 +RDATE:19340429T020000 +RDATE:19350428T020000 +RDATE:19360426T020000 +RDATE:19370425T020000 +RDATE:19380424T020000 +RDATE:19390430T020000 +RDATE:19400428T020000 +END:STANDARD +BEGIN:STANDARD +TZOFFSETFROM:+1200 +TZOFFSETTO:+1200 +TZNAME:NZST +DTSTART:19460101T000000 +RDATE:19460101T000000 +END:STANDARD +BEGIN:DAYLIGHT +TZOFFSETFROM:+1200 +TZOFFSETTO:+1300 +TZNAME:NZDT +DTSTART:19741103T020000 +RDATE:19741103T020000 +RDATE:19751026T020000 +RDATE:19761031T020000 +RDATE:19771030T020000 +RDATE:19781029T020000 +RDATE:19791028T020000 +RDATE:19801026T020000 +RDATE:19811025T020000 +RDATE:19821031T020000 +RDATE:19831030T020000 +RDATE:19841028T020000 +RDATE:19851027T020000 +RDATE:19861026T020000 +RDATE:19871025T020000 +RDATE:19881030T020000 +RDATE:19891008T020000 +RDATE:19901007T020000 +RDATE:19911006T020000 +RDATE:19921004T020000 +RDATE:19931003T020000 +RDATE:19941002T020000 +RDATE:19951001T020000 +RDATE:19961006T020000 +RDATE:19971005T020000 +RDATE:19981004T020000 +RDATE:19991003T020000 +RDATE:20001001T020000 +RDATE:20011007T020000 +RDATE:20021006T020000 +RDATE:20031005T020000 +RDATE:20041003T020000 +RDATE:20051002T020000 +RDATE:20061001T020000 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+1300 +TZOFFSETTO:+1200 +TZNAME:NZST +DTSTART:19750223T020000 +RDATE:19750223T020000 +RDATE:19760307T030000 +RDATE:19770306T030000 +RDATE:19780305T030000 +RDATE:19790304T030000 +RDATE:19800302T030000 +RDATE:19810301T030000 +RDATE:19820307T030000 +RDATE:19830306T030000 +RDATE:19840304T030000 +RDATE:19850303T030000 +RDATE:19860302T030000 +RDATE:19870301T030000 +RDATE:19880306T030000 +RDATE:19890305T030000 +RDATE:19900318T030000 +RDATE:19910317T030000 +RDATE:19920315T030000 +RDATE:19930321T030000 +RDATE:19940320T030000 +RDATE:19950319T030000 +RDATE:19960317T030000 +RDATE:19970316T030000 +RDATE:19980315T030000 +RDATE:19990321T030000 +RDATE:20000319T030000 +RDATE:20010318T030000 +RDATE:20020317T030000 +RDATE:20030316T030000 +RDATE:20040321T030000 +RDATE:20050320T030000 +RDATE:20060319T030000 +RDATE:20070318T030000 +END:STANDARD END:VTIMEZONE END:VCALENDAR From 20c3819f85ab944339d3d0686b0b46701c5b6221 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 23 Sep 2011 13:08:02 +1200 Subject: [PATCH 12/31] Output a note regarding which tzdata version we are using as primary source. --- zonedb/update-tzdata.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/zonedb/update-tzdata.sh b/zonedb/update-tzdata.sh index 978f37ea..35808bf3 100755 --- a/zonedb/update-tzdata.sh +++ b/zonedb/update-tzdata.sh @@ -14,3 +14,4 @@ TZDATAFILE="`ls -t tzdata*.tar.gz|tail -n 1`" ) vzic --olson-dir tzdata --output-dir vtimezones +echo "Olson `echo $TZDATAFILE | cut -f1 -d.`" >vtimezones/primary-source From cd7f8c35f24a2269751833b6c65169777d308e25 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 12:56:11 +1200 Subject: [PATCH 13/31] Update to version 1.2.11 --- dba/davical.sql | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/dba/davical.sql b/dba/davical.sql index 105e09a6..f05645e5 100644 --- a/dba/davical.sql +++ b/dba/davical.sql @@ -69,12 +69,28 @@ LANGUAGE 'PlPgSQL' IMMUTABLE STRICT; CREATE SEQUENCE dav_id_seq; --- Not particularly needed, perhaps, except as a way to collect --- a bunch of valid iCalendar time zone specifications... :-) -CREATE TABLE time_zone ( - tz_id TEXT PRIMARY KEY, - tz_locn TEXT, - tz_spec TEXT +-- Used by the timezone server, but we also load it with random timezones +-- from events, if we don't already have those definitions. +CREATE TABLE timezones ( + our_tzno SERIAL PRIMARY KEY, + tzid TEXT UNIQUE NOT NULL, + olson_name TEXT, + active BOOLEAN, + last_modified TIMESTAMP DEFAULT current_timestamp, + etag TEXT, + vtimezone TEXT +); + +CREATE TABLE tz_aliases ( + our_tzno INT8 REFERENCES timezones(our_tzno), + tzalias TEXT NOT NULL +); + +CREATE TABLE tz_localnames ( + our_tzno INT8 REFERENCES timezones(our_tzno), + locale TEXT NOT NULL, + localised_name TEXT NOT NULL, + preferred BOOLEAN DEFAULT TRUE ); @@ -95,7 +111,7 @@ CREATE TABLE collection ( is_addressbook BOOLEAN DEFAULT FALSE, resourcetypes TEXT DEFAULT '', schedule_transp TEXT DEFAULT 'opaque', - timezone TEXT REFERENCES time_zone(tz_id) ON DELETE SET NULL ON UPDATE CASCADE, + timezone TEXT REFERENCES timezones(tzid) ON DELETE SET NULL ON UPDATE CASCADE, description TEXT DEFAULT '', UNIQUE(user_no,dav_name) ); @@ -143,7 +159,7 @@ CREATE TABLE calendar_item ( rrule TEXT, url TEXT, percent_complete NUMERIC(7,2), - tz_id TEXT REFERENCES time_zone( tz_id ), + tz_id TEXT REFERENCES timezones( tzid ), status TEXT, completed TIMESTAMP WITH TIME ZONE, dav_id INT8 UNIQUE, @@ -428,4 +444,4 @@ $$ LANGUAGE plpgsql ; ALTER TABLE dav_binding ADD CONSTRAINT "dav_name_does_not_exist" CHECK (NOT real_path_exists(dav_name)); -SELECT new_db_revision(1,2,10, 'Octobre' ); +SELECT new_db_revision(1,2,11, 'Novembre' ); From 78e756e8a4137861697bb1a1b20b6c2e7e13d7cf Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 12:56:53 +1200 Subject: [PATCH 14/31] Add source/contact information to capabilities. --- inc/tz/capabilities.php | 23 +++++++++++++++---- .../tests/timezone/5000-capabilities.result | 7 +++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/inc/tz/capabilities.php b/inc/tz/capabilities.php index fd2610d3..7d8105f2 100644 --- a/inc/tz/capabilities.php +++ b/inc/tz/capabilities.php @@ -8,14 +8,26 @@ * @copyright Morphoss Ltd * @license http://gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - +$primary_source = ''; +$source = ''; +if ( substr($c->tzsource,0,4) == 'http' ) { + $source = ''.$c->tzsource.''; +} +else { + if ( empty($c->tzsource) ) $c->tzsource = '../zonedb/vtimezones'; + if ( file_exists($c->tzsource.'/primary-source') ) { + $primary_source = ''.file_get_contents($c->tzsource.'/primary-source').''; + } +} +$contact = $c->admin_email; header('Content-Type: application/xml; charset="utf-8"'); -?> + +echo << - Olson:2011m - mailto:tzs@example.org + $primary_source$source + mailto:$contact @@ -121,5 +133,6 @@ header('Content-Type: application/xml; charset="utf-8"'); Gets the capabilities of the server - - Olson:2011m + Olson tzdata2011j + mailto:tzs@example.org @@ -112,4 +113,4 @@ Content-Type: application/xml; charset="utf-8" capabilities Gets the capabilities of the server - + \ No newline at end of file From 963f23110d303bf1fee2c0f3a914878a9856c9ac Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 12:57:14 +1200 Subject: [PATCH 15/31] Hopefully nail that last LDAP niggle. --- inc/Principal.php | 2 +- inc/drivers_ldap.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/Principal.php b/inc/Principal.php index f0fc3596..fa78aeee 100644 --- a/inc/Principal.php +++ b/inc/Principal.php @@ -319,7 +319,7 @@ class Principal { * @return string The username */ function setUsername($new_username) { - if ( $this->exists ) return false; + if ( $this->exists && isset($this->username) ) return false; $this->username = $new_username; return $this->username; } diff --git a/inc/drivers_ldap.php b/inc/drivers_ldap.php index 895a2311..1fe7033e 100644 --- a/inc/drivers_ldap.php +++ b/inc/drivers_ldap.php @@ -346,9 +346,9 @@ function LDAP_check($username, $password ){ } else { dbg_error_log( "LDAP", "user %s doesn't exist in local DB, we need to create it",$username ); - $principal->setUsername($username ); } - + $principal->setUsername($username); + // The local cached user doesn't exist, or is older, so we create/update their details sync_user_from_LDAP( $principal, $mapping, $valid ); From 105af2c1b1ee5303bf2f7307651f7cac419b2f5a Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 12:59:23 +1200 Subject: [PATCH 16/31] Preparing to release 0.9.9.6 --- ChangeLog | 30 ++++++++++++++++++++++++++++++ VERSION | 2 +- debian/control | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 16e9fe59..01b26f0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2011-09-23 Andrew McMillan + * Release 0.9.9.6 + +2011-09-22 Andrew McMillan + * Implement Timezone Server Protocol per -02 draft RFC + * Add a script that can be run from cron to sync from LDAP. + * Fix accidental null assignments on update from external authentication (LDAP) + +2011-09-20 Andrew McMillan + * Add timezone and scheduling to the default regression set. + * Provide an alternative 1.2.10a patch with fixed check_db_revision(). + +2011-09-19 Andrew McMillan + * Rewrite time-range SQL clauses for clarity and correctness. + +2011-09-17 Andrew McMillan + * Tests for open-ended time-range calendar-query. + * Fix an error in calendar-query handling of time-range queries. + +2011-09-14 Andrew McMillan + * Migrate away from deprecated iCalendar class. + * Ensure username is initialised to something appropriate from LDAP + * Allow null dtstart to match any range, as per Scheduling Draft. + +2011-09-14 Rob Ostensen + * add a check to the setup page for the php calendar extension + +2011-09-13 Rob Ostensen + * skip scheduling attendees with schedule-agent set to something other than server + 2011-09-10 Andrew McMillan * Write schedule resources to attendee calendars and inboxes on PUT. diff --git a/VERSION b/VERSION index b2c002a3..a1dce4be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.9.5 +0.9.9.6 diff --git a/debian/control b/debian/control index b84ac4e6..c5f82f0f 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Homepage: http://davical.org/ Package: davical Architecture: all -Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (= 0.47-1), libdbd-pg-perl, libyaml-perl +Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (= 0.48-1), libdbd-pg-perl, libyaml-perl Recommends: postgresql (>= 8.3) Description: The DAViCal CalDAV Server The DAViCal CalDAV Server is designed to trivially store From 6d89db58d03decf271b07305fdf6adc4621a6836 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 14:29:41 +1200 Subject: [PATCH 17/31] Fix setting of PG password from administration.yml during upgrade. --- dba/update-davical-database | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dba/update-davical-database b/dba/update-davical-database index cde577bc..e8c2fa7e 100755 --- a/dba/update-davical-database +++ b/dba/update-davical-database @@ -322,7 +322,7 @@ sub apply_sql_file { push @psql_opts, "-p", "$dbport" if ( $dbport != 5432 ); push @psql_opts, "-U", $dbuser if ( $dbuser ne "" ); push @psql_opts, $dbname; # It seems that FreeBSD has a poorer argument parsing library so non-option arguments must be last - $ENV{'PGPASS'} = $dbpass if ( $dbpass ne "" ); + $ENV{'PGPASSWORD'} = $dbpass if ( $dbpass ne "" ); my $command = join ' ', @psql_opts; $last_results = `$command 2>&1 1>/dev/null`; From 32662509e98d6f7c941b91abf27c43487a80b230 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 24 Sep 2011 14:31:00 +1200 Subject: [PATCH 18/31] When external authentication is optional, check internal first. Internal authentication will always succeed or fail quickly, whereas external auth may fail slowly, so we check the known quick failure case first. --- inc/HTTPAuthSession.php | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/inc/HTTPAuthSession.php b/inc/HTTPAuthSession.php index fccdedea..50d2a513 100644 --- a/inc/HTTPAuthSession.php +++ b/inc/HTTPAuthSession.php @@ -272,6 +272,18 @@ class HTTPAuthSession { if(isset($c->login_append_domain_if_missing) && $c->login_append_domain_if_missing && !preg_match('/@/',$username)) $username.='@'.$c->domain_name; + if ( !isset($c->authenticate_hook) || !isset($c->authenticate_hook['call']) + || !function_exists($c->authenticate_hook['call']) + || (isset($c->authenticate_hook['optional']) && $c->authenticate_hook['optional']) ) + { + if ( $principal = new Principal('username', $username) ) { + if ( isset($c->dbg['password']) ) dbg_error_log( "password", ":CheckPassword: Name:%s, Pass:%s, File:%s, Active:%s", $username, $password, $principal->password, ($principal->user_active?'Yes':'No') ); + if ( $principal->user_active && session_validate_password( $password, $principal->password ) ) { + return $principal; + } + } + } + if ( isset($c->authenticate_hook) && isset($c->authenticate_hook['call']) && function_exists($c->authenticate_hook['call']) ) { /** * The authenticate hook needs to: @@ -284,24 +296,9 @@ class HTTPAuthSession { * It can expect that: * - Configuration data will be in $c->authenticate_hook['config'], which might be an array, or whatever is needed. */ - $hook_response = call_user_func( $c->authenticate_hook['call'], $username, $password ); - /** - * make the authentication hook optional: if the flag is set, ignore a return value of 'false' - */ - if (isset($c->authenticate_hook['optional']) && $c->authenticate_hook['optional']) { - if ($hook_response !== false) { return $hook_response; } - } - else { - return $hook_response; - } + return call_user_func( $c->authenticate_hook['call'], $username, $password ); } - if ( $principal = new Principal('username', $username) ) { - if ( isset($c->dbg['password']) ) dbg_error_log( "password", ":CheckPassword: Name:%s, Pass:%s, File:%s, Active:%s", $username, $password, $principal->password, ($principal->user_active?'Yes':'No') ); - if ( $principal->user_active && session_validate_password( $password, $principal->password ) ) { - return $principal; - } - } return false; } From 2127c294a3e72b90cbc2cf4f94507f32bf27a518 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sun, 25 Sep 2011 22:29:31 +1300 Subject: [PATCH 19/31] Various small fixes preparing for release. Correct logic for auto-creating addressbook for new user. Fix non-creation of default addressbook. Fix principal/collection edit to allow write of no privileges. Fix collection edit timezone list to use new table. Update davical & libawl version in always.php. Regression test changes with update to davical.sql. --- htdocs/always.php | 7 ++- inc/always.php.in | 1 + inc/auth-functions.php | 61 ++++++++++--------- inc/ui/collection-edit.php | 4 +- inc/ui/principal-edit.php | 4 +- .../regression-suite/Create-Database.result | 10 +-- .../Really Upgrade Database.result | 5 +- .../regression-suite/Upgrade-Database.result | 10 +-- .../tests/timezone/5000-capabilities.result | 4 +- 9 files changed, 49 insertions(+), 57 deletions(-) diff --git a/htdocs/always.php b/htdocs/always.php index 9f356778..1f06a602 100644 --- a/htdocs/always.php +++ b/htdocs/always.php @@ -174,8 +174,8 @@ init_gettext( 'davical', $c->locale_path ); * */ $c->code_version = 0; -$c->want_awl_version = '0.47'; -$c->version_string = '0.9.9.5'; // The actual version # is replaced into that during the build /release process +$c->want_awl_version = '0.48'; +$c->version_string = '0.9.9.6'; // The actual version # is replaced into that during the build /release process if ( isset($c->version_string) && preg_match( '/(\d+)\.(\d+)\.(\d+)(.*)/', $c->version_string, $matches) ) { $c->code_major = $matches[1]; $c->code_minor = $matches[2]; @@ -192,7 +192,7 @@ $_SERVER['SERVER_NAME'] = $c->domain_name; require_once('AwlQuery.php'); -$c->want_dbversion = array(1,2,10); +$c->want_dbversion = array(1,2,11); $c->schema_version = 0; $qry = new AwlQuery( 'SELECT schema_major, schema_minor, schema_patch FROM awl_db_revision ORDER BY schema_id DESC LIMIT 1;' ); if ( $qry->Exec('always',__LINE__,__FILE__) && $row = $qry->Fetch() ) { @@ -387,6 +387,7 @@ function privilege_to_bits( $raw_privs ) { case 'schedule-deliver' : $out_priv |= 7168; break; // 1024 + 2048 + 4096 case 'schedule-send' : $out_priv |= 57344; break; // 8192 + 16384 + 32768 case 'all' : $out_priv = DAVICAL_MAXPRIV; break; + case 'fake_privilege_for_input' : break; default: dbg_error_log( 'ERROR', 'Cannot convert privilege of "%s" into bits.', $priv ); diff --git a/inc/always.php.in b/inc/always.php.in index 39bc4cbd..05a9ac22 100644 --- a/inc/always.php.in +++ b/inc/always.php.in @@ -387,6 +387,7 @@ function privilege_to_bits( $raw_privs ) { case 'schedule-deliver' : $out_priv |= 7168; break; // 1024 + 2048 + 4096 case 'schedule-send' : $out_priv |= 57344; break; // 8192 + 16384 + 32768 case 'all' : $out_priv = DAVICAL_MAXPRIV; break; + case 'fake_privilege_for_input' : break; default: dbg_error_log( 'ERROR', 'Cannot convert privilege of "%s" into bits.', $priv ); diff --git a/inc/auth-functions.php b/inc/auth-functions.php index ffa4869f..57f23fb4 100644 --- a/inc/auth-functions.php +++ b/inc/auth-functions.php @@ -70,42 +70,45 @@ function getPrincipalByID( $principal_id, $use_cache = true ) { */ function CreateHomeCollections( $username ) { global $session, $c; - if ( ! isset($c->home_calendar_name) || strlen($c->home_calendar_name) == 0 ) return true; + if ( empty($c->home_calendar_name) && empty($c->home_addressbook_name) ) return true; $principal = new Principal('username',$username); - $params = array( ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/' ); - $qry = new AwlQuery( 'SELECT 1 FROM collection WHERE dav_name = :collection_path', $params ); - if ( !$qry->Exec() ) { - $c->messages[] = i18n("There was an error reading from the database."); - return false; - } - if ( $qry->rows() > 0 ) { - $c->messages[] = i18n("Home calendar already exists."); - return true; - } - else { - $sql = 'INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, dav_displayname, is_calendar, created, modified, resourcetypes) '; - $sql .= 'VALUES( :user_no, :parent_container, :collection_path, :dav_etag, :displayname, true, current_timestamp, current_timestamp, :resourcetypes );'; - $params = array( - ':user_no' => $principal->user_no(), - ':parent_container' => $principal->dav_name(), - ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/', - ':dav_etag' => '-1', - ':displayname' => $principal->fullname, - ':resourcetypes' => '' - ); - $qry = new AwlQuery( $sql, $params ); - if ( $qry->Exec() ) { - $c->messages[] = i18n("Home calendar added."); - dbg_error_log("User",":Write: Created user's home calendar at '%s'", $params[':collection_path'] ); + + $sql = 'INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, dav_displayname, is_calendar, created, modified, resourcetypes) '; + $sql .= 'VALUES( :user_no, :parent_container, :collection_path, :dav_etag, :displayname, true, current_timestamp, current_timestamp, :resourcetypes );'; + if ( !empty($c->home_calendar_name) ) { + $params = array( ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/' ); + $qry = new AwlQuery( 'SELECT 1 FROM collection WHERE dav_name = :collection_path', $params ); + if ( !$qry->Exec() ) { + $c->messages[] = i18n("There was an error reading from the database."); + return false; + } + if ( $qry->rows() > 0 ) { + $c->messages[] = i18n("Home calendar already exists."); + return true; } else { - $c->messages[] = i18n("There was an error writing to the database."); - return false; + $params = array( + ':user_no' => $principal->user_no(), + ':parent_container' => $principal->dav_name(), + ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/', + ':dav_etag' => '-1', + ':displayname' => $principal->fullname, + ':resourcetypes' => '' + ); + $qry = new AwlQuery( $sql, $params ); + if ( $qry->Exec() ) { + $c->messages[] = i18n("Home calendar added."); + dbg_error_log("User",":Write: Created user's home calendar at '%s'", $params[':collection_path'] ); + } + else { + $c->messages[] = i18n("There was an error writing to the database."); + return false; + } } } - if ( !isset($c->home_addressbook_name) ) { + if ( !empty($c->home_addressbook_name) ) { $qry = new AwlQuery( 'SELECT 1 FROM collection WHERE dav_name = :dav_name', array( ':dav_name' => $principal->dav_name().$c->home_addressbook_name.'/') ); if ( !$qry->Exec() ) { $c->messages[] = i18n("There was an error reading from the database."); diff --git a/inc/ui/collection-edit.php b/inc/ui/collection-edit.php index 14e47b82..5f2c78e2 100644 --- a/inc/ui/collection-edit.php +++ b/inc/ui/collection-edit.php @@ -8,7 +8,7 @@ param_to_global('principal_id', 'int' ); param_to_global('collection_name', '{^.+$}' ); if ( isset($user_no) ) $principal = new Principal('user_no',$user_no); if ( isset($principal_id) ) $principal = new Principal('principal_id',$principal_id); -$editor->SetLookup( 'timezone', 'SELECT \'\', \'*** Unknown ***\' UNION SELECT tz_id, tz_locn FROM time_zone WHERE tz_id = tz_locn AND length(tz_spec) > 100 ORDER BY 1' ); +$editor->SetLookup( 'timezone', 'SELECT \'\', \'*** Unknown ***\' UNION SELECT tzid, olson_name FROM timezones WHERE tzid = olson_name AND length(vtimezone) > 100 ORDER BY 1' ); $editor->SetLookup( 'schedule_transp', 'SELECT \'opaque\', \'Opaque\' UNION SELECT \'transp\', \'Transparent\'' ); @@ -190,7 +190,7 @@ function privilege_format_function( $value, $column, $row ) { } $default_privileges = bindec($editor->Value('default_privileges')); -$privileges_set = '
'; +$privileges_set = '
'; for( $i=0; $i'.$privilege_xlate[$privilege_names[$i]].''."\n"; diff --git a/inc/ui/principal-edit.php b/inc/ui/principal-edit.php index 5c8c72c4..736bf86e 100644 --- a/inc/ui/principal-edit.php +++ b/inc/ui/principal-edit.php @@ -220,7 +220,7 @@ function principal_editor() { if ( $_POST['type_id'] != 3 && $editor->IsCreate() ) { /** We only add the default calendar if it isn't a group, and this is a create action */ require_once('auth-functions.php'); - CreateHomeCalendar($editor->Value('username')); + CreateHomeCollections($editor->Value('username')); } if ( $session->AllowedTo('Admin') ) { if ( $_POST['is_admin'] == 'on' ) { @@ -380,7 +380,7 @@ function build_privileges_html( $ed, $fname ) { $btn_ss = htmlspecialchars(translate('Schedule Send')); $btn_ss_title = htmlspecialchars(translate('Set schedule-deliver privileges')); $privs_dec = bindec($ed->Value($fname)); - $privileges_set = '
'."\n"; + $privileges_set = sprintf('
%s', $fname, "\n"); for( $i=0; $i < count($privilege_names); $i++ ) { $privilege_set = ( (1 << $i) & $privs_dec ? ' CHECKED' : ''); $privileges_set .= sprintf( ' '."\n", diff --git a/testing/tests/regression-suite/Create-Database.result b/testing/tests/regression-suite/Create-Database.result index 60c0f95f..8586a791 100644 --- a/testing/tests/regression-suite/Create-Database.result +++ b/testing/tests/regression-suite/Create-Database.result @@ -3,14 +3,8 @@ Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. -DBD::Pg::db do failed: ERROR: relation "timezones" does not exist at ../dba/update-davical-database line 400, line 48. -DBD::Pg::db do failed: ERROR: relation "timezones" does not exist at ../dba/update-davical-database line 410, line 48. -DBD::Pg::db do failed: ERROR: relation "tz_aliases" does not exist at ../dba/update-davical-database line 400, line 49. -DBD::Pg::db do failed: ERROR: relation "tz_aliases" does not exist at ../dba/update-davical-database line 410, line 49. -DBD::Pg::db do failed: ERROR: relation "tz_localnames" does not exist at ../dba/update-davical-database line 400, line 50. -DBD::Pg::db do failed: ERROR: relation "tz_localnames" does not exist at ../dba/update-davical-database line 410, line 50. -DBD::Pg::db do failed: ERROR: relation "timezones_our_tzno_seq" does not exist at ../dba/update-davical-database line 400, line 60. -DBD::Pg::db do failed: ERROR: relation "timezones_our_tzno_seq" does not exist at ../dba/update-davical-database line 410, line 60. +DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 400, line 63. +DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 410, line 63. RRULE functions updated. Database permissions updated. NOTE diff --git a/testing/tests/regression-suite/Really Upgrade Database.result b/testing/tests/regression-suite/Really Upgrade Database.result index 13952c93..a8659ccc 100644 --- a/testing/tests/regression-suite/Really Upgrade Database.result +++ b/testing/tests/regression-suite/Really Upgrade Database.result @@ -1,6 +1,5 @@ -The database is version 8.4 currently at revision 1.2.10. -Applying patch 1.2.11.sql ... succeeded. -Successfully applied 1 patches. +The database is version 8.4 currently at revision 1.2.11. +No patches were applied. Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. diff --git a/testing/tests/regression-suite/Upgrade-Database.result b/testing/tests/regression-suite/Upgrade-Database.result index 71f63f42..4a6b8e41 100644 --- a/testing/tests/regression-suite/Upgrade-Database.result +++ b/testing/tests/regression-suite/Upgrade-Database.result @@ -1,13 +1,7 @@ Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. -DBD::Pg::db do failed: ERROR: relation "timezones" does not exist at ../dba/update-davical-database line 400, line 48. -DBD::Pg::db do failed: ERROR: relation "timezones" does not exist at ../dba/update-davical-database line 410, line 48. -DBD::Pg::db do failed: ERROR: relation "tz_aliases" does not exist at ../dba/update-davical-database line 400, line 49. -DBD::Pg::db do failed: ERROR: relation "tz_aliases" does not exist at ../dba/update-davical-database line 410, line 49. -DBD::Pg::db do failed: ERROR: relation "tz_localnames" does not exist at ../dba/update-davical-database line 400, line 50. -DBD::Pg::db do failed: ERROR: relation "tz_localnames" does not exist at ../dba/update-davical-database line 410, line 50. -DBD::Pg::db do failed: ERROR: relation "timezones_our_tzno_seq" does not exist at ../dba/update-davical-database line 400, line 60. -DBD::Pg::db do failed: ERROR: relation "timezones_our_tzno_seq" does not exist at ../dba/update-davical-database line 410, line 60. +DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 400, line 63. +DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 410, line 63. RRULE functions updated. Database permissions updated. diff --git a/testing/tests/timezone/5000-capabilities.result b/testing/tests/timezone/5000-capabilities.result index ed7d5c98..b9512e1d 100644 --- a/testing/tests/timezone/5000-capabilities.result +++ b/testing/tests/timezone/5000-capabilities.result @@ -1,6 +1,6 @@ HTTP/1.1 200 OK Date: Dow, 01 Jan 2000 00:00:00 GMT -Content-Length: 2992 +Content-Length: 3002 Content-Type: application/xml; charset="utf-8" @@ -8,7 +8,7 @@ Content-Type: application/xml; charset="utf-8" Olson tzdata2011j - mailto:tzs@example.org + mailto:admin@davical.example.com From e4464b50025e3c483a2c9c9b3eb9f13cd05f6ae3 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 27 Sep 2011 11:27:48 +1300 Subject: [PATCH 20/31] Add some useful scripts to package. --- debian/davical.install | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/davical.install b/debian/davical.install index 8cf588e0..886efcc5 100644 --- a/debian/davical.install +++ b/debian/davical.install @@ -3,3 +3,4 @@ debian/keepme etc/davical/.keep config/example-config.php usr/share/doc/davical/examples/davical-conf.php config/example-administration.yml usr/share/doc/davical/examples/administration.yml config/debug-config.php config/other-config.php usr/share/doc/davical/examples +scripts/cron-sync-ldap.php scripts/tz-update.php usr/share/davical/scripts From 90c075a59b7ca72655f9595622c7e903722ac48c Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 27 Sep 2011 11:28:28 +1300 Subject: [PATCH 21/31] New RIMAP driver by Paul van Tilburg. --- inc/drivers_rimap.php | 112 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 inc/drivers_rimap.php diff --git a/inc/drivers_rimap.php b/inc/drivers_rimap.php new file mode 100644 index 00000000..a599df5a --- /dev/null +++ b/inc/drivers_rimap.php @@ -0,0 +1,112 @@ +, +* Andrew McMillan +* @copyright Based on Eric Seigne script drivers_squid_pam.php +* @license http://gnu.org/copyleft/gpl.html GNU GPL v2 or later +*/ + +require_once("auth-functions.php"); + +class imapPamDrivers +{ + /**#@+ + * @access private + */ + + /**#@-*/ + + + /** + * Constructor. + * @param string $imap_url formated for imap_open() + */ + function imapPamDrivers($imap_url){ + $this->__construct($imap_url); + } + + + /** + * The constructor + * + * @param string $imap_url formated for imap_open() + */ + function __construct($imap_url) + { + global $c; + if (empty($imap_url)){ + $c->messages[] = sprintf(i18n('drivers_imap_pam : imap_url parameter not configured in /etc/davical/*-conf.php')); + $this->valid=false; + return ; + } + } +} + + +/** +* Check the username / password against the IMAP server +*/ +function RIMAP_check($username, $password ){ + global $c; + + $imap_username = $username; + if ( function_exists('mb_convert_encoding') ) { + $imap_username = mb_convert_encoding($imap_username, "UTF7-IMAP",mb_detect_encoding($imap_username)); + } + else { + $imap_username = imap_utf7_encode($imap_username); + } + + //$imap_url = '{localhost:143/imap/notls}'; + //$imap_url = '{localhost:993/imap/ssl/novalidate-cert}'; + $imap_url = $c->authenticate_hook['config']['imap_url']; + $auth_result = "ERR"; + + $imap_stream = @imap_open($imap_url, $imap_username, $password, OP_HALFOPEN); + //print_r(imap_errors()); + if ( $imap_stream ) { + // disconnect + imap_close($imap_stream); + // login ok + $auth_result = "OK"; + } + + if ( $auth_result == "OK") { + $principal = new Principal('username',$username); + if ( ! $principal->Exists() ) { + dbg_error_log( "PAM", "Principal '%s' doesn't exist in local DB, we need to create it",$username ); + if ( strstr($username, '@') ) { + $name_arr = explode('@', $username); + $fullname = ucfirst(strtolower($name_arr[0])); + $email = $username; + } + else { + $fullname = ucfirst(strtolower($username)); + $email = $username . "@" . $c->authenticate_hook['config']['email_base']; + } + + $principal->Create( array( + 'username' => $username, + 'user_active' => true, + 'email' => $email, + 'fullname' => ucfirst($fullname) + )); + if ( ! $principal->Exists() ) { + dbg_error_log( "PAM", "Unable to create local principal for '%s'", $username ); + return false; + } + CreateHomeCollections($username); + } + return $principal; + } + else { + dbg_error_log( "PAM", "User %s is not a valid username (or password was wrong)", $username ); + return false; + } + +} From 6679e3186273bcf7f985221fe3658bdb11eaaddf Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 27 Sep 2011 12:12:22 +1300 Subject: [PATCH 22/31] Rename test result without spaces. --- ...lly Upgrade Database.result => Really-Upgrade-Database.result} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename testing/tests/regression-suite/{Really Upgrade Database.result => Really-Upgrade-Database.result} (100%) diff --git a/testing/tests/regression-suite/Really Upgrade Database.result b/testing/tests/regression-suite/Really-Upgrade-Database.result similarity index 100% rename from testing/tests/regression-suite/Really Upgrade Database.result rename to testing/tests/regression-suite/Really-Upgrade-Database.result From 11892c4e97984f6a6ab95b995a28d488533c4f97 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 27 Sep 2011 13:27:56 +1300 Subject: [PATCH 23/31] Release 0.9.9.6 --- debian/changelog | 7 + debian/control | 2 +- debian/source/format | 1 + docs/api/awl/caldav/CalDAVClient.html | 2 +- docs/api/awl/caldav/CalendarInfo.html | 2 +- docs/api/awl/caldav/RRule.html | 8 +- docs/api/awl/caldav/RepeatRule.html | 48 ++--- docs/api/awl/caldav/RepeatRuleDateTime.html | 57 +++--- docs/api/awl/caldav/RepeatRuleTimeZone.html | 6 +- docs/api/awl/caldav/Rfc5545Duration.html | 12 +- docs/api/awl/caldav/_inc---RRule-v2.php.html | 22 +- docs/api/awl/caldav/_inc---RRule.php.html | 2 +- .../caldav/_inc---caldav-client-v2.php.html | 2 +- .../awl/caldav/_inc---caldav-client.php.html | 2 +- docs/api/awl/caldav/iCalDate.html | 54 ++--- docs/api/classtrees_awl.html | 2 +- docs/api/classtrees_davical.html | 6 +- docs/api/davical/AtomEntry.html | 2 +- docs/api/davical/AtomFeed.html | 2 +- docs/api/davical/AtomXHTMLContent.html | 2 +- docs/api/davical/CheckResult.html | 14 +- docs/api/davical/DAVTicket/DAVTicket.html | 14 +- .../DAVTicket/_inc---DAVTicket.php.html | 4 +- .../DAViCalSession/DAViCalSession.html | 10 +- docs/api/davical/DAViCalSession/Tools.html | 2 +- .../DAViCalSession/_htdocs---tools.php.html | 2 +- .../_inc---DAViCalSession.php.html | 8 +- .../HTTPAuthSession/HTTPAuthSession.html | 8 +- .../_inc---HTTPAuthSession.php.html | 2 +- docs/api/davical/Principal/DAVPrincipal.html | 42 ++-- docs/api/davical/Principal/Principal.html | 112 +++++------ .../Principal/_inc---DAVPrincipal.php.html | 2 +- .../Principal/_inc---Principal.php.html | 4 +- .../davical/PublicSession/PublicSession.html | 6 +- .../_inc---PublicSession.php.html | 2 +- docs/api/davical/RRuleTest.html | 2 +- docs/api/davical/Request/CalDAVRequest.html | 90 ++++----- .../Request/_inc---CalDAVRequest.php.html | 12 +- docs/api/davical/Resource/DAVResource.html | 118 +++++------ .../davical/Resource/WritableCollection.html | 6 +- .../Resource/_inc---DAVResource.php.html | 10 +- docs/api/davical/SqlToArray.html | 2 +- docs/api/davical/VCard.html | 2 +- .../api/davical/_htdocs---SqlToArray.php.html | 2 +- docs/api/davical/_htdocs---admin.php.html | 2 +- docs/api/davical/_htdocs---always.php.html | 40 ++-- docs/api/davical/_htdocs---createdb.php.html | 6 +- docs/api/davical/_htdocs---dbexec.php.html | 4 +- docs/api/davical/_htdocs---feed.php.html | 18 +- docs/api/davical/_htdocs---freebusy.php.html | 12 +- docs/api/davical/_htdocs---help.php.html | 2 +- docs/api/davical/_htdocs---index.php.html | 2 +- docs/api/davical/_htdocs---newfile.php.html | 4 +- docs/api/davical/_htdocs---setup.php.html | 74 ++++--- docs/api/davical/_htdocs---test.php.html | 2 +- docs/api/davical/_htdocs---upgrade.php.html | 2 +- .../api/davical/_htdocs---well-known.php.html | 6 +- docs/api/davical/_inc---AtomFeed.php.html | 2 +- .../_inc---WritableCollection.php.html | 2 +- docs/api/davical/_inc---caldav-LOCK.php.html | 2 +- .../_inc---caldav-REPORT-calquery.php.html | 50 ++++- .../_inc---caldav-REPORT-cardquery.php.html | 8 +- ...c---caldav-REPORT-expand-property.php.html | 6 +- .../_inc---caldav-REPORT-freebusy.php.html | 4 +- .../_inc---caldav-REPORT-multiget.php.html | 2 +- ...c---caldav-REPORT-principal-match.php.html | 2 +- .../_inc---caldav-REPORT-principal.php.html | 2 +- docs/api/davical/_inc---check_UTF8.php.html | 8 +- ...c---davical_configuration_missing.php.html | 6 +- .../_inc---freebusy-functions.php.html | 8 +- .../davical/_inc---interactive-page.php.html | 2 +- .../_inc---other_translated_strings.php.html | 2 +- docs/api/davical/_inc---page-footer.php.html | 2 +- docs/api/davical/_inc---page-header.php.html | 6 +- docs/api/davical/_inc---pubsub.php.html | 2 +- .../api/davical/_inc---test-RRULE-v2.php.html | 2 +- docs/api/davical/_inc---test-RRULE.php.html | 2 +- .../_inc---ui---collection-edit.php.html | 10 +- .../_inc---ui---principal-browse.php.html | 2 +- .../_inc---ui---principal-edit.php.html | 42 ++-- docs/api/davical/_inc---vcard.php.html | 2 +- .../_inc---auth-functions.php.html | 10 +- .../davical/caldav/_htdocs---caldav.php.html | 56 +++--- .../davical/caldav/_htdocs---public.php.html | 20 +- .../davical/caldav/_inc---caldav-ACL.php.html | 2 +- .../caldav/_inc---caldav-BIND.php.html | 2 +- .../caldav/_inc---caldav-DELETE.php.html | 2 +- .../caldav/_inc---caldav-DELTICKET.php.html | 2 +- .../davical/caldav/_inc---caldav-GET.php.html | 2 +- .../caldav/_inc---caldav-MKCOL.php.html | 2 +- .../caldav/_inc---caldav-MKTICKET.php.html | 2 +- .../caldav/_inc---caldav-MOVE.php.html | 2 +- .../caldav/_inc---caldav-OPTIONS.php.html | 2 +- .../caldav/_inc---caldav-POST.php.html | 2 +- .../caldav/_inc---caldav-PROPPATCH.php.html | 6 +- .../caldav/_inc---caldav-PUT-default.php.html | 2 +- .../_inc---caldav-PUT-functions.php.html | 41 ++-- .../_inc---caldav-PUT-vcalendar.php.html | 2 +- .../caldav/_inc---caldav-PUT-vcard.php.html | 2 +- .../_inc---caldav-REPORT-pps-set.php.html | 4 +- ...c---caldav-REPORT-sync-collection.php.html | 4 +- .../caldav/_inc---caldav-REPORT.php.html | 40 ++-- .../_inc---external-fetch.php.html | 8 +- .../iSchedule/_inc---iSchedule.php.html | 2 +- docs/api/davical/iSchedule/iSchedule.html | 2 +- .../ldap/_inc---drivers_imap_pam.php.html | 8 +- .../davical/ldap/_inc---drivers_ldap.php.html | 14 +- .../ldap/_inc---drivers_rimap.php.html | 147 ++++++++++++++ .../ldap/_inc---drivers_squid_pam.php.html | 6 +- docs/api/davical/ldap/imapPamDrivers.html | 4 +- docs/api/davical/ldap/ldapDrivers.html | 10 +- docs/api/davical/ldap/squidPamDrivers.html | 4 +- .../logging/_inc---log_caldav_action.php.html | 4 +- .../propfind/_inc---caldav-PROPFIND.php.html | 2 +- .../pwauth/_inc---drivers_pwauth_pam.php.html | 6 +- docs/api/davical/pwauth/pwauthPamDrivers.html | 4 +- .../davical/tzservice/_htdocs---tz.php.html | 118 +++++++++++ .../_inc---tz---capabilities.php.html | 40 ++++ .../tzservice/_inc---tz---expand.php.html | 169 ++++++++++++++++ .../tzservice/_inc---tz---get.php.html | 73 +++++++ .../tzservice/_inc---tz---list.php.html | 73 +++++++ docs/api/elementindex.html | 189 ++++++++++++------ docs/api/elementindex_awl.html | 1 + docs/api/elementindex_davical.html | 84 +++++++- docs/api/errors.html | 102 +++++++--- docs/api/index.html | 2 +- docs/api/li_davical.html | 20 ++ docs/api/todolist.html | 2 +- po/de.po | 8 +- po/es_AR.po | 8 +- po/es_MX.po | 8 +- po/es_VE.po | 8 +- po/et.po | 8 +- po/fr.po | 8 +- po/hu.po | 8 +- po/it.po | 8 +- po/ja.po | 8 +- po/messages.pot | 11 +- po/nb_NO.po | 8 +- po/nl.po | 8 +- po/pl.po | 8 +- po/pt_BR.po | 8 +- po/pt_PT.po | 8 +- po/ru.po | 8 +- po/sv.po | 8 +- testing/run_regressions.sh | 2 +- 146 files changed, 1746 insertions(+), 763 deletions(-) create mode 100644 debian/source/format create mode 100644 docs/api/davical/ldap/_inc---drivers_rimap.php.html create mode 100644 docs/api/davical/tzservice/_htdocs---tz.php.html create mode 100644 docs/api/davical/tzservice/_inc---tz---capabilities.php.html create mode 100644 docs/api/davical/tzservice/_inc---tz---expand.php.html create mode 100644 docs/api/davical/tzservice/_inc---tz---get.php.html create mode 100644 docs/api/davical/tzservice/_inc---tz---list.php.html diff --git a/debian/changelog b/debian/changelog index e5f06421..7141aefb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +davical (0.9.9.6-1) unstable; urgency=low + + * New upstream release (closes:#628566,#619513,#619477,#619515,#641591) + * Switch to dpkg-source 3.0 (native) format + + -- Andrew McMillan Tue, 27 Sep 2011 13:23:28 +1300 + davical (0.9.9.5-1) unstable; urgency=low * New upstream release (closes:#610612, #639262) diff --git a/debian/control b/debian/control index c5f82f0f..578fcd05 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Homepage: http://davical.org/ Package: davical Architecture: all -Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (= 0.48-1), libdbd-pg-perl, libyaml-perl +Depends: ${misc:Depends}, debconf (>= 1.0.32), php5-pgsql, postgresql-client (>= 8.1), libawl-php (>= 0.48-1~), libawl-php (<< 0.49), libdbd-pg-perl, libyaml-perl Recommends: postgresql (>= 8.3) Description: The DAViCal CalDAV Server The DAViCal CalDAV Server is designed to trivially store diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..89ae9db8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/docs/api/awl/caldav/CalDAVClient.html b/docs/api/awl/caldav/CalDAVClient.html index 253a4732..5a83184c 100644 --- a/docs/api/awl/caldav/CalDAVClient.html +++ b/docs/api/awl/caldav/CalDAVClient.html @@ -1270,7 +1270,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/CalendarInfo.html b/docs/api/awl/caldav/CalendarInfo.html index 802d5bb6..04cf3665 100644 --- a/docs/api/awl/caldav/CalendarInfo.html +++ b/docs/api/awl/caldav/CalendarInfo.html @@ -251,7 +251,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/RRule.html b/docs/api/awl/caldav/RRule.html index e1e8a673..b39fb5f4 100644 --- a/docs/api/awl/caldav/RRule.html +++ b/docs/api/awl/caldav/RRule.html @@ -82,7 +82,7 @@
-
+
@@ -112,7 +112,7 @@
-
+
@@ -135,7 +135,7 @@
-
+
@@ -170,7 +170,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/RepeatRule.html b/docs/api/awl/caldav/RepeatRule.html index 011cb133..0dbf3869 100644 --- a/docs/api/awl/caldav/RepeatRule.html +++ b/docs/api/awl/caldav/RepeatRule.html @@ -82,9 +82,9 @@
 - void + vComponent next - ([ $return_floating_times = false]) + ([boolean $return_floating_times = false])
 @@ -126,11 +126,11 @@
-
+
- static date_mask (line 711) + static date_mask (line 716)
@@ -173,11 +173,11 @@
-
+
- static rrule_day_number (line 697) + static rrule_day_number (line 702)
@@ -202,7 +202,7 @@
-
+
@@ -240,11 +240,11 @@
-
+
- current (line 592) + current (line 597)
@@ -269,11 +269,11 @@
-
+
- key (line 602) + key (line 607)
@@ -298,36 +298,38 @@
-
+
- next (line 586) + next (line 591)
+

Return the next date in the repeating series.

    +
  • return: The next instance.
  • access: public
- void + vComponent next - ([ $return_floating_times = false]) + ([boolean $return_floating_times = false])
  • - - $return_floating_times
  • + boolean + $return_floating_times: Whether to return dates as floating times.
-
+
@@ -351,7 +353,7 @@
-
+
@@ -380,7 +382,7 @@
-
+
@@ -409,11 +411,11 @@
-
+
- valid (line 612) + valid (line 617)
@@ -438,7 +440,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/RepeatRuleDateTime.html b/docs/api/awl/caldav/RepeatRuleDateTime.html index 19ddf736..a044bdb5 100644 --- a/docs/api/awl/caldav/RepeatRuleDateTime.html +++ b/docs/api/awl/caldav/RepeatRuleDateTime.html @@ -197,7 +197,7 @@  void UTC - () + ([ $fmt = 'Ymd\THis\Z'])
 @@ -231,7 +231,7 @@
-
+
@@ -269,7 +269,7 @@
-
+
@@ -309,7 +309,7 @@
-
+
@@ -333,7 +333,7 @@
-
+
@@ -354,7 +354,7 @@
-
+
@@ -375,7 +375,7 @@
-
+
@@ -407,7 +407,7 @@
-
+
@@ -436,7 +436,7 @@
-
+
@@ -457,7 +457,7 @@
-
+
@@ -481,7 +481,7 @@
-
+
@@ -505,7 +505,7 @@
-
+
@@ -526,7 +526,7 @@
-
+
@@ -560,7 +560,7 @@
-
+
@@ -581,7 +581,7 @@
-
+
@@ -611,7 +611,7 @@
-
+
@@ -632,7 +632,7 @@
-
+
@@ -656,7 +656,7 @@
-
+
@@ -680,7 +680,7 @@
-
+
@@ -717,7 +717,7 @@
-
+
@@ -751,7 +751,7 @@
-
+
@@ -777,7 +777,7 @@
-
+
@@ -796,14 +796,19 @@ UTC - () + ([ $fmt = 'Ymd\THis\Z'])
+
    +
  • + + $fmt
  • +
-
+
@@ -824,7 +829,7 @@
-
+
@@ -961,7 +966,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/RepeatRuleTimeZone.html b/docs/api/awl/caldav/RepeatRuleTimeZone.html index 36983745..03dde05e 100644 --- a/docs/api/awl/caldav/RepeatRuleTimeZone.html +++ b/docs/api/awl/caldav/RepeatRuleTimeZone.html @@ -81,7 +81,7 @@
-
+
@@ -115,7 +115,7 @@
-
+
@@ -238,7 +238,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/Rfc5545Duration.html b/docs/api/awl/caldav/Rfc5545Duration.html index 9e4b5b8b..a995e4ea 100644 --- a/docs/api/awl/caldav/Rfc5545Duration.html +++ b/docs/api/awl/caldav/Rfc5545Duration.html @@ -94,7 +94,7 @@
-
+
@@ -128,7 +128,7 @@
-
+
@@ -155,7 +155,7 @@
-
+
@@ -177,7 +177,7 @@
-
+
@@ -204,7 +204,7 @@
-
+
@@ -234,7 +234,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/_inc---RRule-v2.php.html b/docs/api/awl/caldav/_inc---RRule-v2.php.html index 0b4261ce..b6f04dec 100644 --- a/docs/api/awl/caldav/_inc---RRule-v2.php.html +++ b/docs/api/awl/caldav/_inc---RRule-v2.php.html @@ -109,14 +109,14 @@
-
+
 require_once ("vComponent.php") - (line 983) + (line 988)
@@ -138,7 +138,7 @@
-
+
@@ -168,11 +168,11 @@
-
+
- expand_event_instances (line 1064) + expand_event_instances (line 1069)
@@ -207,7 +207,7 @@
-
+
@@ -233,11 +233,11 @@
-
+
- rdate_expand (line 994) + rdate_expand (line 999)
@@ -277,11 +277,11 @@
-
+
- rrule_expand (line 1022) + rrule_expand (line 1027)
@@ -324,7 +324,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/_inc---RRule.php.html b/docs/api/awl/caldav/_inc---RRule.php.html index c4583866..e79bb803 100644 --- a/docs/api/awl/caldav/_inc---RRule.php.html +++ b/docs/api/awl/caldav/_inc---RRule.php.html @@ -74,7 +74,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/_inc---caldav-client-v2.php.html b/docs/api/awl/caldav/_inc---caldav-client-v2.php.html index 6a0e1b67..921dc503 100644 --- a/docs/api/awl/caldav/_inc---caldav-client-v2.php.html +++ b/docs/api/awl/caldav/_inc---caldav-client-v2.php.html @@ -108,7 +108,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/_inc---caldav-client.php.html b/docs/api/awl/caldav/_inc---caldav-client.php.html index 4a54df53..04d1c55b 100644 --- a/docs/api/awl/caldav/_inc---caldav-client.php.html +++ b/docs/api/awl/caldav/_inc---caldav-client.php.html @@ -63,7 +63,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/awl/caldav/iCalDate.html b/docs/api/awl/caldav/iCalDate.html index c14baf97..8e227a13 100644 --- a/docs/api/awl/caldav/iCalDate.html +++ b/docs/api/awl/caldav/iCalDate.html @@ -219,7 +219,7 @@
-
+
@@ -246,7 +246,7 @@
-
+
@@ -273,7 +273,7 @@
-
+
@@ -300,7 +300,7 @@
-
+
@@ -327,7 +327,7 @@
-
+
@@ -360,7 +360,7 @@
-
+
@@ -390,7 +390,7 @@
-
+
@@ -420,7 +420,7 @@
-
+
@@ -450,7 +450,7 @@
-
+
@@ -480,7 +480,7 @@
-
+
@@ -513,7 +513,7 @@
-
+
@@ -543,7 +543,7 @@
-
+
@@ -573,7 +573,7 @@
-
+
@@ -609,7 +609,7 @@
-
+
@@ -636,7 +636,7 @@
-
+
@@ -663,7 +663,7 @@
-
+
@@ -690,7 +690,7 @@
-
+
@@ -717,7 +717,7 @@
-
+
@@ -744,7 +744,7 @@
-
+
@@ -771,7 +771,7 @@
-
+
@@ -798,7 +798,7 @@
-
+
@@ -828,7 +828,7 @@
-
+
@@ -850,7 +850,7 @@
-
+
@@ -872,7 +872,7 @@
-
+
@@ -894,7 +894,7 @@
-
+
@@ -916,7 +916,7 @@
-
+
@@ -943,7 +943,7 @@

- Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

\ No newline at end of file diff --git a/docs/api/classtrees_awl.html b/docs/api/classtrees_awl.html index 55062da9..01c6a2c5 100644 --- a/docs/api/classtrees_awl.html +++ b/docs/api/classtrees_awl.html @@ -50,7 +50,7 @@
  • RepeatRuleTimeZone
  • - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/classtrees_davical.html b/docs/api/classtrees_davical.html index 8dd0575d..20177982 100644 --- a/docs/api/classtrees_davical.html +++ b/docs/api/classtrees_davical.html @@ -47,6 +47,10 @@ +

    Root class imapPamDrivers

    + +

    Root class iSchedule

    @@ -102,7 +106,7 @@
  • AtomFeed
  • - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/AtomEntry.html b/docs/api/davical/AtomEntry.html index 6ba5b217..cb82d089 100644 --- a/docs/api/davical/AtomEntry.html +++ b/docs/api/davical/AtomEntry.html @@ -550,7 +550,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/AtomFeed.html b/docs/api/davical/AtomFeed.html index 210f8409..2566bc79 100644 --- a/docs/api/davical/AtomFeed.html +++ b/docs/api/davical/AtomFeed.html @@ -519,7 +519,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/AtomXHTMLContent.html b/docs/api/davical/AtomXHTMLContent.html index 3b98b565..a3dd6289 100644 --- a/docs/api/davical/AtomXHTMLContent.html +++ b/docs/api/davical/AtomXHTMLContent.html @@ -142,7 +142,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/CheckResult.html b/docs/api/davical/CheckResult.html index 5af303ca..51037c52 100644 --- a/docs/api/davical/CheckResult.html +++ b/docs/api/davical/CheckResult.html @@ -98,7 +98,7 @@
    -
    +
    @@ -130,7 +130,7 @@
    -
    +
    @@ -154,7 +154,7 @@
    -
    +
    @@ -178,7 +178,7 @@
    -
    +
    @@ -202,7 +202,7 @@
    -
    +
    @@ -231,7 +231,7 @@
    -
    +
    @@ -265,7 +265,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAVTicket/DAVTicket.html b/docs/api/davical/DAVTicket/DAVTicket.html index d103e0a4..9cd22e5a 100644 --- a/docs/api/davical/DAVTicket/DAVTicket.html +++ b/docs/api/davical/DAVTicket/DAVTicket.html @@ -99,7 +99,7 @@
    -
    +
    @@ -126,7 +126,7 @@
    -
    +
    @@ -147,7 +147,7 @@
    -
    +
    @@ -168,7 +168,7 @@
    -
    +
    @@ -194,7 +194,7 @@
    -
    +
    @@ -220,7 +220,7 @@
    -
    +
    @@ -246,7 +246,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html b/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html index c5dc126f..838138c7 100644 --- a/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html +++ b/docs/api/davical/DAVTicket/_inc---DAVTicket.php.html @@ -70,7 +70,7 @@
    -
    +
     @@ -97,7 +97,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAViCalSession/DAViCalSession.html b/docs/api/davical/DAViCalSession/DAViCalSession.html index 8b1de6ec..a8c9ced6 100644 --- a/docs/api/davical/DAViCalSession/DAViCalSession.html +++ b/docs/api/davical/DAViCalSession/DAViCalSession.html @@ -89,7 +89,7 @@
    -
    +
    @@ -117,7 +117,7 @@
    -
    +
    @@ -144,7 +144,7 @@
    -
    +
    @@ -166,7 +166,7 @@
    -
    +
    @@ -202,7 +202,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAViCalSession/Tools.html b/docs/api/davical/DAViCalSession/Tools.html index e6a64dd9..abcf374f 100644 --- a/docs/api/davical/DAViCalSession/Tools.html +++ b/docs/api/davical/DAViCalSession/Tools.html @@ -175,7 +175,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAViCalSession/_htdocs---tools.php.html b/docs/api/davical/DAViCalSession/_htdocs---tools.php.html index aecb29a9..efb56da3 100644 --- a/docs/api/davical/DAViCalSession/_htdocs---tools.php.html +++ b/docs/api/davical/DAViCalSession/_htdocs---tools.php.html @@ -187,7 +187,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html b/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html index df5a9443..84fbf1a7 100644 --- a/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html +++ b/docs/api/davical/DAViCalSession/_inc---DAViCalSession.php.html @@ -76,7 +76,7 @@
    -
    +
     @@ -109,7 +109,7 @@ -
    +
    @@ -144,7 +144,7 @@
    -
    +
    @@ -170,7 +170,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html b/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html index 015f75da..eacebe65 100644 --- a/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html +++ b/docs/api/davical/HTTPAuthSession/HTTPAuthSession.html @@ -296,7 +296,7 @@
    - AllowedTo (line 317) + AllowedTo (line 314)
    @@ -327,7 +327,7 @@
    - AssignSessionDetails (line 341) + AssignSessionDetails (line 338)
    @@ -459,7 +459,7 @@
    - GetRoles (line 325) + GetRoles (line 322)
    @@ -510,7 +510,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html b/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html index 930e465c..1fb53a23 100644 --- a/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html +++ b/docs/api/davical/HTTPAuthSession/_inc---HTTPAuthSession.php.html @@ -63,7 +63,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Principal/DAVPrincipal.html b/docs/api/davical/Principal/DAVPrincipal.html index 27914839..75906385 100644 --- a/docs/api/davical/Principal/DAVPrincipal.html +++ b/docs/api/davical/Principal/DAVPrincipal.html @@ -206,7 +206,7 @@
    -
    +
    @@ -365,7 +365,7 @@
    -
    +
    @@ -400,7 +400,7 @@
    -
    +
    @@ -422,7 +422,7 @@
    -
    +
    @@ -444,7 +444,7 @@
    -
    +
    @@ -466,7 +466,7 @@
    -
    +
    @@ -488,7 +488,7 @@
    -
    +
    @@ -510,7 +510,7 @@
    -
    +
    @@ -540,7 +540,7 @@
    -
    +
    @@ -562,7 +562,7 @@
    -
    +
    @@ -584,7 +584,7 @@
    -
    +
    @@ -611,7 +611,7 @@
    -
    +
    @@ -636,7 +636,7 @@
    -
    +
    @@ -672,7 +672,7 @@
    -
    +
    @@ -694,7 +694,7 @@
    -
    +
    @@ -720,7 +720,7 @@
    -
    +
    @@ -747,7 +747,7 @@
    -
    +
    @@ -769,7 +769,7 @@
    -
    +
    @@ -808,7 +808,7 @@
    -
    +
    @@ -833,7 +833,7 @@
    -
    +
    @@ -910,7 +910,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Principal/Principal.html b/docs/api/davical/Principal/Principal.html index 02c9f221..2daf1690 100644 --- a/docs/api/davical/Principal/Principal.html +++ b/docs/api/davical/Principal/Principal.html @@ -397,7 +397,7 @@
    -
    +
    @@ -420,7 +420,7 @@
    -
    +
    @@ -442,7 +442,7 @@
    -
    +
    @@ -464,7 +464,7 @@
    -
    +
    @@ -486,7 +486,7 @@
    -
    +
    @@ -508,7 +508,7 @@
    -
    +
    @@ -530,7 +530,7 @@
    -
    +
    @@ -552,7 +552,7 @@
    -
    +
    @@ -574,7 +574,7 @@
    -
    +
    @@ -596,7 +596,7 @@
    -
    +
    @@ -618,7 +618,7 @@
    -
    +
    @@ -640,7 +640,7 @@
    -
    +
    @@ -662,7 +662,7 @@
    -
    +
    @@ -685,7 +685,7 @@
    -
    +
    @@ -707,7 +707,7 @@
    -
    +
    @@ -729,7 +729,7 @@
    -
    +
    @@ -751,7 +751,7 @@
    -
    +
    @@ -773,7 +773,7 @@
    -
    +
    @@ -795,7 +795,7 @@
    -
    +
    @@ -817,7 +817,7 @@
    -
    +
    @@ -840,7 +840,7 @@
    -
    +
    @@ -862,7 +862,7 @@
    -
    +
    @@ -884,7 +884,7 @@
    -
    +
    @@ -906,7 +906,7 @@
    -
    +
    @@ -928,7 +928,7 @@
    -
    +
    @@ -950,7 +950,7 @@
    -
    +
    @@ -973,7 +973,7 @@
    -
    +
    @@ -996,7 +996,7 @@
    -
    +
    @@ -1018,7 +1018,7 @@
    -
    +
    @@ -1056,11 +1056,11 @@
    -
    +
    - static cacheDelete (line 562) + static cacheDelete (line 571)
    @@ -1088,11 +1088,11 @@
    -
    +
    - static cacheFlush (line 551) + static cacheFlush (line 560)
    @@ -1120,7 +1120,7 @@
    -
    +
    @@ -1144,7 +1144,7 @@
    -
    +
    @@ -1184,7 +1184,7 @@
    -
    +
    @@ -1208,11 +1208,11 @@
    -
    +
    - Create (line 540) + Create (line 549)
    @@ -1237,7 +1237,7 @@
    -
    +
    @@ -1262,7 +1262,7 @@
    -
    +
    @@ -1287,7 +1287,7 @@
    -
    +
    @@ -1312,7 +1312,7 @@
    -
    +
    @@ -1336,7 +1336,7 @@
    -
    +
    @@ -1362,7 +1362,7 @@
    -
    +
    @@ -1387,7 +1387,7 @@
    -
    +
    @@ -1416,7 +1416,7 @@
    -
    +
    @@ -1441,7 +1441,7 @@
    -
    +
    @@ -1471,7 +1471,7 @@
    -
    +
    @@ -1495,11 +1495,11 @@
    -
    +
    - Update (line 544) + Update (line 553)
    @@ -1524,7 +1524,7 @@
    -
    +
    @@ -1558,7 +1558,7 @@
    -
    +
    @@ -1583,7 +1583,7 @@
    -
    +
    @@ -1608,7 +1608,7 @@
    -
    +
    @@ -1638,7 +1638,7 @@
    -
    +
    @@ -1673,7 +1673,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Principal/_inc---DAVPrincipal.php.html b/docs/api/davical/Principal/_inc---DAVPrincipal.php.html index 0989c95b..1c7f7057 100644 --- a/docs/api/davical/Principal/_inc---DAVPrincipal.php.html +++ b/docs/api/davical/Principal/_inc---DAVPrincipal.php.html @@ -63,7 +63,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Principal/_inc---Principal.php.html b/docs/api/davical/Principal/_inc---Principal.php.html index c3267e87..e903e1c8 100644 --- a/docs/api/davical/Principal/_inc---Principal.php.html +++ b/docs/api/davical/Principal/_inc---Principal.php.html @@ -70,7 +70,7 @@
    -
    +
     @@ -97,7 +97,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/PublicSession/PublicSession.html b/docs/api/davical/PublicSession/PublicSession.html index 3c46d30a..2e059e1b 100644 --- a/docs/api/davical/PublicSession/PublicSession.html +++ b/docs/api/davical/PublicSession/PublicSession.html @@ -75,7 +75,7 @@
    -
    +
    @@ -97,7 +97,7 @@
    -
    +
    @@ -133,7 +133,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/PublicSession/_inc---PublicSession.php.html b/docs/api/davical/PublicSession/_inc---PublicSession.php.html index e58a9c72..2504739d 100644 --- a/docs/api/davical/PublicSession/_inc---PublicSession.php.html +++ b/docs/api/davical/PublicSession/_inc---PublicSession.php.html @@ -63,7 +63,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/RRuleTest.html b/docs/api/davical/RRuleTest.html index e6512f01..eec656fc 100644 --- a/docs/api/davical/RRuleTest.html +++ b/docs/api/davical/RRuleTest.html @@ -295,7 +295,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Request/CalDAVRequest.html b/docs/api/davical/Request/CalDAVRequest.html index b36fb678..cd04194c 100644 --- a/docs/api/davical/Request/CalDAVRequest.html +++ b/docs/api/davical/Request/CalDAVRequest.html @@ -334,7 +334,7 @@
    -
    +
    @@ -354,7 +354,7 @@
    -
    +
    @@ -374,7 +374,7 @@
    -
    +
    @@ -395,7 +395,7 @@
    -
    +
    @@ -415,7 +415,7 @@
    -
    +
    @@ -435,7 +435,7 @@
    -
    +
    @@ -455,7 +455,7 @@
    -
    +
    @@ -479,7 +479,7 @@
    -
    +
    @@ -499,7 +499,7 @@
    -
    +
    @@ -518,7 +518,7 @@
    -
    +
    @@ -538,7 +538,7 @@
    -
    +
    @@ -561,7 +561,7 @@
    -
    +
    @@ -581,7 +581,7 @@
    -
    +
    @@ -601,7 +601,7 @@
    -
    +
    @@ -624,7 +624,7 @@
    -
    +
    @@ -659,7 +659,7 @@
    -
    +
    @@ -686,7 +686,7 @@
    -
    +
    @@ -714,7 +714,7 @@
    -
    +
    @@ -744,7 +744,7 @@
    -
    +
    @@ -766,7 +766,7 @@
    -
    +
    @@ -788,7 +788,7 @@
    -
    +
    @@ -810,7 +810,7 @@
    -
    +
    @@ -832,7 +832,7 @@
    -
    +
    @@ -865,7 +865,7 @@
    -
    +
    @@ -890,7 +890,7 @@
    -
    +
    @@ -912,7 +912,7 @@
    -
    +
    @@ -939,7 +939,7 @@
    -
    +
    @@ -969,7 +969,7 @@
    -
    +
    @@ -996,7 +996,7 @@
    -
    +
    @@ -1018,7 +1018,7 @@
    -
    +
    @@ -1040,7 +1040,7 @@
    -
    +
    @@ -1062,7 +1062,7 @@
    -
    +
    @@ -1084,7 +1084,7 @@
    -
    +
    @@ -1109,7 +1109,7 @@
    -
    +
    @@ -1131,7 +1131,7 @@
    -
    +
    @@ -1153,7 +1153,7 @@
    -
    +
    @@ -1175,7 +1175,7 @@
    -
    +
    @@ -1202,7 +1202,7 @@
    -
    +
    @@ -1235,7 +1235,7 @@
    -
    +
    @@ -1268,7 +1268,7 @@
    -
    +
    @@ -1290,7 +1290,7 @@
    -
    +
    @@ -1320,7 +1320,7 @@
    -
    +
    @@ -1347,7 +1347,7 @@
    -
    +
    @@ -1374,7 +1374,7 @@
    -
    +
    @@ -1409,7 +1409,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Request/_inc---CalDAVRequest.php.html b/docs/api/davical/Request/_inc---CalDAVRequest.php.html index d0a2f09d..de898b59 100644 --- a/docs/api/davical/Request/_inc---CalDAVRequest.php.html +++ b/docs/api/davical/Request/_inc---CalDAVRequest.php.html @@ -75,7 +75,7 @@
    -
    +
     @@ -90,7 +90,7 @@
    -
    +
     @@ -105,7 +105,7 @@
    -
    +
     @@ -120,7 +120,7 @@
    -
    +
     @@ -148,7 +148,7 @@
    -
    +
    @@ -168,7 +168,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Resource/DAVResource.html b/docs/api/davical/Resource/DAVResource.html index 735fd2b6..a5eab486 100644 --- a/docs/api/davical/Resource/DAVResource.html +++ b/docs/api/davical/Resource/DAVResource.html @@ -460,7 +460,7 @@
    -
    +
    @@ -483,7 +483,7 @@
    -
    +
    @@ -506,7 +506,7 @@
    -
    +
    @@ -529,7 +529,7 @@
    -
    +
    @@ -552,7 +552,7 @@
    -
    +
    @@ -575,7 +575,7 @@
    -
    +
    @@ -598,7 +598,7 @@
    -
    +
    @@ -621,7 +621,7 @@
    -
    +
    @@ -660,7 +660,7 @@
    -
    +
    @@ -687,7 +687,7 @@
    -
    +
    @@ -709,7 +709,7 @@
    -
    +
    @@ -742,7 +742,7 @@
    -
    +
    @@ -772,7 +772,7 @@
    -
    +
    @@ -794,7 +794,7 @@
    -
    +
    @@ -821,7 +821,7 @@
    -
    +
    @@ -855,7 +855,7 @@
    -
    +
    @@ -877,7 +877,7 @@
    -
    +
    @@ -899,7 +899,7 @@
    -
    +
    @@ -921,7 +921,7 @@
    -
    +
    @@ -943,7 +943,7 @@
    -
    +
    @@ -965,7 +965,7 @@
    -
    +
    @@ -987,7 +987,7 @@
    -
    +
    @@ -1012,7 +1012,7 @@
    -
    +
    @@ -1037,7 +1037,7 @@
    -
    +
    @@ -1059,7 +1059,7 @@
    -
    +
    @@ -1084,7 +1084,7 @@
    -
    +
    @@ -1109,7 +1109,7 @@
    -
    +
    @@ -1134,7 +1134,7 @@
    -
    +
    @@ -1156,7 +1156,7 @@
    -
    +
    @@ -1178,7 +1178,7 @@
    -
    +
    @@ -1200,7 +1200,7 @@
    -
    +
    @@ -1227,7 +1227,7 @@
    -
    +
    @@ -1254,7 +1254,7 @@
    -
    +
    @@ -1281,7 +1281,7 @@
    -
    +
    @@ -1303,7 +1303,7 @@
    -
    +
    @@ -1330,7 +1330,7 @@
    -
    +
    @@ -1366,7 +1366,7 @@
    -
    +
    @@ -1399,7 +1399,7 @@
    -
    +
    @@ -1421,7 +1421,7 @@
    -
    +
    @@ -1443,7 +1443,7 @@
    -
    +
    @@ -1465,7 +1465,7 @@
    -
    +
    @@ -1487,7 +1487,7 @@
    -
    +
    @@ -1509,7 +1509,7 @@
    -
    +
    @@ -1539,7 +1539,7 @@
    -
    +
    @@ -1561,7 +1561,7 @@
    -
    +
    @@ -1583,7 +1583,7 @@
    -
    +
    @@ -1610,7 +1610,7 @@
    -
    +
    @@ -1640,7 +1640,7 @@
    -
    +
    @@ -1662,7 +1662,7 @@
    -
    +
    @@ -1684,7 +1684,7 @@
    -
    +
    @@ -1706,7 +1706,7 @@
    -
    +
    @@ -1745,7 +1745,7 @@
    -
    +
    @@ -1767,7 +1767,7 @@
    -
    +
    @@ -1803,7 +1803,7 @@
    -
    +
    @@ -1825,7 +1825,7 @@
    -
    +
    @@ -1852,7 +1852,7 @@
    -
    +
    @@ -1874,7 +1874,7 @@
    -
    +
    @@ -1896,7 +1896,7 @@
    -
    +
    @@ -1923,7 +1923,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Resource/WritableCollection.html b/docs/api/davical/Resource/WritableCollection.html index f0560b8c..0bb82001 100644 --- a/docs/api/davical/Resource/WritableCollection.html +++ b/docs/api/davical/Resource/WritableCollection.html @@ -140,7 +140,7 @@
    - WriteCalendarMember (line 19) + WriteCalendarMember (line 33)
    @@ -182,7 +182,7 @@
    - WriteMember (line 303) + WriteMember (line 287)
    @@ -329,7 +329,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/Resource/_inc---DAVResource.php.html b/docs/api/davical/Resource/_inc---DAVResource.php.html index 3eedd1b5..b1fc0f61 100644 --- a/docs/api/davical/Resource/_inc---DAVResource.php.html +++ b/docs/api/davical/Resource/_inc---DAVResource.php.html @@ -70,7 +70,7 @@
    -
    +
     @@ -91,7 +91,7 @@
    -
    +
     @@ -106,7 +106,7 @@
    -
    +
     @@ -121,7 +121,7 @@
    -
    +
     @@ -142,7 +142,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/SqlToArray.html b/docs/api/davical/SqlToArray.html index 9e3b8404..015f33ac 100644 --- a/docs/api/davical/SqlToArray.html +++ b/docs/api/davical/SqlToArray.html @@ -267,7 +267,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/VCard.html b/docs/api/davical/VCard.html index 4d26e42d..7d02e12f 100644 --- a/docs/api/davical/VCard.html +++ b/docs/api/davical/VCard.html @@ -200,7 +200,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---SqlToArray.php.html b/docs/api/davical/_htdocs---SqlToArray.php.html index 8dc39eab..38e288dd 100644 --- a/docs/api/davical/_htdocs---SqlToArray.php.html +++ b/docs/api/davical/_htdocs---SqlToArray.php.html @@ -57,7 +57,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---admin.php.html b/docs/api/davical/_htdocs---admin.php.html index 84187c50..54b03556 100644 --- a/docs/api/davical/_htdocs---admin.php.html +++ b/docs/api/davical/_htdocs---admin.php.html @@ -206,7 +206,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---always.php.html b/docs/api/davical/_htdocs---always.php.html index ede3a268..25d549e1 100644 --- a/docs/api/davical/_htdocs---always.php.html +++ b/docs/api/davical/_htdocs---always.php.html @@ -50,7 +50,7 @@ include ('../config/config.php') - (line 139) + (line 141)
    @@ -65,7 +65,7 @@ include ('/usr/local/etc/davical/'.$_SERVER['SERVER_NAME'].'-conf.php') - (line 133) + (line 135)
    @@ -80,7 +80,7 @@ include ('/usr/local/etc/davical/config.php') - (line 136) + (line 138)
    @@ -95,7 +95,7 @@ include ('/etc/davical/'.$_SERVER['SERVER_NAME'].'-conf.php') - (line 127) + (line 129)
    @@ -111,7 +111,7 @@ include ('config/config.php') - (line 142) + (line 144)
    @@ -126,7 +126,7 @@ include (davical_configuration_missing.php) - (line 145) + (line 147)
    @@ -141,7 +141,7 @@ include ('/etc/davical/config.php') - (line 130) + (line 132)
    @@ -186,7 +186,7 @@ require_once ('AwlQuery.php') - (line 191) + (line 193)
    @@ -202,7 +202,7 @@ require_once (Principal.php) - (line 209) + (line 211)
    @@ -229,7 +229,7 @@ DAVICAL_ADDRESSBOOK_MAXPRIV = "1023" - (line 355) + (line 357)
    @@ -244,7 +244,7 @@ DAVICAL_MAXPRIV = "65535" - (line 354) + (line 356)
    @@ -275,7 +275,7 @@
    - bits_to_privilege (line 406) + bits_to_privilege (line 409)
    @@ -307,7 +307,7 @@
    - ConstructURL (line 273) + ConstructURL (line 275)
    @@ -336,7 +336,7 @@
    - DateToISODate (line 342) + DateToISODate (line 344)
    @@ -365,7 +365,7 @@
    - DeconstructURL (line 302) + DeconstructURL (line 304)
    @@ -427,7 +427,7 @@
    - getStatusMessage (line 216) + getStatusMessage (line 218)
    @@ -456,7 +456,7 @@
    - ISODateToHTTPDate (line 333) + ISODateToHTTPDate (line 335)
    @@ -482,7 +482,7 @@
    - privileges_to_XML (line 453) + privileges_to_XML (line 456)
    @@ -511,7 +511,7 @@
    - privilege_to_bits (line 356) + privilege_to_bits (line 358)
    @@ -535,7 +535,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---createdb.php.html b/docs/api/davical/_htdocs---createdb.php.html index ec6c7cb9..feec609b 100644 --- a/docs/api/davical/_htdocs---createdb.php.html +++ b/docs/api/davical/_htdocs---createdb.php.html @@ -36,7 +36,7 @@
    -
    +
     @@ -65,7 +65,7 @@
    -
    +
    @@ -93,7 +93,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---dbexec.php.html b/docs/api/davical/_htdocs---dbexec.php.html index c2961e05..69e7c3ce 100644 --- a/docs/api/davical/_htdocs---dbexec.php.html +++ b/docs/api/davical/_htdocs---dbexec.php.html @@ -34,7 +34,7 @@
    -
    +
     @@ -57,7 +57,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---feed.php.html b/docs/api/davical/_htdocs---feed.php.html index 5c790ac2..89cf9445 100644 --- a/docs/api/davical/_htdocs---feed.php.html +++ b/docs/api/davical/_htdocs---feed.php.html @@ -36,7 +36,7 @@
    -
    +
     @@ -51,7 +51,7 @@
    -
    +
     @@ -72,7 +72,7 @@
    -
    +
     @@ -87,7 +87,7 @@
    -
    +
     @@ -102,7 +102,7 @@
    -
    +
     @@ -117,7 +117,7 @@
    -
    +
     @@ -146,7 +146,7 @@
    -
    +
    @@ -174,7 +174,7 @@
    -
    +
    @@ -204,7 +204,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---freebusy.php.html b/docs/api/davical/_htdocs---freebusy.php.html index ba662f48..a60795ce 100644 --- a/docs/api/davical/_htdocs---freebusy.php.html +++ b/docs/api/davical/_htdocs---freebusy.php.html @@ -34,7 +34,7 @@
    -
    +
     @@ -49,7 +49,7 @@
    -
    +
     @@ -64,7 +64,7 @@
    -
    +
     @@ -79,7 +79,7 @@
    -
    +
     @@ -95,7 +95,7 @@
    -
    +
     @@ -116,7 +116,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---help.php.html b/docs/api/davical/_htdocs---help.php.html index 145ea3dd..62c0c666 100644 --- a/docs/api/davical/_htdocs---help.php.html +++ b/docs/api/davical/_htdocs---help.php.html @@ -115,7 +115,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---index.php.html b/docs/api/davical/_htdocs---index.php.html index 651b00fb..f82fc05f 100644 --- a/docs/api/davical/_htdocs---index.php.html +++ b/docs/api/davical/_htdocs---index.php.html @@ -131,7 +131,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---newfile.php.html b/docs/api/davical/_htdocs---newfile.php.html index d64ed250..35e6db1b 100644 --- a/docs/api/davical/_htdocs---newfile.php.html +++ b/docs/api/davical/_htdocs---newfile.php.html @@ -34,7 +34,7 @@
    -
    +
     @@ -55,7 +55,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---setup.php.html b/docs/api/davical/_htdocs---setup.php.html index 5102b407..889b5470 100644 --- a/docs/api/davical/_htdocs---setup.php.html +++ b/docs/api/davical/_htdocs---setup.php.html @@ -67,14 +67,14 @@
    -
    +
     include (page-footer.php) - (line 379) + (line 387)
    @@ -82,14 +82,14 @@
    -
    +
     include ("./always.php") - (line 123) + (line 130)
    @@ -97,14 +97,14 @@
    -
    +
     include (page-header.php) - (line 133) + (line 140)
    @@ -112,14 +112,14 @@
    -
    +
     include (interactive-page.php) - (line 132) + (line 139)
    @@ -127,14 +127,14 @@
    -
    +
     include (DAViCalSession.php) - (line 124) + (line 131)
    @@ -142,14 +142,14 @@
    -
    +
     require_once ("AwlQuery.php") - (line 135) + (line 142)
    @@ -172,11 +172,11 @@
    -
    +
    - build_dependencies_table (line 227) + build_dependencies_table (line 234)
    @@ -192,11 +192,11 @@
    -
    +
    - build_site_statistics (line 199) + build_site_statistics (line 206)
    @@ -212,11 +212,11 @@
    -
    +
    - check_awl_version (line 184) + check_awl_version (line 191)
    @@ -230,13 +230,33 @@ +
    + +
    + +
    + + check_calendar (line 81) +
    + + +
    + void + + check_calendar + + () +
    + + +
    - check_datetime (line 138) + check_datetime (line 145)
    @@ -256,7 +276,7 @@
    - check_davical_version (line 168) + check_davical_version (line 175)
    @@ -336,7 +356,7 @@
    - check_magic_quotes_gpc (line 88) + check_magic_quotes_gpc (line 95)
    @@ -356,7 +376,7 @@
    - check_magic_quotes_runtime (line 92) + check_magic_quotes_runtime (line 99)
    @@ -437,7 +457,7 @@
    - check_schema_version (line 146) + check_schema_version (line 153)
    @@ -457,7 +477,7 @@
    - check_suhosin_server_strip (line 81) + check_suhosin_server_strip (line 88)
    @@ -477,7 +497,7 @@
    - do_error (line 99) + do_error (line 106)
    @@ -502,7 +522,7 @@
    - get_phpinfo (line 111) + get_phpinfo (line 118)
    @@ -547,7 +567,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---test.php.html b/docs/api/davical/_htdocs---test.php.html index f13fc395..e3d20dfa 100644 --- a/docs/api/davical/_htdocs---test.php.html +++ b/docs/api/davical/_htdocs---test.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---upgrade.php.html b/docs/api/davical/_htdocs---upgrade.php.html index 97bdec1a..66148d4d 100644 --- a/docs/api/davical/_htdocs---upgrade.php.html +++ b/docs/api/davical/_htdocs---upgrade.php.html @@ -146,7 +146,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_htdocs---well-known.php.html b/docs/api/davical/_htdocs---well-known.php.html index f95f2f2d..aa5999ab 100644 --- a/docs/api/davical/_htdocs---well-known.php.html +++ b/docs/api/davical/_htdocs---well-known.php.html @@ -43,7 +43,7 @@ include (iSchedule.php) - (line 37) + (line 41)
    @@ -114,7 +114,7 @@
    - ischedule_get (line 51) + ischedule_get (line 55)
    @@ -133,7 +133,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---AtomFeed.php.html b/docs/api/davical/_inc---AtomFeed.php.html index 2a8df665..604f49ae 100644 --- a/docs/api/davical/_inc---AtomFeed.php.html +++ b/docs/api/davical/_inc---AtomFeed.php.html @@ -152,7 +152,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---WritableCollection.php.html b/docs/api/davical/_inc---WritableCollection.php.html index 11300e22..2e4fbe37 100644 --- a/docs/api/davical/_inc---WritableCollection.php.html +++ b/docs/api/davical/_inc---WritableCollection.php.html @@ -85,7 +85,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-LOCK.php.html b/docs/api/davical/_inc---caldav-LOCK.php.html index eaf2d68d..50034f87 100644 --- a/docs/api/davical/_inc---caldav-LOCK.php.html +++ b/docs/api/davical/_inc---caldav-LOCK.php.html @@ -56,7 +56,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-calquery.php.html b/docs/api/davical/_inc---caldav-REPORT-calquery.php.html index e8b9f0c6..b1b2ab53 100644 --- a/docs/api/davical/_inc---caldav-REPORT-calquery.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-calquery.php.html @@ -16,7 +16,8 @@
    Description
    @@ -25,6 +26,32 @@
    + +
    +
    Includes
    + +
    + +
    + +
    +  + + include_once + ('vCalendar.php') + (line 3) + +
    + + + +
    +
    +
    @@ -33,15 +60,16 @@
    Functions
    -
    +
    - apply_filter (line 85) + apply_filter (line 75)
    @@ -72,11 +100,11 @@
    -
    +
    - BuildSqlFilter (line 285) + BuildSqlFilter (line 276)
    @@ -104,11 +132,11 @@
    -
    +
    - check_for_expansion (line 4) + check_for_expansion (line 6)
    @@ -129,11 +157,11 @@
    -
    +
    - SqlFilterFragment (line 101) + SqlFilterFragment (line 91)
    @@ -167,7 +195,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html b/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html index f55e9d1e..1b03e5d5 100644 --- a/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-cardquery.php.html @@ -36,7 +36,7 @@
    -
    +
     @@ -65,7 +65,7 @@
    -
    +
    @@ -90,7 +90,7 @@
    -
    +
    @@ -128,7 +128,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html b/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html index 339ce209..c0dd065c 100644 --- a/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-expand-property.php.html @@ -37,7 +37,7 @@
    -
    +
    @@ -72,7 +72,7 @@
    -
    +
    @@ -101,7 +101,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html b/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html index 46312c5b..d1f77d42 100644 --- a/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-freebusy.php.html @@ -34,7 +34,7 @@
    -
    +
     @@ -56,7 +56,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-multiget.php.html b/docs/api/davical/_inc---caldav-REPORT-multiget.php.html index f5c91ab1..bd84c66b 100644 --- a/docs/api/davical/_inc---caldav-REPORT-multiget.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-multiget.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html b/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html index 4f85174f..237ee33f 100644 --- a/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-principal-match.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---caldav-REPORT-principal.php.html b/docs/api/davical/_inc---caldav-REPORT-principal.php.html index 70cb8fd5..cc2ca95f 100644 --- a/docs/api/davical/_inc---caldav-REPORT-principal.php.html +++ b/docs/api/davical/_inc---caldav-REPORT-principal.php.html @@ -29,7 +29,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---check_UTF8.php.html b/docs/api/davical/_inc---check_UTF8.php.html index 522a4838..b7b65bb6 100644 --- a/docs/api/davical/_inc---check_UTF8.php.html +++ b/docs/api/davical/_inc---check_UTF8.php.html @@ -37,7 +37,7 @@
    -
    +
    @@ -62,7 +62,7 @@
    -
    +
    @@ -89,7 +89,7 @@
    -
    +
    @@ -119,7 +119,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---davical_configuration_missing.php.html b/docs/api/davical/_inc---davical_configuration_missing.php.html index 2e38ba30..fe140024 100644 --- a/docs/api/davical/_inc---davical_configuration_missing.php.html +++ b/docs/api/davical/_inc---davical_configuration_missing.php.html @@ -34,7 +34,7 @@
    -
    +
     @@ -49,7 +49,7 @@
    -
    +
     @@ -70,7 +70,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---freebusy-functions.php.html b/docs/api/davical/_inc---freebusy-functions.php.html index 2e33d416..1626f8a5 100644 --- a/docs/api/davical/_inc---freebusy-functions.php.html +++ b/docs/api/davical/_inc---freebusy-functions.php.html @@ -36,7 +36,7 @@
    -
    +
     @@ -52,7 +52,7 @@
    -
    +
     @@ -81,7 +81,7 @@
    -
    +
    @@ -118,7 +118,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---interactive-page.php.html b/docs/api/davical/_inc---interactive-page.php.html index 7f51a7b0..16993c01 100644 --- a/docs/api/davical/_inc---interactive-page.php.html +++ b/docs/api/davical/_inc---interactive-page.php.html @@ -55,7 +55,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---other_translated_strings.php.html b/docs/api/davical/_inc---other_translated_strings.php.html index 42d14552..576190a7 100644 --- a/docs/api/davical/_inc---other_translated_strings.php.html +++ b/docs/api/davical/_inc---other_translated_strings.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---page-footer.php.html b/docs/api/davical/_inc---page-footer.php.html index 0285b555..2dc3c258 100644 --- a/docs/api/davical/_inc---page-footer.php.html +++ b/docs/api/davical/_inc---page-footer.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---page-header.php.html b/docs/api/davical/_inc---page-header.php.html index 877d8389..82b7fc20 100644 --- a/docs/api/davical/_inc---page-header.php.html +++ b/docs/api/davical/_inc---page-header.php.html @@ -37,7 +37,7 @@
    -
    +
    @@ -62,7 +62,7 @@
    -
    +
    @@ -85,7 +85,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---pubsub.php.html b/docs/api/davical/_inc---pubsub.php.html index 7bb49086..521bfee1 100644 --- a/docs/api/davical/_inc---pubsub.php.html +++ b/docs/api/davical/_inc---pubsub.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---test-RRULE-v2.php.html b/docs/api/davical/_inc---test-RRULE-v2.php.html index 18cb329c..116506c4 100644 --- a/docs/api/davical/_inc---test-RRULE-v2.php.html +++ b/docs/api/davical/_inc---test-RRULE-v2.php.html @@ -115,7 +115,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---test-RRULE.php.html b/docs/api/davical/_inc---test-RRULE.php.html index c69594f6..de220d4d 100644 --- a/docs/api/davical/_inc---test-RRULE.php.html +++ b/docs/api/davical/_inc---test-RRULE.php.html @@ -100,7 +100,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---ui---collection-edit.php.html b/docs/api/davical/_inc---ui---collection-edit.php.html index 573d2026..b4c4afe3 100644 --- a/docs/api/davical/_inc---ui---collection-edit.php.html +++ b/docs/api/davical/_inc---ui---collection-edit.php.html @@ -36,7 +36,7 @@
    -
    +
     @@ -51,7 +51,7 @@
    -
    +
     @@ -82,7 +82,7 @@
    -
    +
    @@ -107,7 +107,7 @@
    -
    +
    @@ -146,7 +146,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---ui---principal-browse.php.html b/docs/api/davical/_inc---ui---principal-browse.php.html index d31669ca..156d3205 100644 --- a/docs/api/davical/_inc---ui---principal-browse.php.html +++ b/docs/api/davical/_inc---ui---principal-browse.php.html @@ -28,7 +28,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---ui---principal-edit.php.html b/docs/api/davical/_inc---ui---principal-edit.php.html index a3be9674..4690b9af 100644 --- a/docs/api/davical/_inc---ui---principal-edit.php.html +++ b/docs/api/davical/_inc---ui---principal-edit.php.html @@ -37,7 +37,7 @@
    -
    +
    @@ -57,7 +57,7 @@
    -
    +
    @@ -77,7 +77,7 @@
    -
    +
    @@ -97,7 +97,7 @@
    -
    +
    @@ -125,7 +125,7 @@
    -
    +
    @@ -150,7 +150,7 @@
    -
    +
    @@ -175,7 +175,7 @@
    -
    +
    @@ -200,7 +200,7 @@
    -
    +
    @@ -228,7 +228,7 @@
    -
    +
    @@ -253,7 +253,7 @@
    -
    +
    @@ -278,7 +278,7 @@
    -
    +
    @@ -303,7 +303,7 @@
    -
    +
    @@ -323,7 +323,7 @@
    -
    +
    @@ -343,7 +343,7 @@
    -
    +
    @@ -363,7 +363,7 @@
    -
    +
    @@ -383,7 +383,7 @@
    -
    +
    @@ -408,7 +408,7 @@
    -
    +
    @@ -428,7 +428,7 @@
    -
    +
    @@ -448,7 +448,7 @@
    -
    +
    @@ -468,7 +468,7 @@
    -
    +
    @@ -491,7 +491,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/_inc---vcard.php.html b/docs/api/davical/_inc---vcard.php.html index 64bbd151..bba5df1c 100644 --- a/docs/api/davical/_inc---vcard.php.html +++ b/docs/api/davical/_inc---vcard.php.html @@ -101,7 +101,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/authentication/_inc---auth-functions.php.html b/docs/api/davical/authentication/_inc---auth-functions.php.html index a5376655..7b5d8327 100644 --- a/docs/api/davical/authentication/_inc---auth-functions.php.html +++ b/docs/api/davical/authentication/_inc---auth-functions.php.html @@ -83,7 +83,7 @@
    - AuthExternalAWL (line 268) + AuthExternalAWL (line 271)
    @@ -141,7 +141,7 @@
    - CreateDefaultRelationships (line 147) + CreateDefaultRelationships (line 150)
    @@ -167,7 +167,7 @@
    - CreateHomeCalendar (line 138) + CreateHomeCalendar (line 141)
    @@ -331,7 +331,7 @@
    - UpdateUserFromExternal (line 183) + UpdateUserFromExternal (line 186)
    @@ -359,7 +359,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_htdocs---caldav.php.html b/docs/api/davical/caldav/_htdocs---caldav.php.html index 9d33ff83..7091b5f5 100644 --- a/docs/api/davical/caldav/_htdocs---caldav.php.html +++ b/docs/api/davical/caldav/_htdocs---caldav.php.html @@ -42,7 +42,7 @@
    -
    +
     @@ -57,7 +57,7 @@
    -
    +
     @@ -72,7 +72,7 @@
    -
    +
     @@ -87,7 +87,7 @@
    -
    +
     @@ -102,7 +102,7 @@
    -
    +
     @@ -117,7 +117,7 @@
    -
    +
     @@ -132,7 +132,7 @@
    -
    +
     @@ -147,7 +147,7 @@
    -
    +
     @@ -162,7 +162,7 @@
    -
    +
     @@ -177,7 +177,7 @@
    -
    +
     @@ -192,7 +192,7 @@
    -
    +
     @@ -207,7 +207,7 @@
    -
    +
     @@ -222,7 +222,7 @@
    -
    +
     @@ -237,7 +237,7 @@
    -
    +
     @@ -252,7 +252,7 @@
    -
    +
     @@ -267,7 +267,7 @@
    -
    +
     @@ -282,7 +282,7 @@
    -
    +
     @@ -297,7 +297,7 @@
    -
    +
     @@ -312,7 +312,7 @@
    -
    +
     @@ -327,7 +327,7 @@
    -
    +
     @@ -342,7 +342,7 @@
    -
    +
     @@ -360,7 +360,7 @@
    -
    +
     @@ -381,7 +381,7 @@
    -
    +
     @@ -396,7 +396,7 @@
    -
    +
     @@ -411,7 +411,7 @@
    -
    +
     @@ -440,7 +440,7 @@
    -
    +
    @@ -460,7 +460,7 @@
    -
    +
    @@ -483,7 +483,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:09 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_htdocs---public.php.html b/docs/api/davical/caldav/_htdocs---public.php.html index ea758c39..95f48936 100644 --- a/docs/api/davical/caldav/_htdocs---public.php.html +++ b/docs/api/davical/caldav/_htdocs---public.php.html @@ -40,7 +40,7 @@
    -
    +
     @@ -55,7 +55,7 @@
    -
    +
     @@ -70,7 +70,7 @@
    -
    +
     @@ -85,7 +85,7 @@
    -
    +
     @@ -100,7 +100,7 @@
    -
    +
     @@ -115,7 +115,7 @@
    -
    +
     @@ -130,7 +130,7 @@
    -
    +
     @@ -145,7 +145,7 @@
    -
    +
     @@ -166,7 +166,7 @@
    -
    +
     @@ -188,7 +188,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:48 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-ACL.php.html b/docs/api/davical/caldav/_inc---caldav-ACL.php.html index cfba150c..6b8121cd 100644 --- a/docs/api/davical/caldav/_inc---caldav-ACL.php.html +++ b/docs/api/davical/caldav/_inc---caldav-ACL.php.html @@ -109,7 +109,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-BIND.php.html b/docs/api/davical/caldav/_inc---caldav-BIND.php.html index aae7045c..ba2f42d5 100644 --- a/docs/api/davical/caldav/_inc---caldav-BIND.php.html +++ b/docs/api/davical/caldav/_inc---caldav-BIND.php.html @@ -106,7 +106,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:07 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:43 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-DELETE.php.html b/docs/api/davical/caldav/_inc---caldav-DELETE.php.html index c22c1cd3..a2486a3f 100644 --- a/docs/api/davical/caldav/_inc---caldav-DELETE.php.html +++ b/docs/api/davical/caldav/_inc---caldav-DELETE.php.html @@ -105,7 +105,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html b/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html index dfce7827..1887e47a 100644 --- a/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html +++ b/docs/api/davical/caldav/_inc---caldav-DELTICKET.php.html @@ -62,7 +62,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-GET.php.html b/docs/api/davical/caldav/_inc---caldav-GET.php.html index 28c9177e..d591aa73 100644 --- a/docs/api/davical/caldav/_inc---caldav-GET.php.html +++ b/docs/api/davical/caldav/_inc---caldav-GET.php.html @@ -114,7 +114,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html b/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html index de7d96c9..e7a626f1 100644 --- a/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html +++ b/docs/api/davical/caldav/_inc---caldav-MKCOL.php.html @@ -97,7 +97,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html b/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html index f7d49818..dea2af74 100644 --- a/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html +++ b/docs/api/davical/caldav/_inc---caldav-MKTICKET.php.html @@ -84,7 +84,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-MOVE.php.html b/docs/api/davical/caldav/_inc---caldav-MOVE.php.html index 9ee745e7..d2b03c06 100644 --- a/docs/api/davical/caldav/_inc---caldav-MOVE.php.html +++ b/docs/api/davical/caldav/_inc---caldav-MOVE.php.html @@ -101,7 +101,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html b/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html index f377f4bf..3d69da98 100644 --- a/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html +++ b/docs/api/davical/caldav/_inc---caldav-OPTIONS.php.html @@ -67,7 +67,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-POST.php.html b/docs/api/davical/caldav/_inc---caldav-POST.php.html index ea3b2a61..34af09b5 100644 --- a/docs/api/davical/caldav/_inc---caldav-POST.php.html +++ b/docs/api/davical/caldav/_inc---caldav-POST.php.html @@ -160,7 +160,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html b/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html index 6b4ecc4a..c6344933 100644 --- a/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html +++ b/docs/api/davical/caldav/_inc---caldav-PROPPATCH.php.html @@ -39,14 +39,14 @@ Includes
    - +
     require_once - ('iCalendar.php') + ('vCalendar.php') (line 13)
    @@ -82,7 +82,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html b/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html index 1b5253a7..381d2332 100644 --- a/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html +++ b/docs/api/davical/caldav/_inc---caldav-PUT-default.php.html @@ -61,7 +61,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html b/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html index a1b79057..4151bd68 100644 --- a/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html +++ b/docs/api/davical/caldav/_inc---caldav-PUT-functions.php.html @@ -273,7 +273,7 @@
    - import_collection (line 385) + import_collection (line 392)
    @@ -381,7 +381,7 @@
    - simple_write_resource (line 1019) + simple_write_resource (line 1006)
    @@ -419,7 +419,7 @@
    - write_alarms (line 630) + write_alarms (line 622)
    @@ -448,7 +448,7 @@
    - write_attendees (line 687) + write_attendees (line 679)
    @@ -477,7 +477,7 @@
    - write_resource (line 736) + write_resource (line 728)
    @@ -490,22 +490,19 @@ write_resource - (DAVResource $resource, string $caldav_data, DAVResource $collection, int $author, string $etag, string $put_action_type, boolean $caldav_context, [boolean $log_action = true], [string $weak_etag = null], int $user_no, string $path, int $collection_id, vComponent $ic, string 9) + (DAVResource $resource, string $caldav_data, DAVResource $collection, int $author, string $etag, string $put_action_type, boolean $caldav_context, [string $log_action = true], [string $weak_etag = null])
    • - int - $user_no: The user_no owning this resource on the server
    • + DAVResource + $resource: The resource being written
    • string - $path: The path to the resource being written
    • + $caldav_data: The actual data to be written
    • - string - $caldav_data: The actual resource to be written
    • -
    • - int - $collection_id: The ID of the collection containing the resource being written
    • + DAVResource + $collection: The collection containing the resource being written
    • int $author: The user_no who wants to put this resource on the server
    • @@ -513,9 +510,6 @@ string $etag: An etag unique for this event
    • - vComponent - $ic: The parsed iCalendar object
    • -
    • string $put_action_type: INSERT or UPDATE depending on what we are to do
    • @@ -523,19 +517,10 @@ $caldav_context: True, if we are responding via CalDAV, false for other ways of calling this
    • string - 9: Either 'INSERT' or 'UPDATE': the type of action we are doing
    • -
    • - boolean - $log_action: Whether to log the fact that we are writing this into an action log (if configured)
    • + $log_action: Either 'INSERT' or 'UPDATE': the type of action we are doing
    • string $weak_etag: An etag that is NOT modified on ATTENDEE changes for this event
    • -
    • - DAVResource - $resource
    • -
    • - DAVResource - $collection
    @@ -544,7 +529,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html b/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html index 2c93f51f..e3ba1221 100644 --- a/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html +++ b/docs/api/davical/caldav/_inc---caldav-PUT-vcalendar.php.html @@ -76,7 +76,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html b/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html index 4dc906e9..119f165d 100644 --- a/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html +++ b/docs/api/davical/caldav/_inc---caldav-PUT-vcard.php.html @@ -76,7 +76,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html b/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html index a0cb1c08..6fcb1b8b 100644 --- a/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html +++ b/docs/api/davical/caldav/_inc---caldav-REPORT-pps-set.php.html @@ -43,7 +43,7 @@
    -
    +
    @@ -75,7 +75,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html b/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html index b4c923a4..905cfb09 100644 --- a/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html +++ b/docs/api/davical/caldav/_inc---caldav-REPORT-sync-collection.php.html @@ -43,7 +43,7 @@
    -
    +
    @@ -72,7 +72,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/caldav/_inc---caldav-REPORT.php.html b/docs/api/davical/caldav/_inc---caldav-REPORT.php.html index d0d3cac4..455187f2 100644 --- a/docs/api/davical/caldav/_inc---caldav-REPORT.php.html +++ b/docs/api/davical/caldav/_inc---caldav-REPORT.php.html @@ -42,7 +42,7 @@
    -
    +
     @@ -57,7 +57,7 @@
    -
    +
     @@ -72,7 +72,7 @@
    -
    +
     @@ -87,7 +87,7 @@
    -
    +
     @@ -102,7 +102,7 @@
    -
    +
     @@ -117,7 +117,7 @@
    -
    +
     @@ -132,7 +132,7 @@
    -
    +
     @@ -147,7 +147,7 @@
    -
    +
     @@ -162,7 +162,7 @@
    -
    +
     @@ -177,7 +177,7 @@
    -
    +
     @@ -192,7 +192,7 @@
    -
    +
     @@ -213,7 +213,7 @@
    -
    +
     @@ -228,7 +228,7 @@
    -
    +
     @@ -243,7 +243,7 @@
    -
    +
     @@ -258,7 +258,7 @@
    -
    +
     @@ -273,7 +273,7 @@
    -
    +
     @@ -288,7 +288,7 @@
    -
    +
     @@ -317,7 +317,7 @@
    -
    +
    @@ -349,7 +349,7 @@
    -
    +
    @@ -384,7 +384,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/external-bind/_inc---external-fetch.php.html b/docs/api/davical/external-bind/_inc---external-fetch.php.html index d3b7ee97..92e757c3 100644 --- a/docs/api/davical/external-bind/_inc---external-fetch.php.html +++ b/docs/api/davical/external-bind/_inc---external-fetch.php.html @@ -43,7 +43,7 @@
    -
    +
    @@ -80,7 +80,7 @@
    -
    +
    @@ -108,7 +108,7 @@
    -
    +
    @@ -136,7 +136,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/iSchedule/_inc---iSchedule.php.html b/docs/api/davical/iSchedule/_inc---iSchedule.php.html index e4117ee5..fd3c5fbd 100644 --- a/docs/api/davical/iSchedule/_inc---iSchedule.php.html +++ b/docs/api/davical/iSchedule/_inc---iSchedule.php.html @@ -116,7 +116,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/iSchedule/iSchedule.html b/docs/api/davical/iSchedule/iSchedule.html index 85f9dcfd..0a132d68 100644 --- a/docs/api/davical/iSchedule/iSchedule.html +++ b/docs/api/davical/iSchedule/iSchedule.html @@ -511,7 +511,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html b/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html index 33a97621..f29b286a 100644 --- a/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html +++ b/docs/api/davical/ldap/_inc---drivers_imap_pam.php.html @@ -52,7 +52,7 @@  class - imapPamDrivers + @@ -73,7 +73,7 @@
    -
    +
     @@ -109,7 +109,7 @@
    -
    +
    @@ -141,7 +141,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/_inc---drivers_ldap.php.html b/docs/api/davical/ldap/_inc---drivers_ldap.php.html index a3ebb80d..4439b55c 100644 --- a/docs/api/davical/ldap/_inc---drivers_ldap.php.html +++ b/docs/api/davical/ldap/_inc---drivers_ldap.php.html @@ -73,7 +73,7 @@
    -
    +
     @@ -109,7 +109,7 @@
    -
    +
    @@ -130,7 +130,7 @@
    -
    +
    @@ -159,7 +159,7 @@
    -
    +
    @@ -180,7 +180,7 @@
    -
    +
    @@ -201,7 +201,7 @@
    -
    +
    @@ -239,7 +239,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/_inc---drivers_rimap.php.html b/docs/api/davical/ldap/_inc---drivers_rimap.php.html new file mode 100644 index 00000000..9c81fb40 --- /dev/null +++ b/docs/api/davical/ldap/_inc---drivers_rimap.php.html @@ -0,0 +1,147 @@ + + + + + + Docs for page drivers_rimap.php + + + + +
    +

    File/inc/drivers_rimap.php

    + + +
    +
    Description
    + +
    + +

    Manages PAM repository connection with local imap server help

    + + +
    +
    + + +
    +
    Classes
    + +
    + + + + + + + + + +
    ClassDescription
    +  class + imapPamDrivers + + +
    +
    +
    + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ("auth-functions.php") + (line 14) + +
    + + +

    Manages PAM repository connection with local imap server help

    + + +
    +
    +
    + + + + +
    +
    Functions
    + +
    + +
    + +
    + + RIMAP_check (line 54) +
    + + +

    Check the username / password against the IMAP server

    +
    + void + + RIMAP_check + + ( $username,  $password) +
    + +
      +
    • + + $username
    • +
    • + + $password
    • +
    + + +
    +
    +
    + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html b/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html index 2a25b776..38609c50 100644 --- a/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html +++ b/docs/api/davical/ldap/_inc---drivers_squid_pam.php.html @@ -73,7 +73,7 @@
    -
    +
     @@ -109,7 +109,7 @@
    -
    +
    @@ -141,7 +141,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/imapPamDrivers.html b/docs/api/davical/ldap/imapPamDrivers.html index 567cbdf2..9d2d065b 100644 --- a/docs/api/davical/ldap/imapPamDrivers.html +++ b/docs/api/davical/ldap/imapPamDrivers.html @@ -25,7 +25,7 @@

    - Located in /inc/drivers_imap_pam.php (line 16) + Located in /inc/drivers_rimap.php (line 16)

    @@ -133,7 +133,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/ldapDrivers.html b/docs/api/davical/ldap/ldapDrivers.html index 24b06f13..a37b6e8e 100644 --- a/docs/api/davical/ldap/ldapDrivers.html +++ b/docs/api/davical/ldap/ldapDrivers.html @@ -86,7 +86,7 @@
    -
    +
    @@ -113,7 +113,7 @@
    -
    +
    @@ -140,7 +140,7 @@
    -
    +
    @@ -167,7 +167,7 @@
    -
    +
    @@ -211,7 +211,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:46 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/ldap/squidPamDrivers.html b/docs/api/davical/ldap/squidPamDrivers.html index 161d6b51..475e575f 100644 --- a/docs/api/davical/ldap/squidPamDrivers.html +++ b/docs/api/davical/ldap/squidPamDrivers.html @@ -68,7 +68,7 @@
    -
    +
    @@ -100,7 +100,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/logging/_inc---log_caldav_action.php.html b/docs/api/davical/logging/_inc---log_caldav_action.php.html index 80166913..d36b645e 100644 --- a/docs/api/davical/logging/_inc---log_caldav_action.php.html +++ b/docs/api/davical/logging/_inc---log_caldav_action.php.html @@ -47,7 +47,7 @@
    -
    +
    @@ -88,7 +88,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:11 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html b/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html index 8cbb59dd..6d8d0c15 100644 --- a/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html +++ b/docs/api/davical/propfind/_inc---caldav-PROPFIND.php.html @@ -181,7 +181,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:08 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:44 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html b/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html index 8f4be574..1a2756ed 100644 --- a/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html +++ b/docs/api/davical/pwauth/_inc---drivers_pwauth_pam.php.html @@ -75,7 +75,7 @@
    -
    +
     @@ -113,7 +113,7 @@
    -
    +
    @@ -145,7 +145,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/pwauth/pwauthPamDrivers.html b/docs/api/davical/pwauth/pwauthPamDrivers.html index 89ca1794..641ca34e 100644 --- a/docs/api/davical/pwauth/pwauthPamDrivers.html +++ b/docs/api/davical/pwauth/pwauthPamDrivers.html @@ -68,7 +68,7 @@
    -
    +
    @@ -100,7 +100,7 @@

    - Documentation generated on Sun, 11 Sep 2011 20:48:10 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/davical/tzservice/_htdocs---tz.php.html b/docs/api/davical/tzservice/_htdocs---tz.php.html new file mode 100644 index 00000000..9750c29a --- /dev/null +++ b/docs/api/davical/tzservice/_htdocs---tz.php.html @@ -0,0 +1,118 @@ + + + + + + Docs for page tz.php + + + + +
    +

    File/htdocs/tz.php

    + + +
    +
    Description
    + +
    + +

    DAViCal Timezone Service handler

    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + include_once + ($code_file) + (line 28) + +
    + + + +
    + +
    + +
    +  + + require + ("./always.php") + (line 11) + +
    + + +

    DAViCal Timezone Service handler

    + + +
    + +
    + +
    +  + + require + (PublicSession.php) + (line 12) + +
    + + + +
    + +
    + +
    +  + + require_once + (CalDAVRequest.php) + (line 24) + +
    + + + +
    +
    +
    + + + + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/davical/tzservice/_inc---tz---capabilities.php.html b/docs/api/davical/tzservice/_inc---tz---capabilities.php.html new file mode 100644 index 00000000..323ab044 --- /dev/null +++ b/docs/api/davical/tzservice/_inc---tz---capabilities.php.html @@ -0,0 +1,40 @@ + + + + + + Docs for page capabilities.php + + + + +
    +

    File/inc/tz/capabilities.php

    + + +
    +
    Description
    + +
    + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    + + + + + + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:45 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/davical/tzservice/_inc---tz---expand.php.html b/docs/api/davical/tzservice/_inc---tz---expand.php.html new file mode 100644 index 00000000..98c388fa --- /dev/null +++ b/docs/api/davical/tzservice/_inc---tz---expand.php.html @@ -0,0 +1,169 @@ + + + + + + Docs for page expand.php + + + + +
    +

    File/inc/tz/expand.php

    + + +
    +
    Description
    + +
    + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('vCalendar.php') + (line 12) + +
    + + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    + +
    + +
    +  + + require_once + (RRule-v2.php) + (line 13) + +
    + + + +
    +
    +
    + + +
    +
    Constants
    + +
    + +
    + +
    + + + DEBUG_EXPAND = false + (line 40) + +
    + + + + +
    +
    +
    + + + +
    +
    Functions
    + +
    + +
    + +
    + + expand_timezone_onsets (line 53) +
    + + +

    Expand the instances for a STANDARD or DAYLIGHT component of a VTIMEZONE

    +
      +
    • return: of onset datetimes with UTC from/to offsets
    • +
    +
    + array + + expand_timezone_onsets + + ( $vResource,  $range_start,  $range_end, int $offset_from) +
    + +
      +
    • + object + $vResource: is a VCALENDAR with a VTIMEZONE containing components needing expansion
    • +
    • + object + $range_start: A RepeatRuleDateTime which is the beginning of the range for events.
    • +
    • + object + $range_end: A RepeatRuleDateTime which is the end of the range for events.
    • +
    • + int + $offset_from: The offset from UTC in seconds at the onset time.
    • +
    + + +
    +
    +
    + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/davical/tzservice/_inc---tz---get.php.html b/docs/api/davical/tzservice/_inc---tz---get.php.html new file mode 100644 index 00000000..a2d0ca58 --- /dev/null +++ b/docs/api/davical/tzservice/_inc---tz---get.php.html @@ -0,0 +1,73 @@ + + + + + + Docs for page get.php + + + + +
    +

    File/inc/tz/get.php

    + + +
    +
    Description
    + +
    + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('vCalendar.php') + (line 12) + +
    + + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    +
    + + + + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/davical/tzservice/_inc---tz---list.php.html b/docs/api/davical/tzservice/_inc---tz---list.php.html new file mode 100644 index 00000000..96d3a91f --- /dev/null +++ b/docs/api/davical/tzservice/_inc---tz---list.php.html @@ -0,0 +1,73 @@ + + + + + + Docs for page list.php + + + + +
    +

    File/inc/tz/list.php

    + + +
    +
    Description
    + +
    + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    + + + +
    +
    Includes
    + +
    + +
    + +
    +  + + require_once + ('vComponent.php') + (line 12) + +
    + + +

    DAViCal Timezone Service handler - capabilitis

    + + +
    +
    +
    + + + + +

    + Documentation generated on Tue, 27 Sep 2011 11:30:47 +1300 by phpDocumentor 1.4.3 +

    +
    + \ No newline at end of file diff --git a/docs/api/elementindex.html b/docs/api/elementindex.html index 5b32d8b4..0f040a1a 100644 --- a/docs/api/elementindex.html +++ b/docs/api/elementindex.html @@ -485,15 +485,15 @@ $collection_id
    -
    CalDAVRequest::$collection_id in CalDAVRequest.php
    -
    The ID of the collection containing this path, or of this path if it is a collection
    +
    Principal::$collection_id in Principal.php
    Variable $collection_id
    -
    Principal::$collection_id in Principal.php
    +
    CalDAVRequest::$collection_id in CalDAVRequest.php
    +
    The ID of the collection containing this path, or of this path if it is a collection
    Variable @@ -547,14 +547,6 @@
    Principal::cacheFlush() in Principal.php
    -
    - Method - CalDAVClient -
    -
    -
    CalDAVClient::CalDAVClient() in caldav-client.php
    -
    Constructor, initialises the class
    -
    Class CalDAVClient @@ -563,6 +555,14 @@
    CalDAVClient in caldav-client.php
    A class for accessing DAViCal via CalDAV, as a client
    +
    + Method + CalDAVClient +
    +
    +
    CalDAVClient::CalDAVClient() in caldav-client.php
    +
    Constructor, initialises the class
    +
    Class CalDAVRequest @@ -634,6 +634,13 @@
    Function + check_calendar +
    +
    +
    check_calendar() in setup.php
    +
    +
    + Function check_datetime
    @@ -1116,6 +1123,13 @@
    Page + capabilities.php +
    +
    +
    capabilities.php in capabilities.php
    +
    +
    + Page collection-edit.php
    @@ -1348,6 +1362,13 @@
    Constant + DEBUG_EXPAND +
    +
    +
    DEBUG_EXPAND in expand.php
    +
    +
    + Constant DEBUG_RRULE
    @@ -1558,6 +1579,13 @@
    Page + drivers_rimap.php +
    +
    +
    drivers_rimap.php in drivers_rimap.php
    +
    +
    + Page drivers_squid_pam.php
    @@ -1705,6 +1733,14 @@
    expand_properties() in caldav-REPORT-expand-property.php
    Expand the properties, recursing only once
    +
    + Function + expand_timezone_onsets +
    +
    + +
    Expand the instances for a STANDARD or DAYLIGHT component of a VTIMEZONE
    +
    Method export @@ -1719,6 +1755,13 @@
    external-fetch.php in external-fetch.php
    +
    + Page + expand.php +
    +
    +
    expand.php in expand.php
    +
    @@ -2335,6 +2378,13 @@
    group_row_editor() in principal-edit.php
    +
    + Page + get.php +
    +
    +
    get.php in get.php
    +
    @@ -2534,7 +2584,7 @@ imapPamDrivers
    -
    imapPamDrivers::imapPamDrivers() in drivers_imap_pam.php
    +
    Constructor.
    @@ -2542,7 +2592,7 @@ imapPamDrivers
    -
    imapPamDrivers in drivers_imap_pam.php
    +
    imapPamDrivers in drivers_rimap.php
    Function @@ -2598,14 +2648,6 @@
    Method - IsAddressbook -
    -
    -
    DAVResource::IsAddressbook() in DAVResource.php
    -
    Checks whether this resource is an addressbook
    -
    -
    - Method IsAddressBook
    @@ -2614,6 +2656,14 @@
    Method + IsAddressbook +
    +
    +
    DAVResource::IsAddressbook() in DAVResource.php
    +
    Checks whether this resource is an addressbook
    +
    +
    + Method IsBinding
    @@ -2656,16 +2706,16 @@ IsCollection
    -
    DAVResource::IsCollection() in DAVResource.php
    -
    Checks whether this resource is a collection
    +
    CalDAVRequest::IsCollection() in CalDAVRequest.php
    +
    Returns true if the URL referenced by this request points at a collection.
    Method IsCollection
    -
    CalDAVRequest::IsCollection() in CalDAVRequest.php
    -
    Returns true if the URL referenced by this request points at a collection.
    +
    DAVResource::IsCollection() in DAVResource.php
    +
    Checks whether this resource is a collection
    Method @@ -2710,7 +2760,7 @@ IsLocked
    -
    DAVResource::IsLocked() in DAVResource.php
    +
    CalDAVRequest::IsLocked() in CalDAVRequest.php
    Checks whether the resource is locked, returning any lock token, or false
    @@ -2718,7 +2768,7 @@ IsLocked
    -
    CalDAVRequest::IsLocked() in CalDAVRequest.php
    +
    DAVResource::IsLocked() in DAVResource.php
    Checks whether the resource is locked, returning any lock token, or false
    @@ -2814,6 +2864,13 @@
    log_caldav_action.php in log_caldav_action.php
    +
    + Page + list.php +
    +
    +
    list.php in list.php
    +
    Class ldapDrivers @@ -2985,6 +3042,7 @@
    RepeatRule::next() in RRule-v2.php
    +
    Return the next date in the repeating series.
    @@ -3448,14 +3506,14 @@ $resourcetypes
    -
    Principal::$resourcetypes in Principal.php
    +
    DAVResource::$resourcetypes in DAVResource.php
    Variable $resourcetypes
    -
    DAVResource::$resourcetypes in DAVResource.php
    +
    Principal::$resourcetypes in Principal.php
    Variable @@ -3503,13 +3561,6 @@
    Method - render -
    -
    -
    Tools::render() in tools.php
    -
    -
    - Method Render
    @@ -3525,11 +3576,10 @@
    Method - RenderAsXML + render
    -
    DAVPrincipal::RenderAsXML() in DAVPrincipal.php
    -
    Render XML for a single Principal (user) from the DB
    +
    Tools::render() in tools.php
    Method @@ -3541,6 +3591,14 @@
    Method + RenderAsXML +
    +
    +
    DAVPrincipal::RenderAsXML() in DAVPrincipal.php
    +
    Render XML for a single Principal (user) from the DB
    +
    +
    + Method RenderGMT
    @@ -3642,6 +3700,14 @@
    Function + RIMAP_check +
    +
    +
    RIMAP_check() in drivers_rimap.php
    +
    Check the username / password against the IMAP server
    +
    +
    + Function rollback
    @@ -3656,14 +3722,6 @@
    rollback_on_error() in caldav-PUT-functions.php
    This function launches an error
    -
    - Method - RRule -
    -
    -
    RRule::RRule() in RRule.php
    -
    The constructor takes a start date and an RRULE definition. Both of these follow the iCalendar standard.
    -
    Class RRule @@ -3674,10 +3732,11 @@
    Method - RRuleTest + RRule
    -
    RRuleTest::RRuleTest() in test-RRULE.php
    +
    RRule::RRule() in RRule.php
    +
    The constructor takes a start date and an RRULE definition. Both of these follow the iCalendar standard.
    Class @@ -3686,6 +3745,13 @@
    RRuleTest in test-RRULE.php
    +
    + Method + RRuleTest +
    +
    +
    RRuleTest::RRuleTest() in test-RRULE.php
    +
    Method rrule_day_number @@ -4178,6 +4244,13 @@
    Page + tz.php +
    +
    +
    tz.php in tz.php
    +
    +
    + Page test-RRULE-v2.php
    @@ -4852,15 +4925,7 @@ __construct
    -
    pwauthPamDrivers::__construct() in drivers_pwauth_pam.php
    -
    The constructor
    -
    -
    - Method - __construct -
    -
    -
    imapPamDrivers::__construct() in drivers_imap_pam.php
    +
    imapPamDrivers::__construct() in drivers_rimap.php
    The constructor
    @@ -4871,6 +4936,14 @@
    ldapDrivers::__construct() in drivers_ldap.php
    Initializes the LDAP connection
    +
    + Method + __construct +
    +
    +
    pwauthPamDrivers::__construct() in drivers_pwauth_pam.php
    +
    The constructor
    +
    Method __get diff --git a/docs/api/elementindex_awl.html b/docs/api/elementindex_awl.html index c72f22b8..82d23258 100644 --- a/docs/api/elementindex_awl.html +++ b/docs/api/elementindex_awl.html @@ -745,6 +745,7 @@
    RepeatRule::next() in RRule-v2.php
    +
    Return the next date in the repeating series.
    diff --git a/docs/api/elementindex_davical.html b/docs/api/elementindex_davical.html index 4280faed..517168d0 100644 --- a/docs/api/elementindex_davical.html +++ b/docs/api/elementindex_davical.html @@ -119,16 +119,16 @@ __construct
    -
    ldapDrivers::__construct() in drivers_ldap.php
    -
    Initializes the LDAP connection
    +
    imapPamDrivers::__construct() in drivers_rimap.php
    +
    The constructor
    Method __construct
    -
    imapPamDrivers::__construct() in drivers_imap_pam.php
    -
    The constructor
    +
    ldapDrivers::__construct() in drivers_ldap.php
    +
    Initializes the LDAP connection
    Variable @@ -577,6 +577,13 @@
    Function + check_calendar +
    +
    +
    check_calendar() in setup.php
    +
    +
    + Function check_datetime
    @@ -1157,6 +1164,13 @@
    DAVResource::ContainerType() in DAVResource.php
    Return the type of whatever contains this resource, or would if it existed.
    +
    + Page + capabilities.php +
    +
    +
    capabilities.php in capabilities.php
    +
    @@ -1329,6 +1343,13 @@
    Page + drivers_rimap.php +
    +
    +
    drivers_rimap.php in drivers_rimap.php
    +
    +
    + Page drivers_squid_pam.php
    @@ -1499,6 +1520,13 @@
    DAVResource.php in DAVResource.php
    +
    + Constant + DEBUG_EXPAND +
    +
    +
    DEBUG_EXPAND in expand.php
    +
    @@ -1625,6 +1653,21 @@
    DAVResource::Exists() in DAVResource.php
    Checks whether this resource actually exists, in the virtual sense, within the hierarchy
    +
    + Function + expand_timezone_onsets +
    +
    + +
    Expand the instances for a STANDARD or DAYLIGHT component of a VTIMEZONE
    +
    +
    + Page + expand.php +
    +
    +
    expand.php in expand.php
    +
    @@ -2100,6 +2143,13 @@
    DAVResource::GetPropStat() in DAVResource.php
    Construct XML propstat fragment for this resource
    +
    + Page + get.php +
    +
    +
    get.php in get.php
    +
    @@ -2286,7 +2336,7 @@ imapPamDrivers
    -
    imapPamDrivers::imapPamDrivers() in drivers_imap_pam.php
    +
    Constructor.
    @@ -2294,7 +2344,7 @@ imapPamDrivers
    -
    imapPamDrivers in drivers_imap_pam.php
    +
    imapPamDrivers in drivers_rimap.php
    Function @@ -2551,6 +2601,13 @@
    Principal::$locale in Principal.php
    +
    + Page + list.php +
    +
    +
    list.php in list.php
    +
    @@ -3112,6 +3169,14 @@
    ldapDrivers::requestUser() in drivers_ldap.php
    Returns the result of the LDAP query
    +
    + Function + RIMAP_check +
    +
    +
    RIMAP_check() in drivers_rimap.php
    +
    Check the username / password against the IMAP server
    +
    Variable $resourcetypes @@ -3558,6 +3623,13 @@
    CalDAVRequest::$ticket in CalDAVRequest.php
    A DAVTicket object, if there is a ?ticket=id or Ticket: id with this request
    +
    + Page + tz.php +
    +
    +
    tz.php in tz.php
    +
    diff --git a/docs/api/errors.html b/docs/api/errors.html index 41e7c4ce..1162c149 100644 --- a/docs/api/errors.html +++ b/docs/api/errors.html @@ -49,15 +49,19 @@ drivers_imap_pam.php
    drivers_ldap.php
    drivers_pwauth_pam.php
    +drivers_rimap.php
    drivers_squid_pam.php
    +expand.php
    external-fetch.php
    feed.php
    freebusy-functions.php
    freebusy.php
    +get.php
    help.php
    index.php
    interactive-page.php
    iSchedule.php
    +list.php
    log_caldav_action.php
    newfile.php
    other_translated_strings.php
    @@ -75,6 +79,7 @@ test-RRULE.php
    test.php
    tools.php
    +tz.php
    upgrade.php
    vcard.php
    well-known.php
    @@ -83,28 +88,31 @@

    Post-parsing

    Warnings:


    Warning - -duplicate function element "check_for_expansion" in file /home/karora/projects/davical/inc/caldav-REPORT-multiget.php will be ignored. -Use an @ignore tag on the original if you want this case to be documented.
    -Warning - -duplicate function element "edit_grant_row" in file /home/karora/projects/davical/inc/ui/principal-edit.php will be ignored. -Use an @ignore tag on the original if you want this case to be documented.
    -Warning - Class VCard parent vComponent not found
    -Warning - duplicate class element "CalDAVClient" in file /home/karora/projects/davical/inc/caldav-client-v2.php will be ignored. Use an @ignore tag on the original if you want this case to be documented.
    Warning - +duplicate function element "privilege_format_function" in file /home/karora/projects/davical/inc/ui/principal-edit.php will be ignored. +Use an @ignore tag on the original if you want this case to be documented.
    +Warning - +duplicate class element "RRuleTest" in file /home/karora/projects/davical/inc/test-RRULE-v2.php will be ignored. +Use an @ignore tag on the original if you want this case to be documented.
    +Warning - +duplicate class element "imapPamDrivers" in file /home/karora/projects/davical/inc/drivers_imap_pam.php will be ignored. +Use an @ignore tag on the original if you want this case to be documented.
    +Warning - duplicate function element "apply_filter" in file /home/karora/projects/davical/inc/caldav-REPORT-cardquery.php will be ignored. Use an @ignore tag on the original if you want this case to be documented.
    Warning - -duplicate class element "RRuleTest" in file /home/karora/projects/davical/inc/test-RRULE-v2.php will be ignored. +duplicate function element "check_for_expansion" in file /home/karora/projects/davical/inc/caldav-REPORT-multiget.php will be ignored. Use an @ignore tag on the original if you want this case to be documented.
    Warning - @todo on an include element is ignored (line 105, file /home/karora/projects/davical/htdocs/caldav.php)
    Warning - -duplicate function element "privilege_format_function" in file /home/karora/projects/davical/inc/ui/principal-edit.php will be ignored. +duplicate function element "edit_grant_row" in file /home/karora/projects/davical/inc/ui/principal-edit.php will be ignored. Use an @ignore tag on the original if you want this case to be documented.
    +Warning - Class VCard parent vComponent not found
    +Warning - Class AtomFeed parent XMLDocument not found
    Warning - Class DAViCalSession parent Session not found
    Warning - @todo on an include element is ignored (line 105, file /home/karora/projects/davical/htdocs/caldav.php)
    -Warning - Class AtomFeed parent XMLDocument not found

    admin.php

    Warnings:


    @@ -141,6 +149,7 @@ Use an @ignore tag on the original if you want this case to be documented.

    caldav-client-v2.php

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "require_once 'XMLDocument.php'", use another DocBlock to document the source element
    +Warning on line 12 - package davical is already in category Technical, will now replace with category Documentation

    Errors:


    Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 12 - require_once include's DocBlock has @package tag, illegal. ignoring tag "@package awl"
    @@ -149,8 +158,8 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "require_once 'DAVResource.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    caldav-DELTICKET.php

    Warnings:


    @@ -168,8 +177,8 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 11 - Page-level DocBlock precedes "require_once 'AwlQuery.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    caldav-MKTICKET.php

    Warnings:


    @@ -187,8 +196,8 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "include_once 'DAVResource.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - "include" include_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 12 - "include" include_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    caldav-POST.php

    Warnings:


    @@ -203,10 +212,10 @@ Use an @ignore tag on the original if you want this case to be documented.

    caldav-PROPPATCH.php

    Warnings:


    -Warning on line 12 - Page-level DocBlock precedes "require_once 'iCalendar.php'", use another DocBlock to document the source element
    +Warning on line 12 - Page-level DocBlock precedes "require_once 'vCalendar.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    caldav-PUT-default.php

    Warnings:


    @@ -222,7 +231,7 @@ Use an @ignore tag on the original if you want this case to be documented.

    caldav-REPORT-calquery.php

    Warnings:


    -Warning on line 363 - File "/home/karora/projects/davical/inc/caldav-REPORT-calquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 359 - File "/home/karora/projects/davical/inc/caldav-REPORT-calquery.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    caldav-REPORT-cardquery.php

    Warnings:


    @@ -253,15 +262,15 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 12 - Page-level DocBlock precedes "require_once "XMLDocument.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 12 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 12 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    caldav.php

    Warnings:


    Warning on line 22 - Page-level DocBlock precedes "require 'well-known.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 22 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 22 - "include" require's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    +Error on line 22 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    CalDAVRequest.php

    Warnings:


    @@ -285,18 +294,18 @@ Use an @ignore tag on the original if you want this case to be documented.

    DAVResource.php

    Warnings:


    -Warning on line 11 - package davical is already in category Technical, will now replace with category Documentation
    Warning on line 11 - Page-level DocBlock precedes "require_once 'AwlCache.php'", use another DocBlock to document the source element
    +Warning on line 11 - package davical is already in category Technical, will now replace with category Documentation

    Errors:


    -Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage Resource"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    DAVTicket.php

    Warnings:


    Warning on line 11 - Page-level DocBlock precedes "require_once 'AwlQuery.php'", use another DocBlock to document the source element

    Errors:


    -Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage DAVTicket"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    dbexec.php

    Warnings:


    @@ -308,8 +317,8 @@ Use an @ignore tag on the original if you want this case to be documented.
    Warning on line 13 - package davical is already in category Documentation, will now replace with category Technical
    Warning on line 16 - no @package tag was used in a DocBlock for class imapPamDrivers

    Errors:


    -Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"
    Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"

    drivers_ldap.php

    Warnings:


    @@ -326,14 +335,30 @@ Use an @ignore tag on the original if you want this case to be documented.

    Errors:


    Error on line 16 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage pwauth"
    Error on line 16 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    + +

    drivers_rimap.php

    +

    Warnings:


    +Warning on line 13 - package davical is already in category Documentation, will now replace with category Technical
    +Warning on line 13 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
    +Warning on line 16 - no @package tag was used in a DocBlock for class imapPamDrivers
    +

    Errors:


    +Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"

    drivers_squid_pam.php

    Warnings:


    Warning on line 13 - Page-level DocBlock precedes "require_once "auth-functions.php"", use another DocBlock to document the source element
    Warning on line 16 - no @package tag was used in a DocBlock for class squidPamDrivers

    Errors:


    -Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 13 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage ldap"
    +Error on line 13 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    + +

    expand.php

    +

    Warnings:


    +Warning on line 11 - Page-level DocBlock precedes "require_once 'vCalendar.php'", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage tzservice"

    external-fetch.php

    Warnings:


    @@ -354,6 +379,13 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 43 - Unknown tag "@NOTE:" used
    Warning on line 83 - File "/home/karora/projects/davical/htdocs/freebusy.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    + +

    get.php

    +

    Warnings:


    +Warning on line 11 - Page-level DocBlock precedes "require_once 'vCalendar.php'", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage tzservice"

    help.php

    Warnings:


    @@ -373,6 +405,13 @@ Use an @ignore tag on the original if you want this case to be documented.

    Errors:


    Error on line 16 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage iSchedule"
    Error on line 16 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    + +

    list.php

    +

    Warnings:


    +Warning on line 11 - Page-level DocBlock precedes "require_once 'vComponent.php'", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage tzservice"
    +Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    log_caldav_action.php

    Warnings:


    @@ -413,8 +452,8 @@ Use an @ignore tag on the original if you want this case to be documented.

    Warnings:


    Warning on line 10 - Page-level DocBlock precedes "require "./always.php"", use another DocBlock to document the source element

    Errors:


    -Error on line 10 - "include" require's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"
    Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    +Error on line 10 - "include" require's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage caldav"

    pubsub.php

    Warnings:


    @@ -430,7 +469,7 @@ Use an @ignore tag on the original if you want this case to be documented.

    setup.php

    Warnings:


    Warning on line 7 - no @package tag was used in a DocBlock for class CheckResult
    -Warning on line 378 - File "/home/karora/projects/davical/htdocs/setup.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 386 - File "/home/karora/projects/davical/htdocs/setup.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    SqlToArray.php

    Warnings:


    @@ -458,6 +497,13 @@ Use an @ignore tag on the original if you want this case to be documented.

    Errors:


    Error on line 11 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"
    Error on line 11 - "include" require_once's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage DAViCalSession"
    + +

    tz.php

    +

    Warnings:


    +Warning on line 10 - Page-level DocBlock precedes "require "./always.php"", use another DocBlock to document the source element
    +

    Errors:


    +Error on line 10 - "include" require's DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage tzservice"
    +Error on line 10 - DocBlock has multiple @package tags, illegal. ignoring additional tag "@package davical"

    upgrade.php

    Warnings:


    @@ -470,14 +516,14 @@ Use an @ignore tag on the original if you want this case to be documented.

    well-known.php

    Warnings:


    -Warning on line 99 - File "/home/karora/projects/davical/htdocs/well-known.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 103 - File "/home/karora/projects/davical/htdocs/well-known.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    WritableCollection.php

    Warnings:


    Warning on line 3 - no @package tag was used in a DocBlock for class WritableCollection
    -Warning on line 321 - File "/home/karora/projects/davical/inc/WritableCollection.php" has no page-level DocBlock, use @package in the first DocBlock to create one
    +Warning on line 305 - File "/home/karora/projects/davical/inc/WritableCollection.php" has no page-level DocBlock, use @package in the first DocBlock to create one

    - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index e8583bda..1002edda 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> - + DAViCal diff --git a/docs/api/li_davical.html b/docs/api/li_davical.html index 323a21cc..e31ffae5 100644 --- a/docs/api/li_davical.html +++ b/docs/api/li_davical.html @@ -42,6 +42,7 @@
    Functionbuild_site_statistics
    Functioncaldav_get_feed
    Functioncheck_awl_version
    +
    Functioncheck_calendar
    Functioncheck_datetime
    Functioncheck_davical_version
    Functioncheck_for_expansion
    @@ -300,6 +301,7 @@
    FunctiongetStaticLdap
    FunctionIMAP_PAM_check
    FunctionLDAP_check
    +
    FunctionRIMAP_check
    FunctionSQUID_PAM_check
    Functionsync_LDAP
    Functionsync_LDAP_groups
    @@ -307,6 +309,7 @@
     Files
    Filedrivers_imap_pam.php
    Filedrivers_ldap.php
    +
    Filedrivers_rimap.php
    Filedrivers_squid_pam.php
    @@ -409,6 +412,23 @@ + + +
    Sub-packagetzservice
    +
    +
    +
     Functions
    +
    Functionexpand_timezone_onsets
    +
     Files
    +
    Filecapabilities.php
    +
    Fileexpand.php
    +
    Fileget.php
    +
    Filelist.php
    +
    Filetz.php
    +
    +
    + +

    phpDocumentor v 1.4.3

    diff --git a/docs/api/todolist.html b/docs/api/todolist.html index 3dd5f350..aba2cb25 100644 --- a/docs/api/todolist.html +++ b/docs/api/todolist.html @@ -28,7 +28,7 @@
  • Improve this to calculate the days difference and then the clock time diff and work from there.
  • - Documentation generated on Sun, 11 Sep 2011 20:48:12 +1200 by phpDocumentor 1.4.3 + Documentation generated on Tue, 27 Sep 2011 11:30:49 +1300 by phpDocumentor 1.4.3

    \ No newline at end of file diff --git a/po/de.po b/po/de.po index c3b2f9e5..ffcf0e26 100644 --- a/po/de.po +++ b/po/de.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-07-09 18:08+0000\n" "Last-Translator: gurkenpapst \n" "Language-Team: German (http://www.transifex.net/projects/p/davical/team/de/)\n" @@ -772,6 +772,9 @@ msgstr "PHP-PDO-Modul vorhanden" msgid "PHP PostgreSQL available" msgstr "PHP-PostgreSQL vorhanden" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "PHP-iconv-Unterstützung" @@ -1051,6 +1054,9 @@ msgstr "Das Zugriffsticket wird gelöscht." msgid "The addressbook-query report must be run against an addressbook collection" msgstr "addressbook-query darf nur bei einem Adressbuch ausgeführt werden" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Das Anwendungsprogramm versteht diese Anfrage nicht." diff --git a/po/es_AR.po b/po/es_AR.po index cfe4ad21..e9a10564 100644 --- a/po/es_AR.po +++ b/po/es_AR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -751,6 +751,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1027,6 +1030,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/es_MX.po b/po/es_MX.po index 7b67eb1e..7b809439 100644 --- a/po/es_MX.po +++ b/po/es_MX.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-08-02 19:21+0000\n" "Last-Translator: pr3d4t0r \n" "Language-Team: Spanish (Mexican) (http://www.transifex.net/projects/p/davical/team/es_MX/)\n" @@ -768,6 +768,9 @@ msgstr "Módulo PHP PDO disponible" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL disponible" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "Soporte PHP iconv" @@ -1049,6 +1052,9 @@ msgstr "" "El reporte de solicitud-lista-de-direcciones debe ejecutarse con respecto a una colección de lista de " "direcciones." +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "El programa de aplicación no comprendión esa solicitud." diff --git a/po/es_VE.po b/po/es_VE.po index b8c43894..5910d585 100644 --- a/po/es_VE.po +++ b/po/es_VE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-26 13:25+0000\n" "Last-Translator: e1th0r \n" "Language-Team: Spanish (Venezuela) (http://www.transifex.net/projects/p/davical/team/es_VE/)\n" @@ -749,6 +749,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL disponible" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "PHP iconv soportado" @@ -1025,6 +1028,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/et.po b/po/et.po index b7b9bd4e..f69de735 100644 --- a/po/et.po +++ b/po/et.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: Estonian (http://www.transifex.net/projects/p/davical/team/et/)\n" @@ -748,6 +748,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1024,6 +1027,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/fr.po b/po/fr.po index 1e2e80ab..55df911e 100644 --- a/po/fr.po +++ b/po/fr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-04-05 16:53+0000\n" "Last-Translator: tikismoke \n" "Language-Team: French (http://www.transifex.net/projects/p/davical/team/fr/)\n" @@ -763,6 +763,9 @@ msgstr "Module PDO PHP disponible" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL disponible" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "support PHP iconv" @@ -1040,6 +1043,9 @@ msgstr "Le ticket d'accès sera supprimé." msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "L'application ne comprend pas la demande." diff --git a/po/hu.po b/po/hu.po index f7ced691..66794279 100644 --- a/po/hu.po +++ b/po/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -751,6 +751,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1027,6 +1030,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Az alkalmazás nem tudja értelmezni a kérést." diff --git a/po/it.po b/po/it.po index ff565a5d..b414c1e5 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -752,6 +752,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1030,6 +1033,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/ja.po b/po/ja.po index 518e98fa..65470d05 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -752,6 +752,9 @@ msgstr "PHP PDOモジュール利用可能" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL利用可能" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1028,6 +1031,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "アプリケーションはそのリクエストを理解できませんでした。" diff --git a/po/messages.pot b/po/messages.pot index 9187a873..754d0c88 100644 --- a/po/messages.pot +++ b/po/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -754,9 +754,6 @@ msgstr "" msgid "PHP LDAP module available" msgstr "" -msgid "PHP calendar extension available" -msgstr "" - msgid "PHP Magic Quotes GPC off" msgstr "" @@ -769,6 +766,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1056,6 +1056,9 @@ msgid "" "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index c582a827..35ebd952 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-08-15 23:39+0000\n" "Last-Translator: aleksand \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.net/projects/p/davical/team/nb_NO/)\n" @@ -765,6 +765,9 @@ msgstr "PHP PDO modul tilgjengelig" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL tilgjengelig" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "Støtte for PHP iconv" @@ -1041,6 +1044,9 @@ msgstr "Adgangstilgangen vil bli slettet" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "Adressebok-forespørselsrapport må kjøres mot en adressebok-samling" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Programmet forstår ikke forespørselen" diff --git a/po/nl.po b/po/nl.po index 67e2c033..20f268ad 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: Dutch (http://www.transifex.net/projects/p/davical/team/nl/)\n" @@ -755,6 +755,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1033,6 +1036,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Deze applicatie begrijpt dat verzoek niet." diff --git a/po/pl.po b/po/pl.po index 485c84b3..cdd50c41 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: Polish (http://www.transifex.net/projects/p/davical/team/pl/)\n" @@ -752,6 +752,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1028,6 +1031,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Aplikacja nie rozumie tego żądania." diff --git a/po/pt_BR.po b/po/pt_BR.po index 7618e031..766cb33b 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-08-04 14:25+0000\n" "Last-Translator: aagaio \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/davical/team/pt_BR/)\n" @@ -766,6 +766,9 @@ msgstr "Módulo do PHP PDO disponível" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL disponível" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "Suporte a PHP iconv" @@ -1048,6 +1051,9 @@ msgstr "O bilhete de acesso será apagado." msgid "The addressbook-query report must be run against an addressbook collection" msgstr "O relatório de endereços de consulta deve ser executado em uma coleção de endereços" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "O programa da aplicação não entende esta requisição." diff --git a/po/pt_PT.po b/po/pt_PT.po index a4462cac..5ab8673a 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 22:02+0000\n" "Last-Translator: m42 \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.net/projects/p/davical/team/pt_PT/)\n" @@ -767,6 +767,9 @@ msgstr "Módulo PDO do PHP disponível" msgid "PHP PostgreSQL available" msgstr "PHP PostgreSQL disponível" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "Suporte iconv do PHP" @@ -1045,6 +1048,9 @@ msgstr "O ticket de acesso será apagado." msgid "The addressbook-query report must be run against an addressbook collection" msgstr "O relatório addressbook-query tem que ser executado sobre uma colecção de livros de endereços" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "O programa não entende esse pedido." diff --git a/po/ru.po b/po/ru.po index 2c1f5729..9e494174 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -750,6 +750,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1026,6 +1029,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "" diff --git a/po/sv.po b/po/sv.po index 0bd7eb73..7b31d6ee 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: DAViCal\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-09-11 10:15+1200\n" +"POT-Creation-Date: 2011-09-27 11:30+1300\n" "PO-Revision-Date: 2011-03-22 15:19+0000\n" "Last-Translator: fmms \n" "Language-Team: LANGUAGE \n" @@ -751,6 +751,9 @@ msgstr "" msgid "PHP PostgreSQL available" msgstr "" +msgid "PHP calendar extension available" +msgstr "" + msgid "PHP iconv support" msgstr "" @@ -1027,6 +1030,9 @@ msgstr "" msgid "The addressbook-query report must be run against an addressbook collection" msgstr "" +msgid "The application failed to understand that request." +msgstr "" + msgid "The application program does not understand that request." msgstr "Användarprogrammet förstår inte denna begäran." diff --git a/testing/run_regressions.sh b/testing/run_regressions.sh index 373585d6..c5b48de6 100755 --- a/testing/run_regressions.sh +++ b/testing/run_regressions.sh @@ -121,7 +121,7 @@ initialise_regression() { check_result "${TEST}" fi - TEST="Really Upgrade Database" + TEST="Really-Upgrade-Database" ../dba/update-davical-database --dbname=${DBNAME} --appuser davical_app --owner davical_dba >"${RESULTS}/${TEST}" 2>&1 check_result "${TEST}" From e64f92ff86dee3bb834f744ef477740bc488c5cf Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Wed, 28 Sep 2011 05:21:31 +0800 Subject: [PATCH 24/31] Fix handling of BYMONTHDAY=-N in repeat rules. It seems PHP's date::setDate function doesn't do what we want when you hand it a negative integer so we need to override a little more of it's behaviour. We have to make sure that date::modify is not called with a days greater than the month we might land in when we add a number of months to it. --- inc/RRule-v2.php | 33 ++++++++++++++++++- testing/test-RRULE-v2.php | 3 +- .../regression-suite/0831-Spec-RRULE-1.result | 32 +++++++++++++++++- 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/inc/RRule-v2.php b/inc/RRule-v2.php index 361b2d81..77b55209 100644 --- a/inc/RRule-v2.php +++ b/inc/RRule-v2.php @@ -343,6 +343,9 @@ class RepeatRuleDateTime extends DateTime { // printf( "Modify '%s' by: >>%s<<\n", $this->__toString(), $interval ); // print_r($this); if ( !isset($interval) || $interval == '' ) $interval = '1 day'; + if ( parent::format('d') > 28 && strstr($interval,'month') !== false ) { + $this->setDate(null,null,28); + } parent::modify($interval); return $this->__toString(); } @@ -431,10 +434,36 @@ class RepeatRuleDateTime extends DateTime { } + /** + * Returns a 1 if this year is a leap year, otherwise a 0 + * @param int $year The year we are quizzical about. + * @return 1 if this is a leap year, 0 otherwise + */ + public static function hasLeapDay($year) { + if ( ($year % 4) == 0 && (($year % 100) != 0 || ($year % 400) == 0) ) return 1; + return 0; + } + + /** + * Returns the number of days in a year/month pair + * @param int $year + * @param int $month + * @return int the number of days in the month + */ + public static function daysInMonth( $year, $month ) { + if ($month == 4 || $month == 6 || $month == 9 || $month == 11) return 30; + else if ($month != 2) return 31; + return 28 + RepeatRuleDateTime::hasLeapDay($year); + } + + function setDate( $year=null, $month=null, $day=null ) { if ( !isset($year) ) $year = parent::format('Y'); if ( !isset($month) ) $month = parent::format('m'); if ( !isset($day) ) $day = parent::format('d'); + if ( $day < 0 ) { + $day += RepeatRuleDateTime::daysInMonth($year, $month) + 1; + } parent::setDate( $year , $month , $day ); return $this; } @@ -749,7 +778,9 @@ class RepeatRule { $this->current_set = array(); foreach( $instances AS $k => $instance ) { foreach( $this->bymonthday AS $k => $monthday ) { - $this->current_set[] = $this->date_mask( clone($instance), null, null, $monthday, null, null, null); + $expanded = $this->date_mask( clone($instance), null, null, $monthday, null, null, null); + if ( DEBUG_RRULE ) printf( "Expanded BYMONTHDAY $monthday into date %s from %s\n", $expanded->format('c'), $instance->format('c') ); + $this->current_set[] = $expanded; } } } diff --git a/testing/test-RRULE-v2.php b/testing/test-RRULE-v2.php index 4d9edcb9..c9c68d57 100755 --- a/testing/test-RRULE-v2.php +++ b/testing/test-RRULE-v2.php @@ -80,7 +80,8 @@ $tests = array( , new RRuleTest( "The last working day of each month", "20061107T113000", "RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1;COUNT=30" ) , new RRuleTest( "Every working day", "20081020T103000", "RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;COUNT=30" ) , new RRuleTest( "Every working day", "20081020T110000", "RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;COUNT=30" ) -//**SQL is wrong , new RRuleTest( "1st Tuesday, 2nd Wednesday, 3rd Thursday & 4th Friday, every March, June, September, October and December", "20081001T133000", "RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU,2WE,3TH,4FR;BYMONTH=3,6,9,10,12" ) + , new RRuleTest( "The last day of each month", "20110831", "RRULE:FREQ=MONTHLY;BYMONTHDAY=-1" ) + , new RRuleTest( "1st Tuesday, 2nd Wednesday, 3rd Thursday & 4th Friday, every March, June, September, October and December (SQL is wrong)", "20081001T133000", "RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU,2WE,3TH,4FR;BYMONTH=3,6,9,10,12" ) , new RRuleTest( "Every tuesday and friday", "20081017T084500", "RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,FR;COUNT=30" ) , new RRuleTest( "Every tuesday and friday", "20081017T084500", "RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=TU,FR;COUNT=30" ) , new RRuleTest( "Every tuesday and friday", "20081017T084500", "RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=TU,FR;COUNT=30" ) diff --git a/testing/tests/regression-suite/0831-Spec-RRULE-1.result b/testing/tests/regression-suite/0831-Spec-RRULE-1.result index 8d9952d3..7e05bade 100644 --- a/testing/tests/regression-suite/0831-Spec-RRULE-1.result +++ b/testing/tests/regression-suite/0831-Spec-RRULE-1.result @@ -2,7 +2,7 @@ HTTP/1.1 200 OK Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -Content-Length: 5323 +Content-Length: 7224 Content-Type: text/plain #!/usr/bin/php @@ -51,6 +51,36 @@ PHP & SQL results are identical (-: 20081020T110000 - RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;COUNT=30 Every working day PHP & SQL results are identical (-: +=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +20110831 - RRULE:FREQ=MONTHLY;BYMONTHDAY=-1 +The last day of each month +PHP & SQL results are identical (-: +=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +20081001T133000 - RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU,2WE,3TH,4FR;BYMONTH=3,6,9,10,12 +1st Tuesday, 2nd Wednesday, 3rd Thursday & 4th Friday, every March, June, September, October and December (SQL is wrong) +PHP & SQL results differ :-( +PHP Result: + + 2008-10-07 13:30:00 2008-10-08 13:30:00 2008-10-16 13:30:00 2008-10-24 13:30:00 + 2008-12-02 13:30:00 2008-12-10 13:30:00 2008-12-18 13:30:00 2008-12-26 13:30:00 + 2009-03-03 13:30:00 2009-03-11 13:30:00 2009-03-19 13:30:00 2009-03-27 13:30:00 + 2009-06-02 13:30:00 2009-06-10 13:30:00 2009-06-18 13:30:00 2009-06-26 13:30:00 + 2009-09-01 13:30:00 2009-09-09 13:30:00 2009-09-17 13:30:00 2009-09-25 13:30:00 + 2009-10-06 13:30:00 2009-10-14 13:30:00 2009-10-15 13:30:00 2009-10-23 13:30:00 + 2009-12-01 13:30:00 2009-12-09 13:30:00 2009-12-17 13:30:00 2009-12-25 13:30:00 + 2010-03-02 13:30:00 2010-03-10 13:30:00 + +SQL Result: + + 2008-10-07 13:30:00 2008-10-08 13:30:00 2008-10-16 13:30:00 2008-10-24 13:30:00 + 2008-11-04 13:30:00 2008-11-12 13:30:00 2008-11-20 13:30:00 2008-11-28 13:30:00 + 2008-12-02 13:30:00 2008-12-10 13:30:00 2008-12-18 13:30:00 2008-12-26 13:30:00 + 2009-01-06 13:30:00 2009-01-14 13:30:00 2009-01-15 13:30:00 2009-01-23 13:30:00 + 2009-02-03 13:30:00 2009-02-11 13:30:00 2009-02-19 13:30:00 2009-02-27 13:30:00 + 2009-03-03 13:30:00 2009-03-11 13:30:00 2009-03-19 13:30:00 2009-03-27 13:30:00 + 2009-04-07 13:30:00 2009-04-08 13:30:00 2009-04-16 13:30:00 2009-04-24 13:30:00 + 2009-05-05 13:30:00 2009-05-13 13:30:00 + =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= 20081017T084500 - RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,FR;COUNT=30 Every tuesday and friday From 0feb4e23d55459644bd0016b00ed3cd85c95ba53 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Wed, 28 Sep 2011 13:35:29 +0800 Subject: [PATCH 25/31] Fix bug handling COUNT= with BYDAY=multiple and FREQ=WEEKLY --- inc/RRule-v2.php | 5 ++++- testing/test-RRULE-v2.php | 2 ++ .../tests/regression-suite/0831-Spec-RRULE-1.result | 10 +++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/inc/RRule-v2.php b/inc/RRule-v2.php index 77b55209..eb0959ab 100644 --- a/inc/RRule-v2.php +++ b/inc/RRule-v2.php @@ -721,7 +721,10 @@ class RepeatRule { $position++; $this->instances[$position] = $instance; if ( DEBUG_RRULE ) printf( "Added date %s into position %d in current set\n", $instance->format('c'), $position ); - if ( isset($this->count) && ($position + 1) >= $this->count ) $this->finished = true; + if ( isset($this->count) && ($position + 1) >= $this->count ) { + $this->finished = true; + return; + } } } } diff --git a/testing/test-RRULE-v2.php b/testing/test-RRULE-v2.php index c9c68d57..b0a6e1b8 100755 --- a/testing/test-RRULE-v2.php +++ b/testing/test-RRULE-v2.php @@ -89,6 +89,8 @@ $tests = array( , new RRuleTest( "Time zone 2", "19700927T020000", "FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=9" ) , new RRuleTest( "Time zone 3", "19810329T030000", "FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU" ) , new RRuleTest( "Time zone 4", "20000404T010000", "FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;COUNT=15" ) + , new RRuleTest( "Six Working Days", "20110905", "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=6" ) + , new RRuleTest( "Six Working Days", "20110905", "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=6" ) ); foreach( $tests AS $k => $test ) { diff --git a/testing/tests/regression-suite/0831-Spec-RRULE-1.result b/testing/tests/regression-suite/0831-Spec-RRULE-1.result index 7e05bade..a046826e 100644 --- a/testing/tests/regression-suite/0831-Spec-RRULE-1.result +++ b/testing/tests/regression-suite/0831-Spec-RRULE-1.result @@ -2,7 +2,7 @@ HTTP/1.1 200 OK Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -Content-Length: 7224 +Content-Length: 7623 Content-Type: text/plain #!/usr/bin/php @@ -131,3 +131,11 @@ PHP & SQL results are identical (-: 20000404T010000 - FREQ=YEARLY;BYDAY=1SU;BYMONTH=4;COUNT=15 Time zone 4 PHP & SQL results are identical (-: +=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +20110905 - FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=6 +Six Working Days +PHP & SQL results are identical (-: +=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= +20110905 - FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;COUNT=6 +Six Working Days +PHP & SQL results are identical (-: From c41f4071e425ffd4c7e4c3701d9cf0b7a92c3225 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 30 Sep 2011 11:56:35 +0200 Subject: [PATCH 26/31] Get rid of unsightly error due to removal of time_zone table. --- dba/appuser_permissions.txt | 3 --- testing/tests/regression-suite/Create-Database.result | 2 -- testing/tests/regression-suite/Really-Upgrade-Database.result | 2 -- testing/tests/regression-suite/Upgrade-Database.result | 2 -- 4 files changed, 9 deletions(-) diff --git a/dba/appuser_permissions.txt b/dba/appuser_permissions.txt index f87c83fb..ea03c51b 100644 --- a/dba/appuser_permissions.txt +++ b/dba/appuser_permissions.txt @@ -59,9 +59,6 @@ GRANT SELECT,UPDATE ON sync_tokens_sync_token_seq ON timezones_our_tzno_seq -GRANT SELECT,INSERT - ON time_zone - GRANT SELECT ON supported_locales ON awl_db_revision diff --git a/testing/tests/regression-suite/Create-Database.result b/testing/tests/regression-suite/Create-Database.result index 8586a791..0852a23a 100644 --- a/testing/tests/regression-suite/Create-Database.result +++ b/testing/tests/regression-suite/Create-Database.result @@ -3,8 +3,6 @@ Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 400, line 63. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 410, line 63. RRULE functions updated. Database permissions updated. NOTE diff --git a/testing/tests/regression-suite/Really-Upgrade-Database.result b/testing/tests/regression-suite/Really-Upgrade-Database.result index a8659ccc..3ff110ca 100644 --- a/testing/tests/regression-suite/Really-Upgrade-Database.result +++ b/testing/tests/regression-suite/Really-Upgrade-Database.result @@ -3,7 +3,5 @@ No patches were applied. Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 400, line 63. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 410, line 63. RRULE functions updated. Database permissions updated. diff --git a/testing/tests/regression-suite/Upgrade-Database.result b/testing/tests/regression-suite/Upgrade-Database.result index 4a6b8e41..a34c672b 100644 --- a/testing/tests/regression-suite/Upgrade-Database.result +++ b/testing/tests/regression-suite/Upgrade-Database.result @@ -1,7 +1,5 @@ Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 400, line 63. -DBD::Pg::db do failed: ERROR: relation "time_zone" does not exist at ../dba/update-davical-database line 410, line 63. RRULE functions updated. Database permissions updated. From c4f8ec2b15f7c99a196052264a503da5a231d560 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Fri, 30 Sep 2011 15:16:08 +0200 Subject: [PATCH 27/31] Fix the way default privileges are set for the SQL. --- inc/Principal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/Principal.php b/inc/Principal.php index fa78aeee..e46bee7e 100644 --- a/inc/Principal.php +++ b/inc/Principal.php @@ -497,7 +497,7 @@ class Principal { if ( !isset($field_values->{'type_id'}) && $inserting ) $field_values->{'type_id'} = 1; // Default to 'person' if ( !isset($field_values->{'default_privileges'}) && $inserting ) - $field_values->{'default_privileges'} = decbin(privilege_to_bits($c->default_privileges)); + $field_values->{'default_privileges'} = sprintf('%024s',decbin(privilege_to_bits($c->default_privileges))); $sql = ''; From 31ed1a41881340911e648aea2cc6a3c71fec88b5 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 3 Oct 2011 13:46:06 +0200 Subject: [PATCH 28/31] Correctly create the addressbook collection as an addressbook. --- inc/auth-functions.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/inc/auth-functions.php b/inc/auth-functions.php index 57f23fb4..9d8a40ff 100644 --- a/inc/auth-functions.php +++ b/inc/auth-functions.php @@ -74,8 +74,8 @@ function CreateHomeCollections( $username ) { $principal = new Principal('username',$username); - $sql = 'INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, dav_displayname, is_calendar, created, modified, resourcetypes) '; - $sql .= 'VALUES( :user_no, :parent_container, :collection_path, :dav_etag, :displayname, true, current_timestamp, current_timestamp, :resourcetypes );'; + $sql = 'INSERT INTO collection (user_no, parent_container, dav_name, dav_etag, dav_displayname, is_calendar, is_addressbook, created, modified, resourcetypes) '; + $sql .= 'VALUES( :user_no, :parent_container, :collection_path, :dav_etag, :displayname, :is_calendar, :is_addressbook, current_timestamp, current_timestamp, :resourcetypes );'; if ( !empty($c->home_calendar_name) ) { $params = array( ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/' ); $qry = new AwlQuery( 'SELECT 1 FROM collection WHERE dav_name = :collection_path', $params ); @@ -93,7 +93,9 @@ function CreateHomeCollections( $username ) { ':parent_container' => $principal->dav_name(), ':collection_path' => $principal->dav_name().$c->home_calendar_name.'/', ':dav_etag' => '-1', - ':displayname' => $principal->fullname, + ':is_calendar' => true, + ':is_addressbook' => false, + ':displayname' => $principal->fullname . " calendar", ':resourcetypes' => '' ); $qry = new AwlQuery( $sql, $params ); @@ -120,6 +122,10 @@ function CreateHomeCollections( $username ) { } else { $params[':collection_path'] = $principal->dav_name().$c->home_addressbook_name.'/'; + $params[':displayname'] = $principal->fullname . " addressbook"; + $params[':resourcetypes'] = ''; + $params[':is_calendar'] = false; + $params[':is_addressbook'] = true; $qry = new AwlQuery( $sql, $params ); if ( $qry->Exec() ) { $c->messages[] = i18n("Home addressbook added."); From 323e6a3011f63fc666ef80efb889f298c3b005c9 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 3 Oct 2011 16:29:11 +0200 Subject: [PATCH 29/31] The final revision of the sync-collection report requires the token to be a URI. We'll use a 'data' URI (like CalendarServer does) to jump through this arbitrary hoop. --- inc/caldav-REPORT-sync-collection.php | 6 +++--- testing/tests/binding/1036-REPORT-sync-initial-bound.result | 6 +++--- testing/tests/carddav/2010-REPORT-sync-initial.result | 6 +++--- testing/tests/carddav/2039-REPORT-sync-changed.result | 6 +++--- .../tests/regression-suite/0099-REPORT-sync-initial.result | 6 +++--- .../tests/regression-suite/0598-REPORT-sync-initial.result | 6 +++--- .../tests/regression-suite/0599-REPORT-sync-changed.result | 6 +++--- .../tests/regression-suite/1100-REPORT-sync-changed.result | 6 +++--- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/inc/caldav-REPORT-sync-collection.php b/inc/caldav-REPORT-sync-collection.php index be6fbeb0..50da1d60 100644 --- a/inc/caldav-REPORT-sync-collection.php +++ b/inc/caldav-REPORT-sync-collection.php @@ -17,7 +17,7 @@ $responses = array(); $sync_tokens = $xmltree->GetPath('/DAV::sync-collection/DAV::sync-token'); $sync_token = $sync_tokens[0]->GetContent(); if ( !isset($sync_token) ) $sync_token = 0; -$sync_token = intval($sync_token); +$sync_token = intval(str_ireplace('data:,', '', $sync_token )); dbg_error_log( 'sync', " sync-token: %s", $sync_token ); @@ -59,7 +59,7 @@ $new_token = $row->new_sync_token; if ( $sync_token == $new_token ) { // No change, so we just re-send the old token. - $responses[] = new XMLElement( 'sync-token', $new_token ); + $responses[] = new XMLElement( 'sync-token', 'data:,'.$new_token ); } else { if ( $sync_token == 0 ) { @@ -142,7 +142,7 @@ EOSQL; $last_dav_name = $object->dav_name; } } - $responses[] = new XMLElement( 'sync-token', $new_token ); + $responses[] = new XMLElement( 'sync-token', 'data:,'.$new_token ); } else { $request->DoResponse( 500, translate("Database error") ); diff --git a/testing/tests/binding/1036-REPORT-sync-initial-bound.result b/testing/tests/binding/1036-REPORT-sync-initial-bound.result index 8d1ad028..84fa0969 100644 --- a/testing/tests/binding/1036-REPORT-sync-initial-bound.result +++ b/testing/tests/binding/1036-REPORT-sync-initial-bound.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "53ade6e4324c9f7e2060a4e760bda6f5" -Content-Length: 2286 +ETag: "f7758fc9ba3182e47aba690683524e55" +Content-Length: 2292 Content-Type: text/xml; charset="utf-8" @@ -89,5 +89,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 5 + data:,5 diff --git a/testing/tests/carddav/2010-REPORT-sync-initial.result b/testing/tests/carddav/2010-REPORT-sync-initial.result index dfc48083..cef5dd00 100644 --- a/testing/tests/carddav/2010-REPORT-sync-initial.result +++ b/testing/tests/carddav/2010-REPORT-sync-initial.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "c07ace186b168e6268fce37c17ae7896" -Content-Length: 942 +ETag: "3446b8401735be64ec24b3e1af5362db" +Content-Length: 948 Content-Type: text/xml; charset="utf-8" @@ -38,5 +38,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 6 + data:,6 diff --git a/testing/tests/carddav/2039-REPORT-sync-changed.result b/testing/tests/carddav/2039-REPORT-sync-changed.result index dd3bd372..af80f2b5 100644 --- a/testing/tests/carddav/2039-REPORT-sync-changed.result +++ b/testing/tests/carddav/2039-REPORT-sync-changed.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "246e590e6b688fd0a7b2397368de6b52" -Content-Length: 1788 +ETag: "f0c7bfe2540087faa968b4a4321f8953" +Content-Length: 1794 Content-Type: text/xml; charset="utf-8" @@ -71,5 +71,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 7 + data:,7 diff --git a/testing/tests/regression-suite/0099-REPORT-sync-initial.result b/testing/tests/regression-suite/0099-REPORT-sync-initial.result index 107d9e51..2fa7b865 100644 --- a/testing/tests/regression-suite/0099-REPORT-sync-initial.result +++ b/testing/tests/regression-suite/0099-REPORT-sync-initial.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "68077b6249044e2937b6d0119c0eb656" -Content-Length: 354 +ETag: "428b3b0b0de29ffd0f827a6a9d36ab26" +Content-Length: 360 Content-Type: text/xml; charset="utf-8" @@ -17,5 +17,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 1 + data:,1 diff --git a/testing/tests/regression-suite/0598-REPORT-sync-initial.result b/testing/tests/regression-suite/0598-REPORT-sync-initial.result index 4740a731..4da26c6d 100644 --- a/testing/tests/regression-suite/0598-REPORT-sync-initial.result +++ b/testing/tests/regression-suite/0598-REPORT-sync-initial.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "745883b4e0a01c261f2ae80105258a14" -Content-Length: 4024 +ETag: "4455c8df8e5a0572ba52dccb00843cfe" +Content-Length: 4030 Content-Type: text/xml; charset="utf-8" @@ -152,5 +152,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 2 + data:,2 diff --git a/testing/tests/regression-suite/0599-REPORT-sync-changed.result b/testing/tests/regression-suite/0599-REPORT-sync-changed.result index 654d0f42..874767f9 100644 --- a/testing/tests/regression-suite/0599-REPORT-sync-changed.result +++ b/testing/tests/regression-suite/0599-REPORT-sync-changed.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "41c9017eda1f4a021c881f217b97407a" -Content-Length: 3780 +ETag: "a4ec15e128c8e06e81c57af754448f81" +Content-Length: 3786 Content-Type: text/xml; charset="utf-8" @@ -143,5 +143,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 3 + data:,3 diff --git a/testing/tests/regression-suite/1100-REPORT-sync-changed.result b/testing/tests/regression-suite/1100-REPORT-sync-changed.result index 3e559563..ff223a4c 100644 --- a/testing/tests/regression-suite/1100-REPORT-sync-changed.result +++ b/testing/tests/regression-suite/1100-REPORT-sync-changed.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "f1d7fb1befbea4830cd1afc134974fc4" -Content-Length: 5873 +ETag: "40e69ecd1e31ae458e1fa4505c1ee585" +Content-Length: 5879 Content-Type: text/xml; charset="utf-8" @@ -192,5 +192,5 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 200 OK - 4 + data:,4 From 8e184490962163ba46b51f5b306f842ee5c71b58 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 3 Oct 2011 17:57:28 +0200 Subject: [PATCH 30/31] Updated MKCOL/MKCALENDAR to support setting a supported-calendar-component-set --- inc/DAVResource.php | 16 +- inc/caldav-MKCOL.php | 7 +- .../0557-iPhone-MKCALENDAR.result | 25 +++ .../0557-iPhone-MKCALENDAR.test | 38 ++++ .../0558-iPhone-PROPFIND.result | 180 ++++++++++++++++++ .../0558-iPhone-PROPFIND.test | 27 +++ .../0602-Soho-PROPFIND.result | 26 ++- .../0603-Soho-PROPFIND.result | 26 ++- .../0902-PUT-collection.result | 2 +- .../tests/regression-suite/0924-MOVE.result | 4 +- 10 files changed, 341 insertions(+), 10 deletions(-) create mode 100644 testing/tests/regression-suite/0557-iPhone-MKCALENDAR.result create mode 100644 testing/tests/regression-suite/0557-iPhone-MKCALENDAR.test create mode 100644 testing/tests/regression-suite/0558-iPhone-PROPFIND.result create mode 100644 testing/tests/regression-suite/0558-iPhone-PROPFIND.test diff --git a/inc/DAVResource.php b/inc/DAVResource.php index 1847585d..93e5cc8e 100644 --- a/inc/DAVResource.php +++ b/inc/DAVResource.php @@ -1590,8 +1590,20 @@ EOQRY; case 'urn:ietf:params:xml:ns:caldav:supported-calendar-component-set': if ( ! $this->_is_collection ) return false; - if ( $this->IsCalendar() ) - $set_of_components = array( 'VEVENT', 'VTODO', 'VJOURNAL', 'VTIMEZONE', 'VFREEBUSY' ); + if ( $this->IsCalendar() ) { + if ( !isset($this->dead_properties) ) $this->FetchDeadProperties(); + if ( isset($this->dead_properties[$tag]) ) { + $set_of_components = explode('"', $this->dead_properties[$tag]); + foreach( $set_of_components AS $k => $v ) { + if ( !preg_match('{(VEVENT|VTODO|VJOURNAL|VTIMEZONE|VFREEBUSY)}', $v) ) { + unset( $set_of_components[$k] ); + } + } + } + else { + $set_of_components = array( 'VEVENT', 'VTODO', 'VJOURNAL', 'VTIMEZONE', 'VFREEBUSY' ); + } + } else if ( $this->IsSchedulingCollection() ) $set_of_components = array( 'VEVENT', 'VTODO', 'VFREEBUSY' ); else return false; diff --git a/inc/caldav-MKCOL.php b/inc/caldav-MKCOL.php index a3f06ec9..3ae1dc48 100644 --- a/inc/caldav-MKCOL.php +++ b/inc/caldav-MKCOL.php @@ -104,7 +104,12 @@ if ( isset($request->xml_tags) ) { $success[$tag] = 1; break; - case 'urn:ietf:params:xml:ns:caldav:supported-calendar-component-set': /** Ignored, since we will support all component types */ + case 'urn:ietf:params:xml:ns:caldav:supported-calendar-component-set': + /** We allow this to be written as a dead property */ + $dav_properties[$tag] = $content; + $success[$tag] = 1; + break; + case 'urn:ietf:params:xml:ns:caldav:supported-calendar-data': /** Ignored, since we will support iCalendar 2.0 */ case 'urn:ietf:params:xml:ns:caldav:calendar-data': /** Ignored, since we will support iCalendar 2.0 */ case 'urn:ietf:params:xml:ns:caldav:max-resource-size': /** Ignored, since we will support arbitrary size */ diff --git a/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.result b/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.result new file mode 100644 index 00000000..f74faf47 --- /dev/null +++ b/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.result @@ -0,0 +1,25 @@ +HTTP/1.1 201 Created +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule +Cache-Control: no-cache +Content-Length: 0 +Content-Type: text/plain; charset="utf-8" + + + dav_displayname: >Untitled< + is_calendar: >1< + parent_container: >/user1/< +public_events_onl: >0< + user_no: >10< + + changed_by: >10< + property_name: >http://apple.com/ns/ical/:calendar-color< + property_value: >#391B71A0< + + changed_by: >10< + property_name: >urn:ietf:params:xml:ns:caldav:supported-calendar-component-set< + property_value: > + +< + diff --git a/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.test b/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.test new file mode 100644 index 00000000..1e93120c --- /dev/null +++ b/testing/tests/regression-suite/0557-iPhone-MKCALENDAR.test @@ -0,0 +1,38 @@ +# +# MKCALENDAR test for iCal +# +TYPE=MKCALENDAR +URL=http://mycaldav/caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/ +HEADER=Content-Type: text/xml +HEAD + + +BEGINDATA + + + + + Untitled + #391B71A0 + + + + + + +ENDDATA + + +QUERY +SELECT user_no, parent_container, dav_displayname, + is_calendar, public_events_only +FROM collection +WHERE dav_name = '/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/'; +ENDQUERY + +QUERY +SELECT property_name, property_value, changed_by +FROM property +WHERE dav_name = '/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/'; +ENDQUERY + diff --git a/testing/tests/regression-suite/0558-iPhone-PROPFIND.result b/testing/tests/regression-suite/0558-iPhone-PROPFIND.result new file mode 100644 index 00000000..bd292414 --- /dev/null +++ b/testing/tests/regression-suite/0558-iPhone-PROPFIND.result @@ -0,0 +1,180 @@ +HTTP/1.1 207 Multi-Status +Date: Dow, 01 Jan 2000 00:00:00 GMT +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule +ETag: "d98f282a5121894cde0b43b6ecf143df" +Content-Length: 4285 +Content-Type: text/xml; charset="utf-8" + + + + + /caldav.php/user1/ + + + User 1 + + + + + + HTTP/1.1 200 OK + + + + + + HTTP/1.1 404 Not Found + + + + /caldav.php/user1/home/ + + + user1 home + + + + + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/created/ + + + created + + + + + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/.in/ + + + User 1 Inbox + + + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/.out/ + + + User 1 Outbox + + + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/ + + + iCal Calendar + + + + + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/ + + + Untitled + + + + + + + + + HTTP/1.1 200 OK + + + + /caldav.php/user1/calendar-proxy-read/ + + + /user1/calendar-proxy-read/ + + + + + + HTTP/1.1 200 OK + + + + + + HTTP/1.1 404 Not Found + + + + /caldav.php/user1/calendar-proxy-write/ + + + /user1/calendar-proxy-write/ + + + + + + HTTP/1.1 200 OK + + + + + + HTTP/1.1 404 Not Found + + + diff --git a/testing/tests/regression-suite/0558-iPhone-PROPFIND.test b/testing/tests/regression-suite/0558-iPhone-PROPFIND.test new file mode 100644 index 00000000..13cc7c8c --- /dev/null +++ b/testing/tests/regression-suite/0558-iPhone-PROPFIND.test @@ -0,0 +1,27 @@ +# +# Testing with a process similar to iPhone 3.1 +# +TYPE=PROPFIND +URL=http://mycaldav/caldav.php/user1/ +HEAD + +AUTH=user1:user1 + +HEADER=User-Agent: DAVKit/4.0 (728.3); iCalendar/1 (34); iPhone/3.0 7A341 +HEADER=Content-Type: text/xml +HEADER=Depth: 1 + +# +# This query from the iPhone goes to the calendar-home-set and checks +# what is available under that collection. +# +BEGINDATA + + + + + + + + +ENDDATA diff --git a/testing/tests/regression-suite/0602-Soho-PROPFIND.result b/testing/tests/regression-suite/0602-Soho-PROPFIND.result index 8b6ec173..0af03256 100644 --- a/testing/tests/regression-suite/0602-Soho-PROPFIND.result +++ b/testing/tests/regression-suite/0602-Soho-PROPFIND.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "44487da270d6e0c4f71f784688a0896d" -Content-Length: 15362 +ETag: "12c556718c27de34471b0b9f333610fc" +Content-Length: 15922 Content-Type: text/xml; charset="utf-8" @@ -558,6 +558,28 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 404 Not Found + + /caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/ + + + + /caldav.php/user1/ + + + mailto:user1@example.net + /caldav.php/user1/ + + + HTTP/1.1 200 OK + + + + + + + HTTP/1.1 404 Not Found + + /caldav.php/user1/calendar-proxy-read/ diff --git a/testing/tests/regression-suite/0603-Soho-PROPFIND.result b/testing/tests/regression-suite/0603-Soho-PROPFIND.result index e4855a55..99d79f02 100644 --- a/testing/tests/regression-suite/0603-Soho-PROPFIND.result +++ b/testing/tests/regression-suite/0603-Soho-PROPFIND.result @@ -2,8 +2,8 @@ HTTP/1.1 207 Multi-Status Date: Dow, 01 Jan 2000 00:00:00 GMT DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule DAV: extended-mkcol, calendar-proxy, bind, addressbook, calendar-auto-schedule -ETag: "ea92b512c27205b703cb6f52043bb6d3" -Content-Length: 4476 +ETag: "2c82262a1c8f2caf0dccf46188970a65" +Content-Length: 5036 Content-Type: text/xml; charset="utf-8" @@ -140,6 +140,28 @@ Content-Type: text/xml; charset="utf-8" HTTP/1.1 404 Not Found + + /caldav.php/user1/VTODO-EFD9-4F0F-9BDC-5335E04D47E0/ + + + + /caldav.php/user1/ + + + mailto:user1@example.net + /caldav.php/user1/ + + + HTTP/1.1 200 OK + + + + + + + HTTP/1.1 404 Not Found + + /caldav.php/user1/calendar-proxy-read/ diff --git a/testing/tests/regression-suite/0902-PUT-collection.result b/testing/tests/regression-suite/0902-PUT-collection.result index 76c248bf..2518ea37 100644 --- a/testing/tests/regression-suite/0902-PUT-collection.result +++ b/testing/tests/regression-suite/0902-PUT-collection.result @@ -16,7 +16,7 @@ Content-Type: text/plain; charset="utf-8" attendees: >40< - collection_id: >1563< + collection_id: >1564< dav_displayname: >anotherone< dav_etag: >f9a8ee6b41d9b02aa5176e6da349121a< dav_name: >/user1/anotherone/< diff --git a/testing/tests/regression-suite/0924-MOVE.result b/testing/tests/regression-suite/0924-MOVE.result index 861b0c66..d95425a3 100644 --- a/testing/tests/regression-suite/0924-MOVE.result +++ b/testing/tests/regression-suite/0924-MOVE.result @@ -6,9 +6,9 @@ Content-Length: 0 Content-Type: text/plain; charset="utf-8" - cd_collection: >1563< + cd_collection: >1564< cd_user_no: >10< - ci_collection: >1563< + ci_collection: >1564< ci_user_no: >10< data_name: >/user1/anotherone/DAYPARTY-77C6-4FB7-BDD3-6882E2F1BE74.ics< item_name: >/user1/anotherone/DAYPARTY-77C6-4FB7-BDD3-6882E2F1BE74.ics< From bcb1710d3c9d1832429bd30ab99a09c4e5f58463 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Tue, 4 Oct 2011 16:17:19 +0200 Subject: [PATCH 31/31] Add 'helpful' support for content-encoding on PUT for Helge :-) --- inc/CalDAVRequest.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/inc/CalDAVRequest.php b/inc/CalDAVRequest.php index 254a0995..8b0dec7b 100644 --- a/inc/CalDAVRequest.php +++ b/inc/CalDAVRequest.php @@ -139,6 +139,11 @@ class CalDAVRequest } $this->user_agent = ((isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "Probably Mulberry")); + if ( isset($_SERVER['HTTP_CONTENT_ENCODING']) ) { + @dbg_error_log('caldav', 'Content-Encoding: %s', $_SERVER['HTTP_CONTENT_ENCODING']); + $this->PreconditionFailed(402, 'content-encoding', 'This server does not presently support encoded content.'); + } + /** * A variety of requests may set the "Depth" header to control recursion */