[CalendarServer-changes] [8209] CalendarServer/trunk/calendarserver/push/applepush.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Oct 17 17:26:48 PDT 2011
Revision: 8209
http://trac.macosforge.org/projects/calendarserver/changeset/8209
Author: sagen at apple.com
Date: 2011-10-17 17:26:48 -0700 (Mon, 17 Oct 2011)
Log Message:
-----------
If APN cert not provided for a given protocol, don't set up an APN service; normalize tokens to lowercase.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/push/applepush.py
Modified: CalendarServer/trunk/calendarserver/push/applepush.py
===================================================================
--- CalendarServer/trunk/calendarserver/push/applepush.py 2011-10-17 20:46:16 UTC (rev 8208)
+++ CalendarServer/trunk/calendarserver/push/applepush.py 2011-10-18 00:26:48 UTC (rev 8209)
@@ -85,38 +85,40 @@
for protocol in ("CalDAV", "CardDAV"):
- providerTestConnector = None
- feedbackTestConnector = None
- if testConnectorClass is not None:
- providerTestConnector = testConnectorClass()
- feedbackTestConnector = testConnectorClass()
+ if settings[protocol]["CertificatePath"]:
- provider = APNProviderService(
- settings["ProviderHost"],
- settings["ProviderPort"],
- settings[protocol]["CertificatePath"],
- settings[protocol]["PrivateKeyPath"],
- testConnector=providerTestConnector,
- reactor=reactor,
- )
- provider.setServiceParent(service)
- service.providers[protocol] = provider
- service.log_info("APNS %s topic: %s" %
- (protocol, settings[protocol]["Topic"]))
+ providerTestConnector = None
+ feedbackTestConnector = None
+ if testConnectorClass is not None:
+ providerTestConnector = testConnectorClass()
+ feedbackTestConnector = testConnectorClass()
- feedback = APNFeedbackService(
- service.store,
- settings["FeedbackUpdateSeconds"],
- settings["FeedbackHost"],
- settings["FeedbackPort"],
- settings[protocol]["CertificatePath"],
- settings[protocol]["PrivateKeyPath"],
- testConnector=feedbackTestConnector,
- reactor=reactor,
- )
- feedback.setServiceParent(service)
- service.feedbacks[protocol] = feedback
+ provider = APNProviderService(
+ settings["ProviderHost"],
+ settings["ProviderPort"],
+ settings[protocol]["CertificatePath"],
+ settings[protocol]["PrivateKeyPath"],
+ testConnector=providerTestConnector,
+ reactor=reactor,
+ )
+ provider.setServiceParent(service)
+ service.providers[protocol] = provider
+ service.log_info("APNS %s topic: %s" %
+ (protocol, settings[protocol]["Topic"]))
+ feedback = APNFeedbackService(
+ service.store,
+ settings["FeedbackUpdateSeconds"],
+ settings["FeedbackHost"],
+ settings["FeedbackPort"],
+ settings[protocol]["CertificatePath"],
+ settings[protocol]["PrivateKeyPath"],
+ testConnector=feedbackTestConnector,
+ reactor=reactor,
+ )
+ feedback.setServiceParent(service)
+ service.feedbacks[protocol] = feedback
+
return service
@@ -373,7 +375,7 @@
def dataReceived(self, data):
self.log_debug("FeedbackProtocol dataReceived %d bytes" % (len(data),))
timestamp, tokenLength, binaryToken = struct.unpack("!IH32s", data)
- token = binaryToken.encode("hex")
+ token = binaryToken.encode("hex").lower()
return self.processFeedback(timestamp, token)
@inlineCallbacks
@@ -548,7 +550,7 @@
key = request.args.get("key", None)
if key and token:
key = key[0]
- token = token[0].replace(" ", "")
+ token = token[0].replace(" ", "").lower()
principal = self.principalFromRequest(request)
guid = principal.record.guid
yield self.addSubscription(token, key, guid)
@@ -565,7 +567,7 @@
"""
Add a subscription (or update its timestamp if already there).
- @param token: The device token
+ @param token: The device token, must be lowercase
@type token: C{str}
@param key: The push key
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111017/fe473e7a/attachment-0001.html>
More information about the calendarserver-changes
mailing list