X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Fbug_report%2Fsystem_specs.php;h=e40999f80ae59ce98bc783c5fde8e25696dff403;hp=984dd69cabde580f0599f1a31e2e9586848717fc;hb=1d6248ce00d0564f0508e7744490f27c30052af0;hpb=3c621ba1116356a3a8e2616ef6d267f5edb3ea06 diff --git a/plugins/bug_report/system_specs.php b/plugins/bug_report/system_specs.php index 984dd69c..e40999f8 100644 --- a/plugins/bug_report/system_specs.php +++ b/plugins/bug_report/system_specs.php @@ -3,21 +3,25 @@ * This gathers system specification details for use with bug reporting * and anyone else who needs it. * - * Copyright (c) 1999-2004 The SquirrelMail development team + * Copyright (c) 1999-2005 The SquirrelMail Project Team * Licensed under the GNU GPL. For full terms see the file COPYING. * - * This is a standard Squirrelmail-1.2 API for plugins. + * This is a standard SquirrelMail 1.2 API for plugins. * * @version $Id$ * @package plugins * @subpackage bug_report */ +/** @ignore */ +if (!defined('SM_PATH')) define('SM_PATH','../../'); + /** * load required libraries */ include_once(SM_PATH . 'include/validate.php'); -global $body; +include_once(SM_PATH . 'functions/imap.php'); +global $body, $username; /** @@ -40,6 +44,42 @@ function Show_Array($array) { return $str; } +/** + * converts plugin's array to string and adds version numbers + * @return string preformated text with installed plugin's information + * @access private + */ +function br_show_plugins() { + global $plugins; + $str = ''; + if (is_array($plugins) && $plugins!=array()) { + foreach ($plugins as $key => $value) { + if ($key != 0 || $value != '') { + $str .= " * $key = $value"; + // add plugin version + if (function_exists($value . '_version')) { + $str.= ' ' . call_user_func($value . '_version'); + } + $str.="\n"; + } + } + // compatibility plugin can be used without need to enable it in sm config + if (file_exists(SM_PATH . 'plugins/compatibility/setup.php') + && ! in_array('compatibility',$plugins)) { + $str.= ' * compatibility'; + include_once(SM_PATH . 'plugins/compatibility/setup.php'); + if (function_exists('compatibility_version')) { + $str.= ' ' . call_user_func('compatibility_version'); + } + $str.="\n"; + } + } + if ($str == '') { + return " * Nothing listed\n"; + } + return $str; +} + $browscap = ini_get('browscap'); if(!empty($browscap)) { $browser = get_browser(); @@ -62,7 +102,7 @@ $body_top = "My browser information:\n" . "\nSquirrelMail-specific information:\n" . " Version: $version\n" . " Plugins (List)\n" . - Show_Array($plugins); + br_show_plugins(); if (isset($ldap_server) && $ldap_server[0] && ! extension_loaded('ldap')) { $warning = 1; $warnings['ldap'] = "LDAP server defined in SquirrelMail config, " . @@ -75,23 +115,18 @@ if (isset($ldap_server) && $ldap_server[0] && ! extension_loaded('ldap')) { $body = "\nMy IMAP server information:\n" . " Server type: $imap_server_type\n"; -$imap_stream = fsockopen ($imapServerAddress, $imapPort, $error_number, $error_string); -$server_info = fgets ($imap_stream, 1024); + +$imapServerAddress = sqimap_get_user_server($imapServerAddress, $username); +$imap_stream = sqimap_create_stream($imapServerAddress, $imapPort, $use_imap_tls); if ($imap_stream) { - // SUPRESS HOST NAME - $list = explode(' ', $server_info); - $list[2] = '[HIDDEN]'; - $server_info = implode(' ', $list); - $body .= " Server info: $server_info"; - fputs ($imap_stream, "a001 CAPABILITY\r\n"); - $read = fgets($imap_stream, 1024); - $list = explode(' ', $read); - array_shift($list); - array_shift($list); - $read = implode(' ', $list); - $body .= " Capabilities: $read"; - fputs ($imap_stream, "a002 LOGOUT\r\n"); - fclose($imap_stream); + $body.= ' Capabilities: '; + if ($imap_capabilities = sqimap_capability($imap_stream)) { + foreach ($imap_capabilities as $capability => $value) { + $body.= $capability . (is_bool($value) ? ' ' : "=$value "); + } + } + $body.="\n"; + sqimap_logout($imap_stream); } else { $body .= " Unable to connect to IMAP server to get information.\n"; $warning = 1;