Improve CTCP notice handling
Cutting off all text after \001 can result in users hiding text so lets only bother handling it if it is a valid CTCP message (starting and ending with \001).
This commit is contained in:
		
							parent
							
								
									07f1fc60da
								
							
						
					
					
						commit
						4188f26ab9
					
				
					 1 changed files with 8 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -932,7 +932,7 @@ void
 | 
			
		|||
inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
 | 
			
		||||
					 const message_tags_data *tags_data)
 | 
			
		||||
{
 | 
			
		||||
	char *po,*ptr=to;
 | 
			
		||||
	char *ptr = to;
 | 
			
		||||
	session *sess = 0;
 | 
			
		||||
	int server_notice = FALSE;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1005,18 +1005,21 @@ inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (msg[0] == 1)
 | 
			
		||||
	if (msg[0] == '\001')
 | 
			
		||||
	{
 | 
			
		||||
		size_t len;
 | 
			
		||||
 | 
			
		||||
		msg++;
 | 
			
		||||
		if (!strncmp (msg, "PING", 4))
 | 
			
		||||
		{
 | 
			
		||||
			inbound_ping_reply (sess, msg + 5, nick, tags_data);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		len = strlen(msg);
 | 
			
		||||
		if (msg[len - 1] == '\001')
 | 
			
		||||
			msg[len - 1] = '\000';
 | 
			
		||||
	}
 | 
			
		||||
	po = strchr (msg, '\001');
 | 
			
		||||
	if (po)
 | 
			
		||||
		po[0] = 0;
 | 
			
		||||
 | 
			
		||||
	if (server_notice)
 | 
			
		||||
		EMIT_SIGNAL_TIMESTAMP (XP_TE_SERVNOTICE, sess, msg, nick, NULL, NULL, 0,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue