Index: includes/xmlrpc.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/xmlrpc.inc,v retrieving revision 1.40 diff -u -p -r1.40 xmlrpc.inc --- includes/xmlrpc.inc 18 Apr 2007 20:35:45 -0000 1.40 +++ includes/xmlrpc.inc 27 Jun 2007 00:01:48 -0000 @@ -257,7 +257,7 @@ function xmlrpc_message_tag_close($parse case 'value': // If no type is indicated, the type is string // We take special care for empty values - if (trim($xmlrpc_message->current_tag_contents) != '' || $xmlrpc_message->last_open == 'value') { + if (trim($xmlrpc_message->current_tag_contents) != '' || (isset($xmlrpc_message->last_open) && $xmlrpc_message->last_open == 'value')) { $value = (string)$xmlrpc_message->current_tag_contents; $value_flag = TRUE; } Index: includes/xmlrpcs.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/xmlrpcs.inc,v retrieving revision 1.21 diff -u -p -r1.21 xmlrpcs.inc --- includes/xmlrpcs.inc 5 Jul 2006 11:45:51 -0000 1.21 +++ includes/xmlrpcs.inc 27 Jun 2007 00:01:48 -0000 @@ -67,7 +67,7 @@ function xmlrpc_server($callbacks) { xmlrpc_server_set($xmlrpc_server); $result = xmlrpc_server_call($xmlrpc_server, $xmlrpc_server->message->methodname, $xmlrpc_server->message->params); - if ($result->is_error) { + if (isset($result->is_error) && $result->is_error) { xmlrpc_server_error($result); } // Encode the result @@ -315,4 +315,4 @@ function xmlrpc_server_method_signature( function xmlrpc_server_method_help($method) { $xmlrpc_server = xmlrpc_server_get(); return $xmlrpc_server->help[$method]; -} \ No newline at end of file +} Index: modules/drupal/drupal.install =================================================================== RCS file: /cvs/drupal/drupal/modules/drupal/drupal.install,v retrieving revision 1.6 diff -u -p -r1.6 drupal.install --- modules/drupal/drupal.install 25 May 2007 12:46:44 -0000 1.6 +++ modules/drupal/drupal.install 27 Jun 2007 00:01:48 -0000 @@ -26,3 +26,14 @@ function drupal_uninstall() { variable_del('drupal_default_da_server'); variable_del('drupal_default_da_server_only'); } + +/** + * Add PHP and database version information. + */ +function drupal_update_6000() { + $ret = array(); + db_add_field($ret, 'client', 'php_version', array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => '')); + db_add_field($ret, 'client', 'db_type', array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => '')); + db_add_field($ret, 'client', 'db_version', array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => '')); + return $ret; +} Index: modules/drupal/drupal.module =================================================================== RCS file: /cvs/drupal/drupal/modules/drupal/drupal.module,v retrieving revision 1.146 diff -u -p -r1.146 drupal.module --- modules/drupal/drupal.module 15 Jun 2007 06:53:26 -0000 1.146 +++ modules/drupal/drupal.module 27 Jun 2007 00:01:48 -0000 @@ -255,10 +255,10 @@ function drupal_client_ping($client, $sy $record = db_fetch_object($result); $client['cid'] = $record->cid; // We have an existing record. - db_query("UPDATE {client} SET link = '%s', name = '%s', mail = '%s', slogan = '%s', mission = '%s', users = %d, nodes = %d, version = '%s', changed = '%s' WHERE cid = %d", $client['uid'], $client['link'], $client['name'], $client['mail'], $client['slogan'], $client['mission'], $client['users'], $client['nodes'], $client['version'], time(), $client['cid']); + db_query("UPDATE {client} SET link = '%s', name = '%s', mail = '%s', slogan = '%s', mission = '%s', users = %d, nodes = %d, version = '%s', changed = %d, php_version = '%s', db_type = '%s', db_version = '%s' WHERE cid = %d", $client['link'], $client['name'], $client['mail'], $client['slogan'], $client['mission'], $client['users'], $client['nodes'], $client['version'], time(), $client['php_version'], $client['db_type'], $client['db_version'], $client['cid']); } else { - db_query("INSERT INTO {client} (link, name, mail, slogan, mission, users, nodes, version, created, changed) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $client['link'], $client['name'], $client['mail'], $client['slogan'], $client['mission'], $client['users'], $client['nodes'], $client['version'], time(), time()); + db_query("INSERT INTO {client} (link, name, mail, slogan, mission, users, nodes, version, created, changed, php_version, db_type, db_version) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s')", $client['link'], $client['name'], $client['mail'], $client['slogan'], $client['mission'], $client['users'], $client['nodes'], $client['version'], time(), time(), $client['php_version'], $client['db_type'], $client['db_version']); $client['cid'] = db_last_insert_id('client', 'cid'); } if (is_array($system)) { @@ -337,14 +337,17 @@ function drupal_xmlrpc() { * Sends a ping to the Drupal directory server. */ function drupal_notify($server) { - global $base_url; + global $base_url, $db_type; $client = array( 'link' => $base_url, 'name' => variable_get('site_name', ''), 'mail' => variable_get('site_mail', ''), 'slogan' => variable_get('site_slogan', ''), 'mission' => variable_get('site_mission', ''), - 'version' => VERSION + 'version' => VERSION, + 'php_version' => phpversion(), + 'db_type' => $db_type, + 'db_version' => db_version(), ); if (variable_get('drupal_system', 0)) { $system = array(); Index: modules/drupal/drupal.schema =================================================================== RCS file: /cvs/drupal/drupal/modules/drupal/drupal.schema,v retrieving revision 1.1 diff -u -p -r1.1 drupal.schema --- modules/drupal/drupal.schema 25 May 2007 12:46:44 -0000 1.1 +++ modules/drupal/drupal.schema 27 Jun 2007 00:01:48 -0000 @@ -4,17 +4,20 @@ function drupal_schema() { $schema['client'] = array( 'fields' => array( - 'cid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE), - 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), - 'name' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''), - 'mail' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''), - 'slogan' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), - 'mission' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), - 'users' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), - 'nodes' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), - 'version' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''), - 'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), - 'changed' => array('type' => 'int', 'not null' => TRUE, 'default' => 0) + 'cid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE), + 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''), + 'name' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''), + 'mail' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''), + 'slogan' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'mission' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'), + 'users' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'nodes' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'version' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''), + 'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'changed' => array('type' => 'int', 'not null' => TRUE, 'default' => 0), + 'php_version' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''), + 'db_type' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''), + 'db_version' => array('type' => 'varchar', 'length' => 35, 'not null' => TRUE, 'default' => ''), ), 'primary key' => array('cid'), );