Limit debug log entry (line) size to 4096 characters to prevent
memory_limit/preformance issues when debug is enabled (imap, smtp, db)
| | |
| | | 'identifier_end' => '"', |
| | | ); |
| | | |
| | | const DEBUG_LINE_LENGTH = 4096; |
| | | |
| | | /** |
| | | * Factory, returns driver-specific instance of the class |
| | |
| | | protected function debug($query) |
| | | { |
| | | if ($this->options['debug_mode']) { |
| | | if (($len = strlen($query)) > self::DEBUG_LINE_LENGTH) { |
| | | $query = substr_replace($query, "\n-----[debug cut]-----\n", |
| | | self::DEBUG_LINE_LENGTH/2 - 11, $len - self::DEBUG_LINE_LENGTH - 22); |
| | | } |
| | | rcube::write_log('sql', '[' . (++$this->db_index) . '] ' . $query . ';'); |
| | | } |
| | | } |
| | |
| | | const COMMAND_CAPABILITY = 2; |
| | | const COMMAND_LASTLINE = 4; |
| | | |
| | | const DEBUG_LINE_LENGTH = 4096; |
| | | |
| | | /** |
| | | * Object constructor |
| | | */ |
| | |
| | | /** |
| | | * Set the value of the debugging flag. |
| | | * |
| | | * @param boolean $debug New value for the debugging flag. |
| | | * @param boolean $debug New value for the debugging flag. |
| | | * @param callback $handler Logging handler function |
| | | * |
| | | * @since 0.5-stable |
| | | * @since 0.5-stable |
| | | */ |
| | | function setDebug($debug, $handler = null) |
| | | { |
| | |
| | | /** |
| | | * Write the given debug text to the current debug output handler. |
| | | * |
| | | * @param string $message Debug mesage text. |
| | | * @param string $message Debug mesage text. |
| | | * |
| | | * @since 0.5-stable |
| | | * @since 0.5-stable |
| | | */ |
| | | private function debug($message) |
| | | { |
| | | if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) { |
| | | $message = substr_replace($message, "\n-----[debug cut]-----\n", |
| | | self::DEBUG_LINE_LENGTH/2 - 11, $len - self::DEBUG_LINE_LENGTH - 22); |
| | | } |
| | | |
| | | if ($this->resourceid) { |
| | | $message = sprintf('[%s] %s', $this->resourceid, $message); |
| | | } |
| | |
| | | // define headers delimiter |
| | | const SMTP_MIME_CRLF = "\r\n"; |
| | | |
| | | const DEBUG_LINE_LENGTH = 4096; |
| | | |
| | | |
| | | /** |
| | | * SMTP Connection and authentication |
| | |
| | | */ |
| | | public function debug_handler(&$smtp, $message) |
| | | { |
| | | if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) { |
| | | $message = substr_replace($message, "\n-----[debug cut]----\n", |
| | | self::DEBUG_LINE_LENGTH/2 - 11, $len - self::DEBUG_LINE_LENGTH - 22); |
| | | } |
| | | |
| | | rcube::write_log('smtp', preg_replace('/\r\n$/', '', $message)); |
| | | } |
| | | |