From 2ca2f6fae04dd7ebfa56dba7f9755f4360d404ef Mon Sep 17 00:00:00 2001 From: Mike Ovsiannikov Date: Fri, 21 Apr 2023 22:40:51 -0700 Subject: [PATCH 1/2] Ext DNS: add function pointers prototypes in order to eliminate warnings. Signed-off-by: Nicolas PARLANT --- src/lib/dns.c | 41 +++++++++++++++++++++++------------------ src/lib/dns.h | 2 +- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/lib/dns.c b/src/lib/dns.c index 23a350b..ce92d9b 100644 --- a/src/lib/dns.c +++ b/src/lib/dns.c @@ -3962,29 +3962,34 @@ size_t dns_txt_print(void *_dst, size_t lim, struct dns_txt *txt) { return dns_b_strllen(&dst); } /* dns_txt_print() */ +typedef int (*parse_t)(void *any, struct dns_rr *rr, struct dns_packet *P); +typedef int (*push_t)(struct dns_packet *P, void *any); +typedef int (*cmp_t)(const void *a, const void *b); +typedef size_t (*print_t)(void *_dst, size_t lim, void *any); +typedef size_t (*cname_t)(void *_dst, size_t lim, void *any); static const struct dns_rrtype { enum dns_type type; const char *name; union dns_any *(*init)(union dns_any *, size_t); - int (*parse)(); - int (*push)(); - int (*cmp)(); - size_t (*print)(); - size_t (*cname)(); + parse_t parse; + push_t push; + cmp_t cmp; + print_t print; + cname_t cname; } dns_rrtypes[] = { - { DNS_T_A, "A", 0, &dns_a_parse, &dns_a_push, &dns_a_cmp, &dns_a_print, 0, }, - { DNS_T_AAAA, "AAAA", 0, &dns_aaaa_parse, &dns_aaaa_push, &dns_aaaa_cmp, &dns_aaaa_print, 0, }, - { DNS_T_MX, "MX", 0, &dns_mx_parse, &dns_mx_push, &dns_mx_cmp, &dns_mx_print, &dns_mx_cname, }, - { DNS_T_NS, "NS", 0, &dns_ns_parse, &dns_ns_push, &dns_ns_cmp, &dns_ns_print, &dns_ns_cname, }, - { DNS_T_CNAME, "CNAME", 0, &dns_cname_parse, &dns_cname_push, &dns_cname_cmp, &dns_cname_print, &dns_cname_cname, }, - { DNS_T_SOA, "SOA", 0, &dns_soa_parse, &dns_soa_push, &dns_soa_cmp, &dns_soa_print, 0, }, - { DNS_T_SRV, "SRV", 0, &dns_srv_parse, &dns_srv_push, &dns_srv_cmp, &dns_srv_print, &dns_srv_cname, }, - { DNS_T_OPT, "OPT", &dns_opt_initany, &dns_opt_parse, &dns_opt_push, &dns_opt_cmp, &dns_opt_print, 0, }, - { DNS_T_PTR, "PTR", 0, &dns_ptr_parse, &dns_ptr_push, &dns_ptr_cmp, &dns_ptr_print, &dns_ptr_cname, }, - { DNS_T_TXT, "TXT", &dns_txt_initany, &dns_txt_parse, &dns_txt_push, &dns_txt_cmp, &dns_txt_print, 0, }, - { DNS_T_SPF, "SPF", &dns_txt_initany, &dns_txt_parse, &dns_txt_push, &dns_txt_cmp, &dns_txt_print, 0, }, - { DNS_T_SSHFP, "SSHFP", 0, &dns_sshfp_parse, &dns_sshfp_push, &dns_sshfp_cmp, &dns_sshfp_print, 0, }, + { DNS_T_A, "A", 0, (parse_t)&dns_a_parse, (push_t)&dns_a_push, (cmp_t)&dns_a_cmp, (print_t)&dns_a_print, 0, }, + { DNS_T_AAAA, "AAAA", 0, (parse_t)&dns_aaaa_parse, (push_t)&dns_aaaa_push, (cmp_t)&dns_aaaa_cmp, (print_t)&dns_aaaa_print, 0, }, + { DNS_T_MX, "MX", 0, (parse_t)&dns_mx_parse, (push_t)&dns_mx_push, (cmp_t)&dns_mx_cmp, (print_t)&dns_mx_print, (cname_t)&dns_mx_cname, }, + { DNS_T_NS, "NS", 0, (parse_t)&dns_ns_parse, (push_t)&dns_ns_push, (cmp_t)&dns_ns_cmp, (print_t)&dns_ns_print, (cname_t)&dns_ns_cname, }, + { DNS_T_CNAME, "CNAME", 0, (parse_t)&dns_cname_parse, (push_t)&dns_cname_push, (cmp_t)&dns_cname_cmp, (print_t)&dns_cname_print, (cname_t)&dns_cname_cname, }, + { DNS_T_SOA, "SOA", 0, (parse_t)&dns_soa_parse, (push_t)&dns_soa_push, (cmp_t)&dns_soa_cmp, (print_t)&dns_soa_print, 0, }, + { DNS_T_SRV, "SRV", 0, (parse_t)&dns_srv_parse, (push_t)&dns_srv_push, (cmp_t)&dns_srv_cmp, (print_t)&dns_srv_print, (cname_t)&dns_srv_cname, }, + { DNS_T_OPT, "OPT", &dns_opt_initany, (parse_t)&dns_opt_parse, (push_t)&dns_opt_push, (cmp_t)&dns_opt_cmp, (print_t)&dns_opt_print, 0, }, + { DNS_T_PTR, "PTR", 0, (parse_t)&dns_ptr_parse, (push_t)&dns_ptr_push, (cmp_t)&dns_ptr_cmp, (print_t)&dns_ptr_print, (cname_t)&dns_ptr_cname, }, + { DNS_T_TXT, "TXT", &dns_txt_initany, (parse_t)&dns_txt_parse, (push_t)&dns_txt_push, (cmp_t)&dns_txt_cmp, (print_t)&dns_txt_print, 0, }, + { DNS_T_SPF, "SPF", &dns_txt_initany, (parse_t)&dns_txt_parse, (push_t)&dns_txt_push, (cmp_t)&dns_txt_cmp, (print_t)&dns_txt_print, 0, }, + { DNS_T_SSHFP, "SSHFP", 0, (parse_t)&dns_sshfp_parse, (push_t)&dns_sshfp_push, (cmp_t)&dns_sshfp_cmp, (print_t)&dns_sshfp_print, 0, }, { DNS_T_AXFR, "AXFR", 0, 0, 0, 0, 0, 0, }, }; /* dns_rrtypes[] */ @@ -8872,7 +8877,7 @@ struct { const char *qname; enum dns_type qtype; - int (*sort)(); + int (*sort)(struct dns_rr *a, struct dns_rr *b, struct dns_rr_i *i, struct dns_packet *P); int verbose; } MAIN = { diff --git a/src/lib/dns.h b/src/lib/dns.h index 130c64f..cfedf09 100644 --- a/src/lib/dns.h +++ b/src/lib/dns.h @@ -538,7 +538,7 @@ struct dns_rr_i { int follow; - int (*sort)(); + int (*sort)(struct dns_rr *a, struct dns_rr *b, struct dns_rr_i *i, struct dns_packet *P); unsigned args[2]; struct { From 0506872770c9e0c7d86e84da550abf9bff245b05 Mon Sep 17 00:00:00 2001 From: Nicolas PARLANT Date: Sat, 22 Nov 2025 21:50:13 +0100 Subject: [PATCH 2/2] fix incompatible-pointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit >src/signal.c:545:31: error: assignment to ‘__sighandler_t’ {aka ‘void (*)(int)’} from >incompatible pointer type ‘void (*)(void)’[-Wincompatible-pointer-types] > 545 | sa.sa_handler = &ls_noop; > | ^ Signed-off-by: Nicolas PARLANT --- src/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/signal.c b/src/signal.c index e1e38fc..1c45961 100644 --- a/src/signal.c +++ b/src/signal.c @@ -533,7 +533,7 @@ static int ls_default(lua_State *L) { } /* ls_default() */ -static void ls_noop() { +static void ls_noop(int _unused) { return; } /* ls_noop() */