aboutsummaryrefslogtreecommitdiffstats
path: root/libglouglou/libggnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglouglou/libggnet.c')
-rw-r--r--libglouglou/libggnet.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libglouglou/libggnet.c b/libglouglou/libggnet.c
index e6df4bd..7367372 100644
--- a/libglouglou/libggnet.c
+++ b/libglouglou/libggnet.c
@@ -3,6 +3,7 @@
#include <stdio.h>
#include "libggnet.h"
+#include "libggnet_dns.h"
static struct ggnet_nodegroup *nodegroup_add(struct ggnet *,
enum ggnet_grouptype, void *,
@@ -38,6 +39,7 @@ ggnet_new(int manage_connid)
*
* Note: Must be set before any use of ggnet
*/
+// XXX break API to ggnet_set_grouping()
void
ggnet_grouping_set(struct ggnet *net, int set,
void (*cb_addgroup)(struct ggnet *, struct ggnet_nodegroup *, struct ggnet_nodegroup *),
@@ -49,6 +51,20 @@ ggnet_grouping_set(struct ggnet *net, int set,
}
void
+ggnet_set_dns(struct ggnet *net, int set,
+ struct event_base *ev_base,
+ void (*cb_nodename)(struct ggnet_node *))
+{
+ net->use_dns = set;
+ if (set) {
+ net->ggdns = ggnet_dns_new(ev_base);
+ net->cb_nodename = cb_nodename;
+ }
+ else if (net->use_dns)
+ ggnet_dns_free(net->ggdns);
+}
+
+void
ggnet_debug_set(struct ggnet *net, int set)
{
net->debug = set;