[CalendarServer-changes] [8096] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 14 09:48:33 PDT 2011


Revision: 8096
          http://trac.macosforge.org/projects/calendarserver/changeset/8096
Author:   cdaboo at apple.com
Date:     2011-09-14 09:48:33 -0700 (Wed, 14 Sep 2011)
Log Message:
-----------
Add back the MaxAllowedInstances config option from previous versions and also hook that in max-instances
property. Also fix some documentation references and typos.

Modified Paths:
--------------
    CalendarServer/trunk/conf/caldavd-apple.plist
    CalendarServer/trunk/conf/caldavd-test.plist
    CalendarServer/trunk/conf/caldavd.plist
    CalendarServer/trunk/twistedcaldav/caldavxml.py
    CalendarServer/trunk/twistedcaldav/instance.py
    CalendarServer/trunk/twistedcaldav/method/put_common.py
    CalendarServer/trunk/twistedcaldav/method/report_calendar_query.py
    CalendarServer/trunk/twistedcaldav/resource.py
    CalendarServer/trunk/twistedcaldav/stdconfig.py
    CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home_bad/calendar_bad/1.ics

Modified: CalendarServer/trunk/conf/caldavd-apple.plist
===================================================================
--- CalendarServer/trunk/conf/caldavd-apple.plist	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/conf/caldavd-apple.plist	2011-09-14 16:48:33 UTC (rev 8096)
@@ -156,6 +156,11 @@
     <key>MaxAttendeesPerInstance</key>
     <integer>100</integer>
 
+    <!-- Maximum number of instances allowed during expansion -->
+    <!-- 0 for no limit -->
+    <key>MaxAllowedInstances</key>
+    <integer>3000</integer>
+
     <!-- Maximum number of instances allowed for a single RRULE -->
     <!-- 0 for no limit -->
     <key>MaxInstancesForRRULE</key>

Modified: CalendarServer/trunk/conf/caldavd-test.plist
===================================================================
--- CalendarServer/trunk/conf/caldavd-test.plist	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/conf/caldavd-test.plist	2011-09-14 16:48:33 UTC (rev 8096)
@@ -162,6 +162,11 @@
     <key>MaxAttendeesPerInstance</key>
     <integer>100</integer>
 
+    <!-- Maximum number of instances allowed during expansion -->
+    <!-- 0 for no limit -->
+    <key>MaxAllowedInstances</key>
+    <integer>3000</integer>
+
     <!-- Maximum number of instances allowed for a single RRULE -->
     <!-- 0 for no limit -->
     <key>MaxInstancesForRRULE</key>

Modified: CalendarServer/trunk/conf/caldavd.plist
===================================================================
--- CalendarServer/trunk/conf/caldavd.plist	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/conf/caldavd.plist	2011-09-14 16:48:33 UTC (rev 8096)
@@ -144,6 +144,11 @@
     <key>MaxAttendeesPerInstance</key>
     <integer>100</integer>
 
+    <!-- Maximum number of instances allowed during expansion -->
+    <!-- 0 for no limit -->
+    <key>MaxAllowedInstances</key>
+    <integer>3000</integer>
+
     <!-- Maximum number of instances allowed for a single RRULE -->
     <!-- 0 for no limit -->
     <key>MaxInstancesForRRULE</key>

Modified: CalendarServer/trunk/twistedcaldav/caldavxml.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/caldavxml.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/caldavxml.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -163,7 +163,7 @@
 class CalendarHomeSet (CalDAVElement):
     """
     The calendar collections URLs for this principal's calendar user.
-    (CalDAV-access, section 6.2.1)
+    (CalDAV-access, RFC 4791 section 6.2.1)
     """
     name = "calendar-home-set"
     hidden = True
@@ -174,7 +174,7 @@
     """
     Provides a human-readable description of what this calendar collection
     represents.
-    (CalDAV-access-09, section 5.2.1)
+    (CalDAV-access, RFC 4791 section 5.2.1)
     """
     name = "calendar-description"
     hidden = True
@@ -183,7 +183,7 @@
 class CalendarTimeZone (CalDAVTimeZoneElement):
     """
     Specifies a time zone on a calendar collection.
-    (CalDAV-access-09, section 5.2.2)
+    (CalDAV-access, RFC 4791 section 5.2.2)
     """
     name = "calendar-timezone"
     hidden = True
