? aa-notices-388564-7.patch
? fix-notices-388564-4.patch
? fix-notices-388564-5.patch
? fixup-398398-7.patch
? optional-peer-verify-422050-1.patch
? optional-peer-verify-422050-2.patch
Index: acquia_agent/acquia_agent.pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/acquia_connector/acquia_agent/acquia_agent.pages.inc,v
retrieving revision 1.4
diff -u -p -r1.4 acquia_agent.pages.inc
--- acquia_agent/acquia_agent.pages.inc	23 Mar 2009 16:12:57 -0000	1.4
+++ acquia_agent/acquia_agent.pages.inc	2 Apr 2009 19:36:52 -0000
@@ -37,11 +37,39 @@ function acquia_agent_settings_page() {
     $link .= "<p>". l($title, $subscription['href']) ."</p>\n";
   }
 
-  return $link . drupal_get_form('acquia_agent_settings_form', $change);
+  $output = $link . drupal_get_form('acquia_agent_settings_form', $change);
+  $output .= drupal_get_form('acquia_agent_communication_form');
+  return $output;
+}
+
+/**
+ * Settings form builder function.
+ */
+function acquia_agent_communication_form($form_state) {
+  $ssl_available = (in_array('ssl', stream_get_transports(), TRUE) && !defined('ACQUIA_DEVELOPMENT_NOSSL'));
+
+  $form['acquia_agent_verify_peer'] = array(
+    '#type' => 'radios',
+    '#title' => t('Enhanced SSL security'),
+    '#default_value' => variable_get('acquia_agent_verify_peer', 0),
+    '#options' => array(0 => t('Disabled'), 1 => t('Enabled')),
+    '#description' => t('If enabled the Acquia Connector will attempty to verify server identities before sending data.  May cause communication to fail, however, depending on your local configuration. Requires SSL support in PHP.'),
+    '#disabled' => !$ssl_available,
+
+  );
+
+  if ($ssl_available) {
+    $form['acquia_agent_verify_peer']['#description'] .= ' <div class="ok">'. t('Your server has SSL support and may support this feature.') .'</div>';
+  }
+  else {
+    $form['acquia_agent_verify_peer']['#description'] .= ' <div class="error">'. t('Your server does not have SSL support.') .'</div>';
+  }
+
+  return system_settings_form($form);
 }
 
 /**
- * Settings form menu callback.
+ * Settings form builder function.
  */
 function acquia_agent_settings_form($form_state, $change = FALSE) {
   $identifier = acquia_agent_settings('acquia_identifier');
Index: acquia_agent/acquia_agent_streams.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/acquia_connector/acquia_agent/acquia_agent_streams.inc,v
retrieving revision 1.2
diff -u -p -r1.2 acquia_agent_streams.inc
--- acquia_agent/acquia_agent_streams.inc	20 Jan 2009 18:24:28 -0000	1.2
+++ acquia_agent/acquia_agent_streams.inc	2 Apr 2009 19:36:52 -0000
@@ -65,7 +65,7 @@ function _acquia_agent_xmlrpc() {
 function acquia_agent_stream_context_create($url, $module = 'acquia_agent') {
   $opts = array();
   $uri = parse_url($url);
-  if ($uri['scheme'] == 'https') {
+  if (isset($uri['scheme']) && ($uri['scheme'] == 'https') && variable_get('acquia_agent_verify_peer', 0)) {
     // Look for a local certificate to validate the server identity.
     $pem_file = drupal_get_path('module', $module) .'/'. $uri['host'] . '.pem';
     if (file_exists($pem_file)) {
