From a4d967a463db587ac23eebee7b2208517ccd9734 Mon Sep 17 00:00:00 2001
From: martinlanghoff <martinlanghoff>
Date: Thu, 18 Jan 2007 02:56:06 +0000
Subject: [PATCH] mnet: try to stop trailing slashes in urls from getting
 through, better error msg if we dont like the SSL cert

---
 admin/mnet/peers.php | 10 +++++++++-
 mnet/lib.php         |  3 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/admin/mnet/peers.php b/admin/mnet/peers.php
index 05940da456..15c8ddbf78 100644
--- a/admin/mnet/peers.php
+++ b/admin/mnet/peers.php
@@ -47,6 +47,10 @@ if (!isset($CFG->mnet_dispatcher_mode)) set_config('mnet_dispatcher_mode', 'off'
 /// If data submitted, process and store
 if (($form = data_submitted()) && confirm_sesskey()) {
 
+    if (!empty($form->wwwroot)) {
+        // ensure we remove trailing slashes
+        $form->wwwroot = preg_replace(':/$:', '', $form->wwwroot);
+    }
     if (!empty($form->updateregisterall)) {
         if (!empty($form->registerallhosts)) {
             set_config('mnet_register_allhosts',1);
@@ -93,7 +97,11 @@ if (($form = data_submitted()) && confirm_sesskey()) {
                 $mnet_peer->public_key_expires   = $mnet_peer->check_common_name($form->public_key);
                 if ($mnet_peer->public_key_expires == false) {
                     $mnet_peer->public_key == $oldkey;
-                    error(get_string("invalidpubkey", 'mnet'),'peers.php?step=update&amp;hostid='.$mnet_peer->id);
+                    $errmsg = '<br />';
+                    foreach ($mnet_peer->error as $err) {
+                        $errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
+                    }
+                    error(get_string("invalidpubkey", 'mnet') . $errmsg ,'peers.php?step=update&amp;hostid='.$mnet_peer->id);
                     exit;
                 }
             }
diff --git a/mnet/lib.php b/mnet/lib.php
index 55f5d33291..61c9849f2a 100644
--- a/mnet/lib.php
+++ b/mnet/lib.php
@@ -309,6 +309,9 @@ function mnet_generate_keypair($dn = null, $days=28) {
         );
     }
 
+    // ensure we remove trailing slashes
+    $dn["commonName"] = preg_replace(':/$:', '', $dn["commonName"]);
+
     $new_key = openssl_pkey_new();
     $csr_rsc = openssl_csr_new($dn, $new_key, array('private_key_bits',2048));
     $selfSignedCert = openssl_csr_sign($csr_rsc, null, $new_key, $days);
-- 
2.39.5