]> jfr.im git - solanum.git/blobdiff - modules/m_sasl.c
reference.conf: add drain_reason
[solanum.git] / modules / m_sasl.c
index 3e0c06abbe8e89ef6609e33475c831c649e4eecd..e4e874357d00bc7943e60694f312cd568e3f11ff 100644 (file)
@@ -106,7 +106,12 @@ sasl_data(struct Client *client_p)
 static struct ClientCapability capdata_sasl = {
        .visible = sasl_visible,
        .data = sasl_data,
-       .flags = CLICAP_FLAGS_STICKY,
+       .flags = CLICAP_FLAGS_STICKY | CLICAP_FLAGS_PRIORITY,
+};
+
+mapi_cap_list_av2 sasl_cap_list[] = {
+       { MAPI_CAP_CLIENT, "sasl", &capdata_sasl, &CLICAP_SASL },
+       { 0, NULL, NULL, NULL },
 };
 
 static int
@@ -115,7 +120,6 @@ _modinit(void)
        memset(mechlist_buf, 0, sizeof mechlist_buf);
        sasl_agent_present = false;
 
-       CLICAP_SASL = capability_put(cli_capindex, "sasl", &capdata_sasl);
        advertise_sasl_config(NULL);
        return 0;
 }
@@ -124,10 +128,9 @@ static void
 _moddeinit(void)
 {
        advertise_sasl_cap(false);
-       capability_orphan(cli_capindex, "sasl");
 }
 
-DECLARE_MODULE_AV2(sasl, _modinit, _moddeinit, sasl_clist, NULL, sasl_hfnlist, NULL, NULL, sasl_desc);
+DECLARE_MODULE_AV2(sasl, _modinit, _moddeinit, sasl_clist, NULL, sasl_hfnlist, sasl_cap_list, NULL, sasl_desc);
 
 static void
 m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p,
@@ -199,7 +202,7 @@ m_authenticate(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *
                sendto_one(saslserv_p, ":%s ENCAP %s SASL %s %s H %s %s %c",
                                        me.id, saslserv_p->servptr->name, source_p->id, saslserv_p->id,
                                        source_p->host, source_p->sockhost,
-                                       IsSSL(source_p) ? 'S' : 'P');
+                                       IsSecure(source_p) ? 'S' : 'P');
 
                if (source_p->certfp != NULL)
                        sendto_one(saslserv_p, ":%s ENCAP %s SASL %s %s S %s %s",