--- a/server/dhcpv6.c
+++ b/server/dhcpv6.c
@@ -5843,14 +5843,29 @@ exit:
 	option_state_dereference(&host_opt_state, MDL);
 }
 
+typedef void ia_na_match_t(
+	const struct data_string *client_id,
+	const struct data_string *iaaddr,
+	struct iasubopt *lease
+	);
+
+typedef void ia_na_nomatch_t(
+	const struct data_string *client_id,
+	const struct data_string *iaaddr,
+	u_int32_t *data,
+	struct packet *packet,
+	char *reply_data,
+	int *reply_ofs,
+	int reply_data_sz);
+
 static void
 iterate_over_ia_na(struct data_string *reply_ret,
 		   struct packet *packet,
 		   const struct data_string *client_id,
 		   const struct data_string *server_id,
 		   const char *packet_type,
-		   void (*ia_na_match)(),
-		   void (*ia_na_nomatch)())
+		   ia_na_match_t ia_na_match,
+		   ia_na_nomatch_t ia_na_nomatch)
 {
 	struct option_state *opt_state;
 	struct host_decl *packet_host;
@@ -6351,8 +6366,8 @@ iterate_over_ia_pd(struct data_string *r
 		   const struct data_string *client_id,
 		   const struct data_string *server_id,
 		   const char *packet_type,
-		   void (*ia_pd_match)(),
-		   void (*ia_pd_nomatch)())
+		   ia_na_match_t ia_pd_match,
+		   ia_na_nomatch_t ia_pd_nomatch)
 {
 	struct data_string reply_new;
 	int reply_len;
