From d59fe80160008b7d0e7c4e61b0459c7c5bbb2894 Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Mon, 7 Jun 2010 13:08:23 -0400 Subject: [PATCH] Nokia's MfE 3 requires the UID field. 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 | 4 ++++ framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php index 0b2f16d37..3ebde5929 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php @@ -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; diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php b/framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php index bdf4e06b4..fdbf43f27 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Message/Base.php @@ -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. * -- 2.11.0