On Thu, Jul 24, 2008 at 00:35, James MacLachlan <[EMAIL PROTECTED]> wrote:
> This patch resolves our issue which is identical Ticket #1485152, we
> are running PHP 5.1.6, RPM from CentOS 5.  Hope it helps.

Actually you're doing the same as in rc_mime_content_type() but only
with file_info(). Maybe rc_mime_content_type() should first try
file_info() and then mime_content_type(). The latter one is deprecated
anyway.

I propose the following patch (untested):

Index: program/include/rcube_shared.inc
===================================================================
--- program/include/rcube_shared.inc    (revision 1607)
+++ program/include/rcube_shared.inc    (working copy)
@@ -556,31 +556,26 @@
  */
 function rc_mime_content_type($path, $failover = 'unknown/unknown')
 {
-    global $CONFIG;
+    $mime_type = null;
+    $mime_magic = rcmail::get_instance()->config->get('mime_magic');

-    $mime_magic = $CONFIG['mime_magic'];
-
-    if (function_exists('mime_content_type')) {
-       $finfo = mime_content_type($path);
-       if ($finfo)
-           return $finfo;
+    if (!extension_loaded('fileinfo')) {
+        dl('fileinfo.' . PHP_SHLIB_SUFFIX);
     }
-
-    if (!extension_loaded('fileinfo')) {
-        if (!dl('fileinfo.' . PHP_SHLIB_SUFFIX)) {
-            return $failover;
+
+    if (function_exists('finfo_open')) {
+        if ($finfo = finfo_open(FILEINFO_MIME, $mime_magic)) {
+            $mime_type = finfo_file($finfo, $path);
+            finfo_close($finfo);
         }
     }
-
-    $finfo = finfo_open(FILEINFO_MIME, $mime_magic);
-    if (!$finfo) {
-        return $failover;
+    else if (function_exists('mime_content_type')) {
+      $mime_type = mime_content_type($path);
     }
-    $mime_type = finfo_file($finfo,$path);
+
     if (!$mime_type) {
-        return $failover;
+        $mime_type = $failover;
     }
-    finfo_close($finfo);

     return $mime_type;
 }

~Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/

Reply via email to