projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'development'
[NeonServV5.git]
/
src
/
IRCParser.c
diff --git
a/src/IRCParser.c
b/src/IRCParser.c
index d9a707f63d024576c02c2a5bdc1cef516ed1515e..701ad457b54d592ecae6b15c02d9d110916e2a88 100644
(file)
--- a/
src/IRCParser.c
+++ b/
src/IRCParser.c
@@
-113,7
+113,7
@@
static void parse_raw(struct ClientSocket *client, char *from, char *cmd, char *
if(!irc_cmd) {
event_raw(client, from, cmd, argv, argc);
} else if(!ret) {
if(!irc_cmd) {
event_raw(client, from, cmd, argv, argc);
} else if(!ret) {
- printf_log("main", LOG_WARNING | LOG_IRCRAW, "PARSE ERROR: %s
\n", cmd
);
+ printf_log("main", LOG_WARNING | LOG_IRCRAW, "PARSE ERROR: %s
%s %s\n", (from ? from : "*"), cmd, merge_argv(argv, 0, argc)
);
}
}
}
}
@@
-481,7
+481,8
@@
static IRC_CMD(raw_kick) {
chanuser->visCount--;
if(chanuser->visCount == 0) {
delChanUser(chanuser, 0); //not free, yet!
chanuser->visCount--;
if(chanuser->visCount == 0) {
delChanUser(chanuser, 0); //not free, yet!
- event_kick(user, chanuser, argv[2]);
+ if(user)
+ event_kick(user, chanuser, argv[2]);
freeChanUser(chanuser);
}
freeChanUser(chanuser);
}
@@
-556,6
+557,7
@@
static IRC_CMD(raw_quit) {
if(user->channel == NULL) {
if(isBot(user)) {
//ASSERT
if(user->channel == NULL) {
if(isBot(user)) {
//ASSERT
+ DESYNCHRONIZE(cache_sync);
return 0;
}
if((user->flags & USERFLAG_WAS_REGISTERING)) {
return 0;
}
if((user->flags & USERFLAG_WAS_REGISTERING)) {
@@
-640,6
+642,7
@@
static IRC_CMD(raw_privmsg) {
if(from == NULL || argc < 2) return 0;
struct UserNode *user = getUserByMask(from);
if(user == NULL) {
if(from == NULL || argc < 2) return 0;
struct UserNode *user = getUserByMask(from);
if(user == NULL) {
+ if(stricmplen(from, "***!", 4) == 0) return 1; /* ZNC Playback */
user = createTempUserMask(from);
if(!user) return 0;
user->flags |= USERFLAG_ISTMPUSER;
user = createTempUserMask(from);
if(!user) return 0;
user->flags |= USERFLAG_ISTMPUSER;
@@
-684,6
+687,7
@@
static IRC_CMD(raw_privmsg) {
}
static IRC_CMD(raw_notice) {
}
static IRC_CMD(raw_notice) {
+ if(from == NULL && argc && !stricmp(argv[0], "AUTH")) return 1; //NOTICE AUTH is NOT a parse error ;)
if(from == NULL || argc < 2) return 0;
struct UserNode *user = getUserByMask(from);
if(user == NULL) {
if(from == NULL || argc < 2) return 0;
struct UserNode *user = getUserByMask(from);
if(user == NULL) {