mirror of
https://github.com/matrix-construct/construct
synced 2025-02-18 09:40:12 +01:00
m_cap: do not allow sasl CAP when the agent is offline
This commit is contained in:
parent
9f09e25b63
commit
bbce62d2aa
1 changed files with 31 additions and 0 deletions
|
@ -42,6 +42,7 @@
|
||||||
#include "s_serv.h"
|
#include "s_serv.h"
|
||||||
#include "s_user.h"
|
#include "s_user.h"
|
||||||
#include "send.h"
|
#include "send.h"
|
||||||
|
#include "s_conf.h"
|
||||||
|
|
||||||
typedef int (*bqcmp)(const void *, const void *);
|
typedef int (*bqcmp)(const void *, const void *);
|
||||||
|
|
||||||
|
@ -210,6 +211,18 @@ clicap_generate(struct Client *source_p, const char *subcmd, int flags, int clea
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (clicap_list[i].cap_serv == CLICAP_SASL)
|
||||||
|
{
|
||||||
|
struct Client *agent_p = NULL;
|
||||||
|
|
||||||
|
if (!ConfigFileEntry.sasl_service)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
agent_p = find_named_client(ConfigFileEntry.sasl_service);
|
||||||
|
if (agent_p == NULL || !IsService(agent_p))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/* \r\n\0, possible "-~=", space, " *" */
|
/* \r\n\0, possible "-~=", space, " *" */
|
||||||
if(buflen + clicap_list[i].namelen >= BUFSIZE - 10)
|
if(buflen + clicap_list[i].namelen >= BUFSIZE - 10)
|
||||||
{
|
{
|
||||||
|
@ -411,6 +424,24 @@ cap_req(struct Client *source_p, const char *arg)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cap->cap_serv == CLICAP_SASL)
|
||||||
|
{
|
||||||
|
struct Client *agent_p = NULL;
|
||||||
|
|
||||||
|
if (!ConfigFileEntry.sasl_service)
|
||||||
|
{
|
||||||
|
finished = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
agent_p = find_named_client(ConfigFileEntry.sasl_service);
|
||||||
|
if (agent_p == NULL || !IsService(agent_p))
|
||||||
|
{
|
||||||
|
finished = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(cap->flags & CLICAP_FLAGS_STICKY)
|
if(cap->flags & CLICAP_FLAGS_STICKY)
|
||||||
{
|
{
|
||||||
strcat(pbuf[i], "=");
|
strcat(pbuf[i], "=");
|
||||||
|
|
Loading…
Add table
Reference in a new issue