@@ -192,7 +192,7 @@
     """
     Provides a human-readable description of what this calendar collection
     represents.
-    (CalDAV-access-09, section 5.2.3)
+    (CalDAV-access, RFC 4791 section 5.2.3)
     """
     name = "supported-calendar-component-set"
     hidden = True
@@ -203,7 +203,7 @@
 class SupportedCalendarData (CalDAVElement):
     """
     Specifies restrictions on a calendar collection.
-    (CalDAV-access-09, section 5.2.4)
+    (CalDAV-access, RFC 4791 section 5.2.4)
     """
     name = "supported-calendar-data"
     hidden = True
@@ -214,16 +214,43 @@
 class MaxResourceSize (CalDAVTextElement):
     """
     Specifies restrictions on a calendar collection.
-    (CalDAV-access-15, section 5.2.5)
+    (CalDAV-access, RFC 4791 section 5.2.5)
     """
     name = "max-resource-size"
     hidden = True
     protected = True
 
+class MinDateTime (CalDAVTextElement):
+    """
+    Specifies restrictions on a calendar collection.
+    (CalDAV-access, RFC 4791 section 5.2.6)
+    """
+    name = "min-date-time"
+    hidden = True
+    protected = True
+
+class MaxDateTime (CalDAVTextElement):
+    """
+    Specifies restrictions on a calendar collection.
+    (CalDAV-access, RFC 4791 section 5.2.7)
+    """
+    name = "max-date-time"
+    hidden = True
+    protected = True
+
+class MaxInstances (CalDAVTextElement):
+    """
+    Specifies restrictions on a calendar collection.
+    (CalDAV-access, RFC 4791 section 5.2.8)
+    """
+    name = "max-instances"
+    hidden = True
+    protected = True
+
 class MaxAttendeesPerInstance (CalDAVTextElement):
     """
     Specifies restrictions on a calendar collection.
-    (CalDAV-access-15, section 5.2.9)
+    (CalDAV-access, RFC 4791 section 5.2.9)
     """
     name = "max-attendees-per-instance"
     hidden = True
@@ -232,14 +259,14 @@
 class Calendar (CalDAVEmptyElement):
     """
     Denotes a calendar collection.
-    (CalDAV-access-09, sections 4.2 & 9.1)
+    (CalDAV-access, RFC 4791 sections 4.2 & 9.1)
     """
     name = "calendar"
 
 class MakeCalendar (CalDAVElement):
     """
     Top-level element for request body in MKCALENDAR.
-    (CalDAV-access-09, section 9.2)
+    (CalDAV-access, RFC 4791 section 9.2)
     """
     name = "mkcalendar"
 
@@ -250,7 +277,7 @@
 class MakeCalendarResponse (CalDAVElement):
     """
     Top-level element for response body in MKCALENDAR.
-    (CalDAV-access-09, section 9.3)
+    (CalDAV-access, RFC 4791 section 9.3)
     """
     name = "mkcalendar-response"
 
@@ -259,7 +286,7 @@
 class CalendarQuery (CalDAVElement):
     """
     Defines a report for querying calendar data.
-    (CalDAV-access-09, section 9.4)
+    (CalDAV-access, RFC 4791 section 9.5)
     """
     name = "calendar-query"
 
@@ -311,7 +338,7 @@
     """
     Defines which parts of a calendar component object should be returned by a
     report.
-    (CalDAV-access-09, section 9.5)
+    (CalDAV-access, RFC 4791 section 9.6)
     """
     name = "calendar-data"
 
@@ -444,7 +471,7 @@
 class CalendarComponent (CalDAVElement):
     """
     Defines which component types to return.
-    (CalDAV-access-09, section 9.5.1)
+    (CalDAV-access, RFC 4791 section 9.6.1)
     """
     name = "comp"
 
@@ -546,21 +573,21 @@
 class AllComponents (CalDAVEmptyElement):
     """
     Specifies that all components shall be returned.
-    (CalDAV-access-09, section 9.5.2)
+    (CalDAV-access, RFC 4791 section 9.6.2)
     """
     name = "allcomp"
 
 class AllProperties (CalDAVEmptyElement):
     """
     Specifies that all properties shall be returned.
-    (CalDAV-access-09, section 9.5.3)
+    (CalDAV-access, RFC 4791 section 9.6.3)
     """
     name = "allprop"
 
 class Property (CalDAVEmptyElement):
     """
     Defines a property to return in a response.
-    (CalDAV-access-09, section 9.5.4)
+    (CalDAV-access, RFC 4791 section 9.6.4)
     """
     name = "prop"
 
