Changeset b8ae99a6 in github


Ignore:
Timestamp:
Aug 28, 2009 4:29:46 AM (4 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
f8a846c
Parents:
16506fb
Message:
  • Fix endless loop on error response for APPEND command (#1486060)
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r11e670d rb8ae99a6  
    22=========================== 
    33 
     4- Fix endless loop on error response for APPEND command (#1486060) 
    45- Don't require date.timezone setting in installer (#1485989) 
    56- Fix date sorting problem with Courier IMAP server (#1486065) 
  • INSTALL

    r4b20e28 rb8ae99a6  
    39393. Create a new database and a database user for RoundCube (see DATABASE SETUP) 
    40404. Point your browser to http://url-to-roundcube/installer/ 
    41 5. Follow the instructions of the install script (or see MANUAL CONFINGURATION) 
     415. Follow the instructions of the install script (or see MANUAL CONFIGURATION) 
    42426. After creating and testing the configuration, remove the installer directory 
    43437. Done! 
  • program/lib/imap.inc

    r7e15422 rb8ae99a6  
    302302 
    303303function iil_ParseResult($string) { 
    304         $a = explode(' ', $string); 
    305         if (count($a) > 2) { 
     304        $a = explode(' ', trim($string)); 
     305        if (count($a) >= 2) { 
    306306                if (strcasecmp($a[1], 'OK') == 0) { 
    307307                        return 0; 
     
    312312                } else if (strcasecmp($a[1], 'BYE') == 0) { 
    313313                        return -3; 
    314                 } 
     314                } 
    315315        } 
    316316        return -4; 
     
    21262126        iil_PutLine($fp, $query); 
    21272127 
    2128         $line = trim(iil_ReadLine($fp, 10000)); 
    2129         return iil_ParseResult($line); 
     2128        $line = trim(iil_ReadLine($fp, 512)); 
     2129        return (iil_ParseResult($line) == 0); 
    21302130} 
    21312131 
     
    21362136        iil_PutLine($fp, $query); 
    21372137     
    2138         $line = trim(iil_ReadLine($fp, 10000)); 
    2139         return iil_ParseResult($line); 
     2138        $line = trim(iil_ReadLine($fp, 512)); 
     2139        return (iil_ParseResult($line) == 0); 
    21402140} 
    21412141 
     
    23722372function iil_C_Append(&$conn, $folder, &$message) { 
    23732373        if (!$folder) { 
    2374                 return false; 
     2374                return false; 
    23752375        } 
    23762376        $fp = $conn->fp; 
    23772377 
    23782378        $message = str_replace("\r", '', $message); 
    2379         $message = str_replace("\n", "\r\n", $message);          
     2379        $message = str_replace("\n", "\r\n", $message); 
    23802380 
    23812381        $len = strlen($message); 
    23822382        if (!$len) { 
    2383                 return false; 
     2383                return false; 
    23842384        } 
    23852385 
    23862386        $request = 'a APPEND "' . iil_Escape($folder) .'" (\\Seen) {' . $len . '}'; 
    2387      
     2387 
    23882388        if (iil_PutLine($fp, $request)) { 
    2389                 $line = iil_ReadLine($fp, 100);          
    2390                 $sent = iil_PutLine($fp, $message); 
     2389                $line = iil_ReadLine($fp, 512); 
     2390 
     2391                $result = (iil_ParseResult($line) == 0); 
     2392                if (!$result) { 
     2393                        $conn->error .= "Cannot write to folder: $line\n"; 
     2394                        return false; 
     2395                } 
     2396 
     2397                iil_PutLine($fp, $message); 
     2398 
    23912399                do { 
    2392                         $line=iil_ReadLine($fp); 
     2400                        $line = iil_ReadLine($fp); 
    23932401                } while (!iil_StartsWith($line, 'a ', true)); 
    23942402         
     
    23962404                if (!$result) { 
    23972405                    $conn->error .= $line . "\n"; 
    2398                 } 
     2406                } 
    23992407                return $result; 
    24002408        } 
     
    24102418     
    24112419        //open message file 
    2412         $in_fp = false;                          
     2420        $in_fp = false; 
    24132421        if (file_exists(realpath($path))) { 
    24142422                $in_fp = fopen($path, 'r'); 
     
    24272435        //send APPEND command 
    24282436        $request    = 'a APPEND "' . iil_Escape($folder) . '" (\\Seen) {' . $len . '}'; 
    2429         $bytes_sent = 0; 
    24302437        if (iil_PutLine($fp, $request)) { 
    2431                 $line = iil_ReadLine($fp, 100); 
    2432                                  
     2438                $line = iil_ReadLine($fp, 512); 
     2439 
     2440                $result = (iil_ParseResult($line) == 0); 
     2441                if (!$result) { 
     2442                        $conn->error .= "Cannot write to folder: $line\n"; 
     2443                        return false; 
     2444                } 
     2445 
    24332446                //send file 
    24342447                while (!feof($in_fp)) { 
    24352448                        $buffer      = fgets($in_fp, 4096); 
    2436                         $bytes_sent += strlen($buffer); 
    24372449                        iil_PutLine($fp, $buffer, false); 
    24382450                } 
     
    24452457                        $line = iil_ReadLine($fp); 
    24462458                } while (!iil_StartsWith($line, 'a ', true)); 
    2447                          
     2459 
    24482460                $result = (iil_ParseResult($line) == 0); 
    24492461                if (!$result) { 
    24502462                    $conn->error .= $line . "\n"; 
    24512463                } 
    2452          
     2464 
    24532465                return $result; 
    24542466        } 
Note: See TracChangeset for help on using the changeset viewer.