mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-22 05:49:03 +01:00
Fix the synml fragmentation support problem detected on some phones
such as the Nokia E61. This affected most phones/devices that use SyncML with the vcard/vcalendar format. Fix from Christoph Kaulich, thanks.
This commit is contained in:
parent
a1eb61f102
commit
65d3ecaa5b
@ -670,7 +670,7 @@ class Horde_SyncML_State {
|
|||||||
$res['ContentType'] = $ctype;
|
$res['ContentType'] = $ctype;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch($ctype)
|
switch(strtolower($ctype))
|
||||||
{
|
{
|
||||||
case 'text/x-vcard':
|
case 'text/x-vcard':
|
||||||
case 'text/x-vcalendar':
|
case 'text/x-vcalendar':
|
||||||
@ -687,19 +687,20 @@ class Horde_SyncML_State {
|
|||||||
$res['ContentFormat'] = 'b64';
|
$res['ContentFormat'] = 'b64';
|
||||||
$res['mayFragment'] = 0;
|
$res['mayFragment'] = 0;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($res['mayFragment']))
|
default:
|
||||||
{
|
Horde::logMessage("SyncML: unrecognized content type '$ctype'", __FILE__, __LINE__, PEAR_LOG_ERR);
|
||||||
$res['mayFragment'] = 0;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($target != null)
|
if ($target != null)
|
||||||
{
|
{
|
||||||
switch($target)
|
$_target = str_replace('./','',$target);
|
||||||
|
switch(strtolower($_target))
|
||||||
{
|
{
|
||||||
case 'calendar':
|
case 'calendar':
|
||||||
case 'tasks':
|
case 'tasks':
|
||||||
|
case 'caltasks':
|
||||||
case 'notes':
|
case 'notes':
|
||||||
case 'contacts':
|
case 'contacts':
|
||||||
$res['mayFragment'] = 1;
|
$res['mayFragment'] = 1;
|
||||||
@ -710,22 +711,30 @@ class Horde_SyncML_State {
|
|||||||
case 'sifnotes':
|
case 'sifnotes':
|
||||||
case 'sifcontacts':
|
case 'sifcontacts':
|
||||||
case 'scard':
|
case 'scard':
|
||||||
case 'scalendar':
|
case 'scal':
|
||||||
case 'stask':
|
case 'stask':
|
||||||
case 'snote':
|
case 'snote':
|
||||||
default:
|
|
||||||
$res['mayFragment'] = 0;
|
$res['mayFragment'] = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Horde::logMessage("SyncML: unrecognized target '$_target'", __FILE__, __LINE__, PEAR_LOG_ERR);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($res['mayFragment']))
|
||||||
|
{
|
||||||
|
$res['mayFragment'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPreferedContentType($type)
|
function getPreferedContentType($type)
|
||||||
{
|
{
|
||||||
$_type = str_replace('./','',$type);
|
$_type = str_replace('./','',$type);
|
||||||
switch($_type)
|
switch(strtolower($_type))
|
||||||
{
|
{
|
||||||
case 'contacts':
|
case 'contacts':
|
||||||
return 'text/x-vcard';
|
return 'text/x-vcard';
|
||||||
@ -735,11 +744,9 @@ class Horde_SyncML_State {
|
|||||||
return 'text/x-vnote';
|
return 'text/x-vnote';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'tasks':
|
|
||||||
return 'text/x-vcalendar';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'calendar':
|
case 'calendar':
|
||||||
|
case 'tasks':
|
||||||
|
case 'caltasks':
|
||||||
return 'text/x-vcalendar';
|
return 'text/x-vcalendar';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -762,13 +769,17 @@ class Horde_SyncML_State {
|
|||||||
case 'snote':
|
case 'snote':
|
||||||
return 'text/x-s4j-sifn';
|
return 'text/x-s4j-sifn';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Horde::logMessage("SyncML: unrecognized content type '$_type'", __FILE__, __LINE__, PEAR_LOG_ERR);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHordeType($type)
|
function getHordeType($type)
|
||||||
{
|
{
|
||||||
$_type = str_replace('./','',$type);
|
$_type = str_replace('./','',$type);
|
||||||
switch($_type)
|
switch(strtolower($_type))
|
||||||
{
|
{
|
||||||
case 'contacts':
|
case 'contacts':
|
||||||
return 'contacts';
|
return 'contacts';
|
||||||
@ -783,6 +794,7 @@ class Horde_SyncML_State {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'calendar':
|
case 'calendar':
|
||||||
|
case 'caltasks':
|
||||||
return 'calendar';
|
return 'calendar';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -809,7 +821,7 @@ class Horde_SyncML_State {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Horde::logMessage("unknown hordeType for type=$type ($_type)", __FILE__, __LINE__, PEAR_LOG_INFO);
|
Horde::logMessage("SyncML: unknown hordeType for type=$type ($_type)", __FILE__, __LINE__, PEAR_LOG_INFO);
|
||||||
return $_type;
|
return $_type;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user