From dc84002a8256feb1cc7f0fb70bdbfc998deeba4a Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 9 May 2023 19:32:29 +0200 Subject: nslookup: code shrink function old new delta send_queries 725 723 -2 nslookup_main 822 820 -2 add_query 89 86 -3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-7) Total: -7 bytes Signed-off-by: Denys Vlasenko --- networking/nslookup.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/networking/nslookup.c b/networking/nslookup.c index 24eae4010..249083e24 100644 --- a/networking/nslookup.c +++ b/networking/nslookup.c @@ -589,6 +589,7 @@ static int RESOLVFUNC res_mkquery(int op, const char *dname, int class, int type if (l>253 || buflen15u || class>255u || type>255u) return -1; +//TODO: why do we even have the q[] array? Use buf[] directly! /* Construct query template - ID will be filled later */ memset(q, 0, n); q[2] = op*8 + 1; @@ -637,7 +638,12 @@ struct query { unsigned qlen; // unsigned latency; // uint8_t rcode; - unsigned char query[512]; + /* res_mkquery() balks on names > 253 chars. + * The formed query is 253+18 chars at max. + * Real hostnames are nowhere near that long anyway. + * Use of power-of-2 size means smaller code. + */ + unsigned char query[512 - sizeof(int) - sizeof(char*)]; // unsigned char reply[512]; }; -- cgit v1.2.1