busybox: add SRV support to nslookup_lede.c patch
Add support for querying and parsing SRV DNS records to nslookup_lede.c This patch is based on http://lists.busybox.net/pipermail/busybox/2019-June/087359.html Signed-off-by: Perry Melange <isprotejesvalkata@gmail.com> [reword subject, bump PKG_RELEASE] Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit is contained in:
		 Perry Melange
					Perry Melange
				
			
				
					committed by
					
						 Paul Spooren
						Paul Spooren
					
				
			
			
				
	
			
			
			 Paul Spooren
						Paul Spooren
					
				
			
						parent
						
							75ea878d1b
						
					
				
				
					commit
					3a359398f0
				
			| @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk | |||||||
|  |  | ||||||
| PKG_NAME:=busybox | PKG_NAME:=busybox | ||||||
| PKG_VERSION:=1.33.0 | PKG_VERSION:=1.33.0 | ||||||
| PKG_RELEASE:=3 | PKG_RELEASE:=4 | ||||||
| PKG_FLAGS:=essential | PKG_FLAGS:=essential | ||||||
|  |  | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io> | |||||||
|  # However, on *other platforms* it fails when some of those flags |  # However, on *other platforms* it fails when some of those flags | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/networking/nslookup_lede.c | +++ b/networking/nslookup_lede.c | ||||||
| @@ -0,0 +1,914 @@ | @@ -0,0 +1,934 @@ | ||||||
| +/* | +/* | ||||||
| + * nslookup_lede - musl compatible replacement for busybox nslookup | + * nslookup_lede - musl compatible replacement for busybox nslookup | ||||||
| + * | + * | ||||||
| @@ -128,6 +128,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io> | |||||||
| +	{ ns_t_cname, "CNAME" }, | +	{ ns_t_cname, "CNAME" }, | ||||||
| +	{ ns_t_mx,    "MX"    }, | +	{ ns_t_mx,    "MX"    }, | ||||||
| +	{ ns_t_txt,   "TXT"   }, | +	{ ns_t_txt,   "TXT"   }, | ||||||
|  | +	{ ns_t_srv,   "SRV"   }, | ||||||
| +	{ ns_t_ptr,   "PTR"   }, | +	{ ns_t_ptr,   "PTR"   }, | ||||||
| +	{ ns_t_any,   "ANY"   }, | +	{ ns_t_any,   "ANY"   }, | ||||||
| +	{ } | +	{ } | ||||||
| @@ -259,6 +260,25 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io> | |||||||
| +			} | +			} | ||||||
| +			break; | +			break; | ||||||
| + | + | ||||||
|  | +		case ns_t_srv: | ||||||
|  | +			if (rdlen < 6) { | ||||||
|  | +				//printf("SRV record too short\n"); | ||||||
|  | +				return -1; | ||||||
|  | +			} | ||||||
|  | + | ||||||
|  | +			cp = ns_rr_rdata(rr); | ||||||
|  | +			n = ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle), | ||||||
|  | +			                       cp + 6, dname, sizeof(dname)); | ||||||
|  | + | ||||||
|  | +			if (n < 0) { | ||||||
|  | +				//printf("Unable to uncompress domain: %s\n", strerror(errno)); | ||||||
|  | +				return -1; | ||||||
|  | +			} | ||||||
|  | + | ||||||
|  | +			printf("%s\tservice = %hu %hu %hu %s\n", ns_rr_name(rr), | ||||||
|  | +				ns_get16(cp), ns_get16(cp + 2), ns_get16(cp + 4), dname); | ||||||
|  | +			break; | ||||||
|  | + | ||||||
| +		case ns_t_soa: | +		case ns_t_soa: | ||||||
| +			if (rdlen < 20) { | +			if (rdlen < 20) { | ||||||
| +				//fprintf(stderr, "SOA record too short\n"); | +				//fprintf(stderr, "SOA record too short\n"); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user