mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-01 07:16:38 +02:00
- Changed NOSPOOF msg in ./Config a bit since this can also be effective against
"blind proxies" (like HTTP POST proxies). - WebTV updates: made it so (user generated) channel notices are now displayed as privmsgs in the channel. Also made the /knock channelnotice a privmsg for webtv.
This commit is contained in:
@@ -2743,3 +2743,7 @@ seen. gmtime warning still there
|
||||
random numbers. We will also no longer be using rand()/random() anywhere.
|
||||
Thanks to dek\ for pointing out this is potentionally dangerous, especially on
|
||||
win32 with NOSPOOF enabled.
|
||||
- Changed NOSPOOF msg in ./Config a bit since this can also be effective against
|
||||
"blind proxies" (like HTTP POST proxies).
|
||||
- WebTV updates: made it so (user generated) channel notices are now displayed as
|
||||
privmsgs in the channel. Also made the /knock channelnotice a privmsg for webtv.
|
||||
|
||||
@@ -163,11 +163,10 @@ while [ -z "$TEST" ] ; do
|
||||
echo "Many older operating systems have an insecure TCP/IP stack"
|
||||
echo "which may be vulnerable to IP spoofing attacks, if you run"
|
||||
echo "an operating system that is vulnerable to such attacks"
|
||||
echo "enable this option. If you aren't sure if your OS is vulnerable"
|
||||
echo "you should still enable it."
|
||||
echo "enable this option. This option can also be useful to prevent"
|
||||
echo "blind proxies from connecting (eg: HTTP POST proxies)."
|
||||
echo ""
|
||||
echo "Do you have an insecure operating system and therefore want to"
|
||||
echo "use the server anti-spoof protection?"
|
||||
echo "Do you want to enable the server anti-spoof protection?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
|
||||
+8
-6
@@ -5469,7 +5469,8 @@ void send_user_joins(aClient *cptr, aClient *user)
|
||||
CMD_FUNC(m_knock)
|
||||
{
|
||||
aChannel *chptr;
|
||||
|
||||
char buf[1024], chbuf[CHANNELLEN + 8];
|
||||
|
||||
if (IsServer(sptr))
|
||||
return 0;
|
||||
|
||||
@@ -5543,11 +5544,12 @@ CMD_FUNC(m_knock)
|
||||
return 0;
|
||||
}
|
||||
|
||||
sendto_channelprefix_butone(NULL, &me, chptr, PREFIX_OP|PREFIX_ADMIN|PREFIX_OWNER,
|
||||
":%s NOTICE " CHANOPPFX "%s :[Knock] by %s!%s@%s (%s) ",
|
||||
me.name, chptr->chname, sptr->name,
|
||||
sptr->user->username, GetHost(sptr),
|
||||
parv[2] ? parv[2] : "no reason specified");
|
||||
ircsprintf(chbuf, "%s%s", CHANOPPFX, chptr->chname);
|
||||
ircsprintf(buf, "[Knock] by %s!%s@%s (%s)",
|
||||
sptr->name, sptr->user->username, GetHost(sptr),
|
||||
parv[2] ? parv[2] : "no reason specified");
|
||||
sendto_channelprefix_butone_tok(NULL, &me, chptr, PREFIX_OP|PREFIX_ADMIN|PREFIX_OWNER,
|
||||
MSG_NOTICE, TOK_NOTICE, chbuf, buf, 0);
|
||||
|
||||
sendto_one(sptr, ":%s %s %s :Knocked on %s", me.name, IsWebTV(sptr) ? "PRIVMSG" : "NOTICE",
|
||||
sptr->name, chptr->chname);
|
||||
|
||||
+23
-2
@@ -56,6 +56,7 @@ static char sendbuf[2048];
|
||||
static char tcmd[2048];
|
||||
static char ccmd[2048];
|
||||
static char xcmd[2048];
|
||||
static char wcmd[2048];
|
||||
|
||||
/* this array is used to ensure we send a msg only once to a remote
|
||||
** server. like, when we are sending a message to all channel members
|
||||
@@ -468,16 +469,20 @@ void sendto_channelprefix_butone_tok(aClient *one, aClient *from, aChannel *chpt
|
||||
aClient *acptr;
|
||||
int i;
|
||||
char is_ctcp = 0;
|
||||
unsigned int tlen, clen, xlen;
|
||||
unsigned int tlen, clen, xlen, wlen = 0;
|
||||
char *p;
|
||||
|
||||
/* For servers with token capability */
|
||||
p = ircsprintf(tcmd, ":%s %s %s :%s", from->name, tok, nick, text);
|
||||
tlen = (int)(p - tcmd);
|
||||
ADD_CRLF(tcmd, tlen);
|
||||
|
||||
/* For dumb servers without tokens */
|
||||
p = ircsprintf(ccmd, ":%s %s %s :%s", from->name, cmd, nick, text);
|
||||
clen = (int)(p - ccmd);
|
||||
ADD_CRLF(ccmd, clen);
|
||||
|
||||
/* For our users... */
|
||||
if (IsPerson(from))
|
||||
p = ircsprintf(xcmd, ":%s!%s@%s %s %s :%s",
|
||||
from->name, from->user->username, GetHost(from), cmd, nick, text);
|
||||
@@ -486,6 +491,19 @@ void sendto_channelprefix_butone_tok(aClient *one, aClient *from, aChannel *chpt
|
||||
xlen = (int)(p - xcmd);
|
||||
ADD_CRLF(xcmd, xlen);
|
||||
|
||||
/* For our webtv friends... */
|
||||
if (!strcmp(cmd, "NOTICE"))
|
||||
{
|
||||
char *chan = strchr(nick, '#'); /* impossible to become NULL? */
|
||||
if (IsPerson(from))
|
||||
p = ircsprintf(wcmd, ":%s!%s@%s %s %s :%s",
|
||||
from->name, from->user->username, GetHost(from), MSG_PRIVATE, chan, text);
|
||||
else
|
||||
p = ircsprintf(wcmd, ":%s %s %s :%s", from->name, MSG_PRIVATE, chan, text);
|
||||
wlen = (int)(p - wcmd);
|
||||
ADD_CRLF(wcmd, wlen);
|
||||
}
|
||||
|
||||
if (do_send_check && *text == 1 && myncmp(text+1,"ACTION ",7) && myncmp(text+1,"DCC ",4))
|
||||
is_ctcp = 1;
|
||||
|
||||
@@ -522,7 +540,10 @@ void sendto_channelprefix_butone_tok(aClient *one, aClient *from, aChannel *chpt
|
||||
if (IsNoCTCP(acptr) && !IsOper(from) && is_ctcp)
|
||||
continue;
|
||||
|
||||
sendbufto_one(acptr, xcmd, xlen);
|
||||
if (IsWebTV(acptr) && wlen)
|
||||
sendbufto_one(acptr, wcmd, wlen);
|
||||
else
|
||||
sendbufto_one(acptr, xcmd, xlen);
|
||||
sentalong[i] = sentalong_marker;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user