[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