From: pk910 Date: Wed, 5 Oct 2011 10:55:15 +0000 (+0200) Subject: don't block events coming from servers and ignore CTCP ACTION (/me) X-Git-Tag: v5.3~317 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=c96115940f1fea1c79284b7892aefc9b33ac7525 don't block events coming from servers and ignore CTCP ACTION (/me) --- diff --git a/src/UserNode.h b/src/UserNode.h index 051a153..ccd7dc6 100644 --- a/src/UserNode.h +++ b/src/UserNode.h @@ -48,7 +48,7 @@ struct UserNode { struct UserNode *next; }; -#define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) +#define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP | USERFLAG_ISSERVER)) #define isBot(USER) (USER->flags & (USERFLAG_ISBOT)) void init_UserNode(); diff --git a/src/event_neonserv_ctcp.c b/src/event_neonserv_ctcp.c index fcc2a1a..9b7f700 100644 --- a/src/event_neonserv_ctcp.c +++ b/src/event_neonserv_ctcp.c @@ -28,9 +28,10 @@ static void neonserv_event_ctcp_async1(struct ClientSocket *client, struct UserN static int neonserv_ctcp(char *buffer, char *command, char *text); static void neonserv_event_chanctcp(struct UserNode *user, struct ChanNode *chan, char *command, char *text) { + if(!stricmp(command, "ACTION")) return; //always allow CTCP ACTION (/me) struct ClientSocket *client = getBotForChannel(chan); if(!client) return; //we can't "see" this event - if(user->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) return; + if(isNetworkService(user)) return; loadChannelSettings(chan); if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return; if(!(user->flags & USERFLAG_ISAUTHED)) { diff --git a/src/event_neonserv_mode.c b/src/event_neonserv_mode.c index eeeff8c..4c76673 100644 --- a/src/event_neonserv_mode.c +++ b/src/event_neonserv_mode.c @@ -32,7 +32,7 @@ struct neonserv_event_mode_cache { static void neonserv_event_mode(struct UserNode *user, struct ChanNode *chan, char *modes, char **argv, int argc) { struct ClientSocket *client = getBotForChannel(chan); if(!client) return; //we can't "see" this event - if(user->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) return; + if(isNetworkService(user)) return; loadChannelSettings(chan); if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return; struct neonserv_event_mode_cache *cache = malloc(sizeof(*cache)); diff --git a/src/event_neonserv_notice.c b/src/event_neonserv_notice.c index d4db61a..7de5578 100644 --- a/src/event_neonserv_notice.c +++ b/src/event_neonserv_notice.c @@ -28,7 +28,7 @@ static void neonserv_event_notice_async1(struct ClientSocket *client, struct Use static void neonserv_event_channotice(struct UserNode *user, struct ChanNode *chan, char *message) { struct ClientSocket *client = getBotForChannel(chan); if(!client) return; //we can't "see" this event - if(user->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) return; + if(isNetworkService(user)) return; loadChannelSettings(chan); if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return; if(!(user->flags & USERFLAG_ISAUTHED)) { diff --git a/src/event_neonserv_topic.c b/src/event_neonserv_topic.c index dbd1f5f..06df4b5 100644 --- a/src/event_neonserv_topic.c +++ b/src/event_neonserv_topic.c @@ -28,7 +28,7 @@ static void neonserv_event_topic_async1(struct ClientSocket *client, struct User static void neonserv_event_topic(struct UserNode *user, struct ChanNode *chan, const char *new_topic) { struct ClientSocket *client = getBotForChannel(chan); if(!client) return; //we can't "see" this event - if(user->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP)) return; + if(isNetworkService(user)) return; loadChannelSettings(chan); if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return; if(!(user->flags & USERFLAG_ISAUTHED)) {