Small cleanup of code for CTCPs over DCC CHAT

This commit is contained in:
Kevin Easton
2017-06-07 00:06:21 +10:00
parent 0a16ab16ac
commit 529b1e0aa0

View File

@@ -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);