@@ -589,7 +616,7 @@
     """
     Specifies that the server should expand recurring components into separate
     instances.
-    (CalDAV-access-09, section 9.5.5)
+    (CalDAV-access, RFC 4791 section 9.6.5)
     """
     name = "expand"
 
@@ -597,7 +624,7 @@
     """
     Specifies a time range to limit the set of recurrence instances returned by
     the server.
-    (CalDAV-access-09, section 9.5.6)
+    (CalDAV-access, RFC 4791 section 9.6.6)
     """
     name = "limit-recurrence-set"
 
@@ -605,14 +632,14 @@
     """
     Specifies a time range to limit the set of FREEBUSY properties returned by
     the server.
-    (CalDAV-access-09, section 9.5.7)
+    (CalDAV-access, RFC 4791 section 9.6.7)
     """
     name = "limit-freebusy-set"
 
 class Filter (CalDAVElement):
     """
     Determines which matching components are returned.
-    (CalDAV-access-09, section 9.6)
+    (CalDAV-access, RFC 4791 section 9.7)
     """
     name = "filter"
 
@@ -621,7 +648,7 @@
 class ComponentFilter (CalDAVElement):
     """
     Limits a search to only the chosen component types.
-    (CalDAV-access-09, section 9.6.1)
+    (CalDAV-access, RFC 4791 section 9.7.1)
     """
     name = "comp-filter"
 
@@ -639,7 +666,7 @@
 class PropertyFilter (CalDAVElement):
     """
     Limits a search to specific properties.
-    (CalDAV-access-09, section 9.6.2)
+    (CalDAV-access, RFC 4791 section 9.7.2)
     """
     name = "prop-filter"
 
@@ -657,7 +684,7 @@
 class ParameterFilter (CalDAVElement):
     """
     Limits a search to specific parameters.
-    (CalDAV-access-09, section 9.6.3)
+    (CalDAV-access, RFC 4791 section 9.7.3)
     """
     name = "param-filter"
 
@@ -670,14 +697,14 @@
 class IsNotDefined (CalDAVEmptyElement):
     """
     Specifies that the named iCalendar item does not exist.
-    (CalDAV-access-11, section 9.6.4)
+    (CalDAV-access, RFC 4791 section 9.7.4)
     """
     name = "is-not-defined"
 
 class TextMatch (CalDAVTextElement):
     """
     Specifies a substring match on a property or parameter value.
-    (CalDAV-access-09, section 9.6.4)
+    (CalDAV-access, RFC 4791 section 9.7.5)
     """
     name = "text-match"
 
@@ -705,14 +732,14 @@
 class TimeZone (CalDAVTimeZoneElement):
     """
     Specifies a time zone component.
-    (CalDAV-access-09, section 9.7)
+    (CalDAV-access, RFC 4791 section 9.8)
     """
     name = "timezone"
 
 class TimeRange (CalDAVTimeRangeElement):
     """
     Specifies a time for testing components against.
-    (CalDAV-access-09, section 9.8)
+    (CalDAV-access, RFC 4791 section 9.9)
     """
     name = "time-range"
 
@@ -720,7 +747,7 @@
     """
     CalDAV report used to retrieve specific calendar component items via their
     URIs.
-    (CalDAV-access-09, section 9.9)
+    (CalDAV-access, RFC 4791 section 9.10)
     """
     name = "calendar-multiget"
 
@@ -761,7 +788,7 @@
     """
     CalDAV report used to generate a VFREEBUSY to determine busy time over a
     specific time range.
-    (CalDAV-access-09, section 9.10)
+    (CalDAV-access, RFC 4791 section 9.11)
     """
     name = "free-busy-query"
 
@@ -789,7 +816,7 @@
 class ReadFreeBusy(CalDAVEmptyElement):
     """
     Privilege which allows the free busy report to be executed.
-    (CalDAV-access, section 6.1.1)
+    (CalDAV-access, RFC 4791 section 6.1.1)
     """
     name = "read-free-busy"
     
@@ -802,13 +829,6 @@
 
     allowed_children = { (davxml.dav_namespace, "href"): (1, 1) }
     
