--- EyeFiServer.py   2012-01-25 21:43:44.246931382 -0500
+++ ../EyeFiServer.py      2012-01-25 21:46:40.054924187 -0500
@@ -363,6 +363,9 @@
     # content-type: multipart/form-data; boundary=---------------------------02468ace13579bdfcafebabef00d
     contentTypeHeader = self.headers.getheaders('content-type').pop()
     eyeFiLogger.debug(contentTypeHeader)
+
+    # remove charset from content-type header if present (for iOS app)
+    contentTypeHeader = contentTypeHeader.replace("charset=utf-8;","");

     # Extract the boundary parameter in the content-type header
     headerParameters = contentTypeHeader.split(";")
@@ -484,8 +487,11 @@
     eyeFiLogger.debug("Extracted elements: " + str(handler.extractedElements))

     macAddress = handler.extractedElements["macaddress"];
+    # trim macAddress to 12 characters (iOS app seems to add an extra character)
+    macAddress = macAddress[:12];
+
     # Calculate the credential string that I am expecting the card to send to me
-    credentialString = handler.extractedElements["macaddress"] + self.server.eyeFiConfiguration[macAddress]['UploadKey'] + self.server.serverNonce;
+    credentialString = macAddress + self.server.eyeFiConfiguration[macAddress]['UploadKey'] + self.server.serverNonce;
     eyeFiLogger.debug("Concatenated credential string (pre MD5): " + credentialString)

     binaryCredentialString = binascii.unhexlify(credentialString)


