Automated merge with http://hg.atheme.org/charybdis
This commit is contained in:
commit
69a367da50
4 changed files with 17 additions and 8 deletions
|
@ -38,7 +38,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _XOPEN_SOURCE
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
|
@ -639,12 +639,15 @@ ms_sjoin(struct Client *client_p, struct Client *source_p, int parc, const char
|
||||||
{
|
{
|
||||||
/* If configured, kick people trying to join +i/+k
|
/* If configured, kick people trying to join +i/+k
|
||||||
* channels by recreating them on split servers.
|
* channels by recreating them on split servers.
|
||||||
* Don't kick if the source has sent EOB (services
|
* If the source has sent EOB, assume this is some
|
||||||
* deopping everyone by TS-1 SJOIN).
|
* sort of hack by services. If cmode +i is set,
|
||||||
|
* services can send kicks if needed; if the key
|
||||||
|
* differs, services cannot kick in a race-free
|
||||||
|
* manner so do so here.
|
||||||
* -- jilles */
|
* -- jilles */
|
||||||
if (ConfigChannel.kick_on_split_riding &&
|
if (ConfigChannel.kick_on_split_riding &&
|
||||||
!HasSentEob(source_p) &&
|
((!HasSentEob(source_p) &&
|
||||||
((mode.mode & MODE_INVITEONLY) ||
|
mode.mode & MODE_INVITEONLY) ||
|
||||||
(mode.key[0] != 0 && irccmp(mode.key, oldmode->key) != 0)))
|
(mode.key[0] != 0 && irccmp(mode.key, oldmode->key) != 0)))
|
||||||
{
|
{
|
||||||
struct membership *msptr;
|
struct membership *msptr;
|
||||||
|
|
|
@ -106,8 +106,15 @@ mr_authenticate(struct Client *client_p, struct Client *source_p,
|
||||||
agent_p = find_id(source_p->preClient->sasl_agent);
|
agent_p = find_id(source_p->preClient->sasl_agent);
|
||||||
|
|
||||||
if(agent_p == NULL)
|
if(agent_p == NULL)
|
||||||
sendto_server(NULL, NULL, CAP_TS6|CAP_ENCAP, NOCAPS, ":%s ENCAP * SASL %s * S %s", me.id,
|
{
|
||||||
source_p->id, parv[1]);
|
if (!strcmp(parv[1], "EXTERNAL") && source_p->certfp != NULL)
|
||||||
|
sendto_server(NULL, NULL, CAP_TS6|CAP_ENCAP, NOCAPS, ":%s ENCAP * SASL %s * S %s %s", me.id,
|
||||||
|
source_p->id, parv[1],
|
||||||
|
source_p->certfp);
|
||||||
|
else
|
||||||
|
sendto_server(NULL, NULL, CAP_TS6|CAP_ENCAP, NOCAPS, ":%s ENCAP * SASL %s * S %s", me.id,
|
||||||
|
source_p->id, parv[1]);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
sendto_one(agent_p, ":%s ENCAP %s SASL %s %s C %s", me.id, agent_p->servptr->name,
|
sendto_one(agent_p, ":%s ENCAP %s SASL %s %s C %s", me.id, agent_p->servptr->name,
|
||||||
source_p->id, agent_p->id, parv[1]);
|
source_p->id, agent_p->id, parv[1]);
|
||||||
|
|
|
@ -684,7 +684,7 @@ const unsigned int CharAttrs[] = {
|
||||||
/* 26 */ CNTRL_C | CHAN_C | NONEOS_C,
|
/* 26 */ CNTRL_C | CHAN_C | NONEOS_C,
|
||||||
/* 27 */ CNTRL_C | CHAN_C | NONEOS_C,
|
/* 27 */ CNTRL_C | CHAN_C | NONEOS_C,
|
||||||
/* 28 */ CNTRL_C | CHAN_C | NONEOS_C,
|
/* 28 */ CNTRL_C | CHAN_C | NONEOS_C,
|
||||||
/* 29 */ CNTRL_C | CHAN_C | NONEOS_C,
|
/* 29 */ CNTRL_C | CHAN_C | FCHAN_C | NONEOS_C,
|
||||||
/* 30 */ CNTRL_C | CHAN_C | NONEOS_C,
|
/* 30 */ CNTRL_C | CHAN_C | NONEOS_C,
|
||||||
/* 31 */ CNTRL_C | CHAN_C | FCHAN_C | NONEOS_C,
|
/* 31 */ CNTRL_C | CHAN_C | FCHAN_C | NONEOS_C,
|
||||||
/* SP */ PRINT_C | SPACE_C,
|
/* SP */ PRINT_C | SPACE_C,
|
||||||
|
|
Loading…
Reference in a new issue