-class NumberOfRecurrencesWithinLimits(CalDAVTextElement):
-    """
-    CalDAV precondition used to indicate that the server limits the number
-    of instances a recurring component is allowed to have.
-    """
-    name = "number-of-recurrences-within-limits"
-
 class SupportedFilter(CalDAVElement):
     """
     CalDAV precondition used to indicate an unsupported component type in a

Modified: CalendarServer/trunk/twistedcaldav/instance.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/instance.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/instance.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -18,6 +18,7 @@
 iCalendar Recurrence Expansion Utilities
 """
 
+from twistedcaldav.config import config
 from twistedcaldav.dateops import normalizeForIndex, differenceDateTime
 
 from pycalendar.datetime import PyCalendarDateTime
@@ -25,14 +26,10 @@
 from pycalendar.period import PyCalendarPeriod
 from pycalendar.timezone import PyCalendarTimezone
 
-# The maximum number of instances we will expand out to.
-# Raise a TooManyInstancesError exception if we exceed this.
-max_allowed_instances = 1000
-
 class TooManyInstancesError(Exception):
     def __init__(self):
         Exception.__init__(self)
-        self.max_allowed = max_allowed_instances
+        self.max_allowed = config.MaxAllowedInstances
 
     def __repr__(self):
         return "<%s max:%s>" % (self.__class__.__name__, self.max_allowed)
@@ -165,7 +162,7 @@
         self.instances[str(instance.rid)] = instance
         
         # Check for too many instances
-        if len(self.instances) > max_allowed_instances:
+        if config.MaxAllowedInstances and len(self.instances) > config.MaxAllowedInstances:
             raise TooManyInstancesError()
 
     def _getMasterEventDetails(self, component):

Modified: CalendarServer/trunk/twistedcaldav/method/put_common.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/method/put_common.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/method/put_common.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -33,7 +33,6 @@
 from twext.web2.dav.util import joinURL, parentForURL
 from twext.web2 import responsecode
 from twext.web2.dav import davxml
-from twext.web2.dav.element.base import PCDATAElement
 
 from twext.web2.http import HTTPError
 from twext.web2.http import StatusResponse
@@ -46,9 +45,7 @@
 from txdav.common.icommondatastore import ReservationError
 
 from twistedcaldav.config import config
-from twistedcaldav.caldavxml import NoUIDConflict
-from twistedcaldav.caldavxml import NumberOfRecurrencesWithinLimits
-from twistedcaldav.caldavxml import caldav_namespace, MaxAttendeesPerInstance
+from twistedcaldav.caldavxml import caldav_namespace, NoUIDConflict, MaxInstances, MaxAttendeesPerInstance
 from twistedcaldav import customxml
 from twistedcaldav.customxml import calendarserver_namespace
 from twistedcaldav.datafilters.peruserdata import PerUserDataFilter
@@ -394,7 +391,7 @@
                 #    considered a "weak" match to the current Schedule-Tag,
                 #    then do smart merge, else reject with a 412.
                 #
-                # Actually by the time we get here the pre-condition will
+                # Actually by the time we get here the precondition will
                 # already have been tested and found to be OK, so we can just
                 # always do smart merge now if If-Match is present.
                 self.schedule_tag_match = self.request.headers.getHeader("If-Match") is not None
@@ -953,7 +950,7 @@
                     etags = ()
                 else:
                     # Schedule-Tag did not change => add current ETag to list of those that can
-                    # be used in a weak pre-condition test
+                    # be used in a weak precondition test
                     etags = self.destination.scheduleEtags
                     if etags is None:
                         etags = ()
@@ -1107,7 +1104,7 @@
             elif isinstance(err, TooManyInstancesError):
                 raise HTTPError(ErrorResponse(
                     responsecode.FORBIDDEN,
-                    NumberOfRecurrencesWithinLimits(PCDATAElement(str(err.max_allowed))),
+                    MaxInstances.fromString(str(err.max_allowed)),
                     "Too many recurrence instances",
                 ))
             else:

Modified: CalendarServer/trunk/twistedcaldav/method/report_calendar_query.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/method/report_calendar_query.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/method/report_calendar_query.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -27,14 +27,12 @@
     maybeDeferred
 from twext.web2 import responsecode
 from twext.web2.dav import davxml
