Nokia's MfE 3 requires the UID field.
authorMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 7 Jun 2010 17:08:23 +0000 (13:08 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 7 Jun 2010 17:08:23 +0000 (13:08 -0400)
This makes no sense on a number of levels, as this value is stated as being
optional. Also, this value is the *client* generated id, no idea
why a client would want this for a server generated message.

framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php
framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php

index 0b2f16d..3ebde59 100644 (file)
@@ -387,6 +387,10 @@ class Horde_ActiveSync_Driver_Horde extends Horde_ActiveSync_Driver_Base
         case self::APPOINTMENTS_FOLDER:
             try {
                 $message = $this->_connector->calendar_export($id);
+                // Nokia MfE requires the optional UID element.
+                if (!$message->getUid()) {
+                    $message->setUid(pack("H*" , md5($id)));
+                }
             } catch (Horde_Exception $e) {
                 $this->_logger->err($e->getMessage());
                 return false;
index bdf4e06..fdbf43f 100644 (file)
@@ -341,7 +341,7 @@ class Horde_ActiveSync_Message_Base
                           $encoder->content(self::_formatDate($this->$map[self::KEY_ATTRIBUTE], $map[self::KEY_TYPE]));
                         }
                     } elseif (isset($map[self::KEY_TYPE]) && $map[self::KEY_TYPE] == self::TYPE_HEX) {
-                        $encoder->content(bin2hex($this->$map[self::KEY_ATTRIBUTE]));
+                        $encoder->content(Horde_String::upper(bin2hex($this->$map[self::KEY_ATTRIBUTE])));
                     } elseif (isset($map[self::KEY_TYPE]) && $map[self::KEY_TYPE] == self::TYPE_MAPI_STREAM) {
                         $encoder->content($this->$map[self::KEY_ATTRIBUTE]);
                     } else {
@@ -352,7 +352,6 @@ class Horde_ActiveSync_Message_Base
             }
         }
     }
-
     /**
      * Checks to see if we should send an empty value.
      *