summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm')
-rw-r--r--comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm41
1 files changed, 41 insertions, 0 deletions
diff --git a/comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm b/comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm
new file mode 100644
index 0000000000..c9d84f2d99
--- /dev/null
+++ b/comm/mailnews/addrbook/modules/LDAPProtocolHandler.jsm
@@ -0,0 +1,41 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+var EXPORTED_SYMBOLS = ["LDAPProtocolHandler", "LDAPSProtocolHandler"];
+
+/**
+ * @implements {nsIProtocolHandler}
+ */
+class LDAPProtocolHandler {
+ QueryInterface = ChromeUtils.generateQI(["nsIProtocolHandler"]);
+
+ scheme = "ldap";
+
+ newChannel(aURI, aLoadInfo) {
+ let channel = Cc["@mozilla.org/network/ldap-channel;1"].createInstance(
+ Ci.nsIChannel
+ );
+ channel.init(aURI);
+ channel.loadInfo = aLoadInfo;
+ return channel;
+ }
+
+ allowPort(port, scheme) {
+ return port == 389;
+ }
+}
+LDAPProtocolHandler.prototype.classID = Components.ID(
+ "{b3de9249-b0e5-4c12-8d91-c9a434fd80f5}"
+);
+
+class LDAPSProtocolHandler extends LDAPProtocolHandler {
+ scheme = "ldaps";
+
+ allowPort(port, scheme) {
+ return port == 636;
+ }
+}
+LDAPSProtocolHandler.prototype.classID = Components.ID(
+ "{c85a5ef2-9c56-445f-b029-76889f2dd29b}"
+);