-from twext.web2.dav.element.base import PCDATAElement
 from twext.web2.dav.http import MultiStatusResponse
 from twext.web2.dav.method.report import NumberOfMatchesWithinLimits
 from twext.web2.dav.util import joinURL
 from twext.web2.http import HTTPError, StatusResponse
 
-from twistedcaldav.caldavxml import caldav_namespace,\
-    NumberOfRecurrencesWithinLimits
+from twistedcaldav.caldavxml import caldav_namespace, MaxInstances
 from twistedcaldav.config import config
 from txdav.common.icommondatastore import IndexedSearchException
 from twistedcaldav.instance import TooManyInstancesError
@@ -125,7 +123,7 @@
         Run a query on the specified calendar collection
         accumulating the query responses.
         @param calresource: the L{CalDAVResource} for a calendar collection.
-        @param uri: the uri for the calendar collecton resource.
+        @param uri: the uri for the calendar collection resource.
         """
         
         def queryCalendarObjectResource(resource, uri, name, calendar, timezone, query_ok=False, isowner=True):
@@ -169,7 +167,7 @@
                 filter.settimezone(tz)
                 timezone = tuple(tz.calendar().subcomponents())[0]
 
-            # Do some optimisation of access control calculation by determining any inherited ACLs outside of
+            # Do some optimization of access control calculation by determining any inherited ACLs outside of
             # the child resource loop and supply those to the checkPrivileges on each child.
             filteredaces = (yield calresource.inheritedACEsforChildren(request))
 
@@ -244,8 +242,8 @@
         log.err("Too many instances need to be computed in calendar-query report")
         raise HTTPError(ErrorResponse(
             responsecode.FORBIDDEN,
-            NumberOfRecurrencesWithinLimits(PCDATAElement(str(ex.max_allowed))),
-            "Too many instrances",
+            MaxInstances.fromString(str(ex.max_allowed)),
+            "Too many instances",
         ))
     except NumberOfMatchesWithinLimits:
         log.err("Too many matching components in calendar-query report")

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -324,7 +324,7 @@
         Copy this resource's dead properties to another resource.  This requires
         that the new resource have a back-end store.
 
-        @param other: a resource to copy all properites to.
+        @param other: a resource to copy all properties to.
         @type other: subclass of L{CalDAVResource}
         """
         self.newStoreProperties().update(other.newStoreProperties())
@@ -393,6 +393,10 @@
                 baseProperties += (
                     caldavxml.MaxResourceSize.qname(),
                 )
