[CalendarServer-changes] [1545] CalendarServer/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Mon May 21 15:14:21 PDT 2007
Revision: 1545
http://trac.macosforge.org/projects/calendarserver/changeset/1545
Author: cdaboo at apple.com
Date: 2007-05-21 15:14:21 -0700 (Mon, 21 May 2007)
Log Message:
-----------
Use /var/run/caldavd as the data directory and have the server create it (and set proper mode/owner) if not present.
Modified Paths:
--------------
CalendarServer/trunk/conf/caldavd.plist
CalendarServer/trunk/twistedcaldav/config.py
CalendarServer/trunk/twistedcaldav/tap.py
Modified: CalendarServer/trunk/conf/caldavd.plist
===================================================================
--- CalendarServer/trunk/conf/caldavd.plist 2007-05-21 19:27:45 UTC (rev 1544)
+++ CalendarServer/trunk/conf/caldavd.plist 2007-05-21 22:14:21 UTC (rev 1545)
@@ -68,7 +68,7 @@
<!-- Data root -->
<key>DataRoot</key>
- <string>/var/run</string>
+ <string>/var/run/caldavd</string>
<!-- Document root -->
<key>DocumentRoot</key>
Modified: CalendarServer/trunk/twistedcaldav/config.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/config.py 2007-05-21 19:27:45 UTC (rev 1544)
+++ CalendarServer/trunk/twistedcaldav/config.py 2007-05-21 22:14:21 UTC (rev 1545)
@@ -63,7 +63,7 @@
#
# Data store
#
- "DataRoot" : "/var/run",
+ "DataRoot" : "/var/run/caldavd",
"DocumentRoot" : "/Library/CalendarServer/Documents",
"UserQuota" : 104857600, # User quota (in bytes)
"MaximumAttachmentSize": 1048576, # Attachment size limit (in bytes)
Modified: CalendarServer/trunk/twistedcaldav/tap.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/tap.py 2007-05-21 19:27:45 UTC (rev 1544)
+++ CalendarServer/trunk/twistedcaldav/tap.py 2007-05-21 22:14:21 UTC (rev 1545)
@@ -193,6 +193,17 @@
#gname=config.GroupName
)
+ # Verify that data root actually exists
+ self.checkDirectory(
+ config.DataRoot,
+ "Data root",
+ access=os.W_OK,
+ #permissions=0750,
+ #uname=config.UserName,
+ #gname=config.GroupName
+ create=(0750, config.UserName, config.GroupName,)
+ )
+
# Verify that ssl certs exist if needed
if config.SSLPort:
self.checkFile(
@@ -221,13 +232,33 @@
log.msg("WARNING: changing umask from: 0%03o to 0%03o" % (
oldmask, config.umask,))
- def checkDirectory(self, dirpath, description, access=None, fail=False, permissions=None, uname=None, gname=None):
+ def checkDirectory(self, dirpath, description, access=None, fail=False, permissions=None, uname=None, gname=None, create=None):
if not os.path.exists(dirpath):
- raise ConfigurationError("%s does not exist: %s" % (description, dirpath,))
- elif not os.path.isdir(dirpath):
+ if create is not None:
+ # create is a tuple of (mode, username, groupname)
+ try:
+ os.mkdir(dirpath)
+ os.chmod(dirpath, create[0])
+ if create[1] and create[2]:
+ import pwd
+ import grp
+ uid = pwd.getpwnam(create[1])[2]
+ gid = grp.getgrnam(create[2])[2]
+ os.chown(dirpath, uid, gid)
+ except:
+ log.msg("Could not create %s" % (dirpath,))
+ raise ConfigurationError("%s does not exist and cannot be created: %s" % (description, dirpath,))
+
+ log.msg("Created %s" % (dirpath,))
+ else:
+ raise ConfigurationError("%s does not exist: %s" % (description, dirpath,))
+
+ if not os.path.isdir(dirpath):
raise ConfigurationError("%s is not a directory: %s" % (description, dirpath,))
- elif access and not os.access(dirpath, access):
+
+ if access and not os.access(dirpath, access):
raise ConfigurationError("Insufficient permissions for server on %s directory: %s" % (description, dirpath,))
+
self.securityCheck(dirpath, description, fail=fail, permissions=permissions, uname=uname, gname=gname)
def checkFile(self, filepath, description, access=None, fail=False, permissions=None, uname=None, gname=None):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070521/09ff06e4/attachment.html
More information about the calendarserver-changes
mailing list