chiark / gitweb /
resolver: construct comm_addr; honour multiple addresses from the resolver
[secnet.git] / secnet.h
index df5320e7b61886b1c690c8afc02f0807df72ba8e..16d49596ba0baa2609c2431894fa6cd199524afe 100644 (file)
--- a/secnet.h
+++ b/secnet.h
 #include <sys/types.h>
 #include <sys/time.h>
 #include <netinet/in.h>
+#include <arpa/inet.h>
+
+#define MAX_PEER_ADDRS 5
+/* send at most this many copies; honour at most that many addresses */
+
+struct comm_if;
+struct comm_addr;
 
 typedef char *string_t;
 typedef const char *cstring_t;
@@ -277,9 +284,10 @@ struct buffer_if;
    type. 'address' will be NULL if there was a problem with the query. It
    will be freed once resolve_answer_fn returns. It is in network byte
    order. */
-/* XXX extend to be able to provide multiple answers */
-typedef void resolve_answer_fn(void *st, struct in_addr *addr);
+typedef void resolve_answer_fn(void *st, const struct comm_addr *addrs,
+                              int naddrs);
 typedef bool_t resolve_request_fn(void *st, cstring_t name,
+                                 int remoteport, struct comm_if *comm,
                                  resolve_answer_fn *cb, void *cst);
 struct resolver_if {
     void *st;