mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	Make DNS callbacks return -1 on error, so invalid records are ignored
(bug #1137) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2311 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		
							
								
								
									
										4
									
								
								dns.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dns.c
									
									
									
									
									
								
							| @@ -137,8 +137,10 @@ static int dns_parse_answer(void *context, | ||||
|  | ||||
| 		if (ntohs(ans->class) == class && ntohs(ans->rtype) == type) { | ||||
| 			if (callback) { | ||||
| 				if ((res = callback(context, answer, ntohs(ans->size), fullanswer)) < 0) | ||||
| 				if ((res = callback(context, answer, ntohs(ans->size), fullanswer)) < 0) { | ||||
| 					ast_log(LOG_WARNING, "Failed to parse result\n"); | ||||
| 					return -1; | ||||
| 				} | ||||
| 				if (res > 0) | ||||
| 					return 1; | ||||
| 			} | ||||
|   | ||||
							
								
								
									
										4
									
								
								enum.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								enum.c
									
									
									
									
									
								
							| @@ -232,8 +232,10 @@ static int enum_callback(void *context, u_char *answer, int len, u_char *fullans | ||||
| { | ||||
| 	struct enum_context *c = (struct enum_context *)context; | ||||
|  | ||||
| 	if (parse_naptr(c->dst, c->dstlen, c->tech, c->techlen, answer, len, c->naptrinput)) | ||||
| 	if (parse_naptr(c->dst, c->dstlen, c->tech, c->techlen, answer, len, c->naptrinput)) { | ||||
| 		ast_log(LOG_WARNING, "Failed to parse naptr :(\n"); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	if (strlen(c->dst)) | ||||
| 		return 1; | ||||
|   | ||||
							
								
								
									
										4
									
								
								srv.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								srv.c
									
									
									
									
									
								
							| @@ -79,8 +79,10 @@ static int srv_callback(void *context, u_char *answer, int len, u_char *fullansw | ||||
| { | ||||
| 	struct srv_context *c = (struct srv_context *)context; | ||||
|  | ||||
| 	if (parse_srv(c->host, c->hostlen, c->port, answer, len, fullanswer)) | ||||
| 	if (parse_srv(c->host, c->hostlen, c->port, answer, len, fullanswer)) { | ||||
| 		ast_log(LOG_WARNING, "Failed to parse srv\n"); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	if (strlen(c->host)) | ||||
| 		return 1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user