diff --git a/modules/data/webadmin/tmpl/add_edit_network.tmpl b/modules/data/webadmin/tmpl/add_edit_network.tmpl index 7cbf345c..44a7509b 100644 --- a/modules/data/webadmin/tmpl/add_edit_network.tmpl +++ b/modules/data/webadmin/tmpl/add_edit_network.tmpl @@ -80,6 +80,14 @@
One server per line, "host [[+]port] [password]", + means SSL +
+
Trusted SSL fingerprints of this IRC network:
+
+
When these certificates are encountered, checks for hostname, expiration date, CA are skipped +
+
Flood protection:
diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index c1f4af87..ea75d50c 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -871,6 +871,10 @@ public: l["InConfig"] = "true"; } } + for (const CString& sFP : pNetwork->GetTrustedFingerprints()) { + CTemplate& l = Tmpl.AddRow("TrustedFingerprints"); + l["FP"] = sFP; + } } else { if (!spSession->IsAdmin() && !pUser->HasSpaceForNewNetwork()) { WebSock.PrintErrorPage("Network number limit reached. Ask an admin to increase the limit for you, or delete unneeded networks from Your Settings."); @@ -1018,6 +1022,14 @@ public: pNetwork->AddServer(vsArgs[a].Trim_n()); } + WebSock.GetRawParam("fingerprints").Split("\n", vsArgs); + while (!pNetwork->GetTrustedFingerprints().empty()) { + pNetwork->DelTrustedFingerprint(*pNetwork->GetTrustedFingerprints().begin()); + } + for (const CString& sFP : vsArgs) { + pNetwork->AddTrustedFingerprint(sFP); + } + WebSock.GetParamValues("channel", vsArgs); for (unsigned int a = 0; a < vsArgs.size(); a++) { const CString& sChan = vsArgs[a];