+            if config.MaxAllowedInstances:
+                baseProperties += (
+                    caldavxml.MaxInstances.qname(),
+                )
             if config.MaxAttendeesPerInstance:
                 baseProperties += (
                     caldavxml.MaxAttendeesPerInstance.qname(),
@@ -592,13 +596,11 @@
             returnValue(davxml.AddMember(davxml.HRef.fromString(url + "/;add-member")))
 
         elif qname == caldavxml.SupportedCalendarComponentSet.qname():
-            # CalDAV-access-09, section 5.2.3
             if self.hasDeadProperty(qname):
                 returnValue(self.readDeadProperty(qname))
             returnValue(self.supportedCalendarComponentSet)
 
         elif qname == caldavxml.SupportedCalendarData.qname():
-            # CalDAV-access-09, section 5.2.4
             returnValue(caldavxml.SupportedCalendarData(
                 caldavxml.CalendarData(**{
                     "content-type": "text/calendar",
@@ -607,14 +609,18 @@
             ))
 
         elif qname == caldavxml.MaxResourceSize.qname():
-            # CalDAV-access-15, section 5.2.5
             if config.MaxResourceSize:
                 returnValue(caldavxml.MaxResourceSize.fromString(
                     str(config.MaxResourceSize)
                 ))
 
+        elif qname == caldavxml.MaxInstances.qname():
+            if config.MaxAllowedInstances:
+                returnValue(caldavxml.MaxInstances.fromString(
+                    str(config.MaxAllowedInstances)
+                ))
+
         elif qname == caldavxml.MaxAttendeesPerInstance.qname():
-            # CalDAV-access-15, section 5.2.9
             if config.MaxAttendeesPerInstance:
                 returnValue(caldavxml.MaxAttendeesPerInstance.fromString(
                     str(config.MaxAttendeesPerInstance)

Modified: CalendarServer/trunk/twistedcaldav/stdconfig.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/stdconfig.py	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/twistedcaldav/stdconfig.py	2011-09-14 16:48:33 UTC (rev 8096)
@@ -314,6 +314,7 @@
     "MaxResourcesPerCollection" :   10000, # Maximum number of resources in a calendar/address book
     "MaxResourceSize"           : 1048576, # Maximum resource size (in bytes)
     "MaxAttendeesPerInstance"   :     100, # Maximum number of unique attendees
+    "MaxAllowedInstances"       :    3000, # Maximum number of instances the server will index
     "MaxInstancesForRRULE"      :     400, # Maximum number of instances for an RRULE
 
     # Set to URL path of wiki authentication service, e.g. "/auth", in order
@@ -377,7 +378,7 @@
     # Permissions
     #
     "EnableAnonymousReadRoot": True,    # Allow unauthenticated read access to /
-    "EnableAnonymousReadNav": False,    # Allow unauthenticated read access to hierachcy
+    "EnableAnonymousReadNav": False,    # Allow unauthenticated read access to hierarchy
     "EnablePrincipalListings": True,    # Allow listing of principal collections
     "EnableMonolithicCalendars": True,  # Render calendar collections as a monolithic iCalendar object
 
@@ -488,9 +489,9 @@
         "Enabled"       : False,     # Overall on/off switch
         "Mode"          : "primary", # Can be "primary" or "secondary"
         "BasePath"      : "",        # Path to zoneinfo - if None use default package path
-                                     # secondary service MUST define its own writeable path
+                                     # secondary service MUST define its own writable path
         "XMLInfoPath"   : "",        # Path to db cache info - if None use default package path
-                                     # secondary service MUST define its own writeable path if
+                                     # secondary service MUST define its own writable path if
                                      # not None
         
         "SecondaryService" : {
@@ -553,7 +554,7 @@
         "CalDAV": {
             "EmailDomain"                : "",    # Domain for mailto calendar user addresses on this server
             "HTTPDomain"                 : "",    # Domain for http calendar user addresses on this server
-            "AddressPatterns"            : [],    # Reg-ex patterns to match local calendar user addresses
+            "AddressPatterns"            : [],    # Regex patterns to match local calendar user addresses
             "OldDraftCompatibility"      : True,  # Whether to maintain compatibility with non-implicit mode
             "ScheduleTagCompatibility"   : True,  # Whether to support older clients that do not use Schedule-Tag feature
             "EnablePrivateComments"      : True,  # Private comments from attendees to organizer
@@ -587,10 +588,10 @@
                 "UseSSL"        : True,
                 "Type"          : "",    # Type of message access server: 'pop' or 'imap'
                 "PollingSeconds"    : 30,  # How often to fetch mail
-                "Username"      : "",    # For account receving mail
-                "Password"      : "",    # For account receving mail
+                "Username"      : "",    # For account receiving mail
+                "Password"      : "",    # For account receiving mail
             },
-            "AddressPatterns"   : [],    # Reg-ex patterns to match iMIP-able calendar user addresses
+            "AddressPatterns"   : [],    # Regex patterns to match iMIP-able calendar user addresses
             "MailTemplatesDirectory": "/usr/share/caldavd/share/email_templates", # Directory containing HTML templates for email invitations (invite.html, cancel.html)
             "MailIconsDirectory": "/usr/share/caldavd/share/date_icons", # Directory containing language-specific subdirectories containing date-specific icons for email invitations
             "InvitationDaysToLive" : 90, # How many days invitations are valid

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home_bad/calendar_bad/1.ics
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home_bad/calendar_bad/1.ics	2011-09-13 23:00:18 UTC (rev 8095)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/calendar_store/ho/me/home_bad/calendar_bad/1.ics	2011-09-14 16:48:33 UTC (rev 8096)
@@ -20,11 +20,11 @@
 END:STANDARD
 END:VTIMEZONE
 BEGIN:VEVENT
-DTEND;TZID=US/Pacific:20070324T124500
+DTEND;TZID=US/Pacific:20000324T124500
 UID:uid1
 DTSTAMP:20090326T145447Z
 SUMMARY:Busted
-DTSTART;TZID=US/Pacific:20070324T121500
+DTSTART;TZID=US/Pacific:20000324T121500
 CREATED:20090326T145440Z
 RRULE:FREQ=DAILY
 END:VEVENT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110914/d466a55e/attachment-0001.html>


More information about the calendarserver-changes mailing list