Small cleanup of code for CTCPs over DCC CHAT
This commit is contained in:
34
source/dcc.c
34
source/dcc.c
@@ -763,6 +763,10 @@ void (*func)(int) = process_dcc_chat;
|
|||||||
reset_display_target();
|
reset_display_target();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Magic tags used to send CTCPs (except for ACTION) over DCC CHAT */
|
||||||
|
#define DCC_CTCP_MESSAGE "CTCP_MESSAGE "
|
||||||
|
#define DCC_CTCP_REPLY "CTCP_REPLY "
|
||||||
|
|
||||||
static void process_dcc_chat(int s)
|
static void process_dcc_chat(int s)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -852,31 +856,25 @@ SocketList *sl;
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#undef CTCP_REPLY
|
|
||||||
#define CTCP_MESSAGE "CTCP_MESSAGE "
|
|
||||||
#define CTCP_MESSAGE_LEN strlen(CTCP_MESSAGE)
|
|
||||||
#define CTCP_REPLY "CTCP_REPLY "
|
|
||||||
#define CTCP_REPLY_LEN strlen(CTCP_REPLY)
|
|
||||||
|
|
||||||
equal_nickname = alloca(strlen(nick) + 10);
|
equal_nickname = alloca(strlen(nick) + 10);
|
||||||
*equal_nickname = 0;
|
*equal_nickname = 0;
|
||||||
strmopencat(equal_nickname, strlen(nick)+4, "=", nick, NULL);
|
strmopencat(equal_nickname, strlen(nick)+4, "=", nick, NULL);
|
||||||
|
|
||||||
|
if (strbegins(tmp, DCC_CTCP_MESSAGE) || strbegins(tmp, CTCP_DELIM_STR "ACTION"))
|
||||||
if (strbegins(tmp, CTCP_MESSAGE) ||
|
|
||||||
(*tmp == CTCP_DELIM_CHAR && strbegins(tmp+1, "ACTION")))
|
|
||||||
{
|
{
|
||||||
char *tmp2;
|
char *tmp2 = LOCAL_COPY(tmp);
|
||||||
tmp2 = LOCAL_COPY(tmp);
|
if (*tmp2 != CTCP_DELIM_CHAR)
|
||||||
strcpy(tmp, do_ctcp(equal_nickname, get_server_nickname(from_server), stripansicodes((tmp2 + ((*tmp2 == CTCP_DELIM_CHAR) ? 0 : CTCP_MESSAGE_LEN)) ) ));
|
tmp2 += strlen(DCC_CTCP_MESSAGE);
|
||||||
|
strlcpy(tmp, do_ctcp(equal_nickname, get_server_nickname(from_server), stripansicodes(tmp2)), sizeof tmp);
|
||||||
if (!*tmp)
|
if (!*tmp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (strbegins(tmp, CTCP_REPLY) || *tmp == CTCP_DELIM_CHAR)
|
else if (strbegins(tmp, DCC_CTCP_REPLY) || *tmp == CTCP_DELIM_CHAR)
|
||||||
{
|
{
|
||||||
char *tmp2;
|
char *tmp2 = LOCAL_COPY(tmp);
|
||||||
tmp2 = LOCAL_COPY(tmp);
|
if (*tmp2 != CTCP_DELIM_CHAR)
|
||||||
strcpy(tmp, do_notice_ctcp(equal_nickname, get_server_nickname(from_server), stripansicodes(tmp2 + (((*tmp2 == CTCP_DELIM_CHAR) ? 0 : CTCP_REPLY_LEN)))));
|
tmp2 += strlen(DCC_CTCP_REPLY);
|
||||||
|
strlcpy(tmp, do_notice_ctcp(equal_nickname, get_server_nickname(from_server), stripansicodes(tmp2)), sizeof tmp);
|
||||||
if (!*tmp)
|
if (!*tmp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1003,9 +1001,9 @@ char thing = 0;
|
|||||||
if (cmd && *text == CTCP_DELIM_CHAR && !strbegins(text+1, "ACTION"))
|
if (cmd && *text == CTCP_DELIM_CHAR && !strbegins(text+1, "ACTION"))
|
||||||
{
|
{
|
||||||
if (!strcmp(cmd, "PRIVMSG"))
|
if (!strcmp(cmd, "PRIVMSG"))
|
||||||
strlcpy(tmp, "CTCP_MESSAGE ", sizeof tmp);
|
strlcpy(tmp, DCC_CTCP_MESSAGE, sizeof tmp);
|
||||||
else
|
else
|
||||||
strlcpy(tmp, "CTCP_REPLY ", sizeof tmp);
|
strlcpy(tmp, DCC_CTCP_REPLY, sizeof tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
strmcat(tmp, text, n->blocksize-3);
|
strmcat(tmp, text, n->blocksize-3);
|
||||||
|
|||||||
Reference in New Issue
Block a user