summaryrefslogtreecommitdiff
path: root/src/examples/async_resolver/async_resolver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/examples/async_resolver/async_resolver.c')
-rw-r--r--src/examples/async_resolver/async_resolver.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/examples/async_resolver/async_resolver.c b/src/examples/async_resolver/async_resolver.c
index 1a05236..8bd0b12 100644
--- a/src/examples/async_resolver/async_resolver.c
+++ b/src/examples/async_resolver/async_resolver.c
@@ -8,7 +8,8 @@ typedef struct
mowgli_dns_query_t query;
} dns_query;
-static void resolve_cb(mowgli_dns_reply_t *reply, int reason, void *vptr)
+static void
+resolve_cb(mowgli_dns_reply_t *reply, int reason, void *vptr)
{
char buf[2048];
dns_query *dnsquery = vptr;
@@ -17,6 +18,7 @@ static void resolve_cb(mowgli_dns_reply_t *reply, int reason, void *vptr)
if (reply == NULL)
{
printf("Got null reply for %s\n", dnsquery->domain);
+
switch (reason)
{
case MOWGLI_DNS_RES_NXDOMAIN:
@@ -29,6 +31,7 @@ static void resolve_cb(mowgli_dns_reply_t *reply, int reason, void *vptr)
printf("Timed out\n");
break;
}
+
goto end;
}
@@ -37,12 +40,12 @@ static void resolve_cb(mowgli_dns_reply_t *reply, int reason, void *vptr)
if (reply->addr.addr.ss_family == AF_INET)
{
- const struct sockaddr_in *saddr = (const struct sockaddr_in *)&reply->addr.addr;
+ const struct sockaddr_in *saddr = (const struct sockaddr_in *) &reply->addr.addr;
sockptr = &saddr->sin_addr;
}
else if (reply->addr.addr.ss_family == AF_INET6)
{
- const struct sockaddr_in6 *saddr = (const struct sockaddr_in6 *)&reply->addr.addr;
+ const struct sockaddr_in6 *saddr = (const struct sockaddr_in6 *) &reply->addr.addr;
sockptr = &saddr->sin6_addr;
}
else
@@ -59,7 +62,8 @@ end:
mowgli_free(vptr);
}
-static void read_data(mowgli_eventloop_t *eventloop, mowgli_eventloop_io_t *io, mowgli_eventloop_io_dir_t dir, void *userdata)
+static void
+read_data(mowgli_eventloop_t *eventloop, mowgli_eventloop_io_t *io, mowgli_eventloop_io_dir_t dir, void *userdata)
{
mowgli_eventloop_pollable_t *pollable = mowgli_eventloop_io_pollable(io);
mowgli_dns_t *dns = userdata;
@@ -76,11 +80,14 @@ static void read_data(mowgli_eventloop_t *eventloop, mowgli_eventloop_io_t *io,
return;
}
else if (ret == 0)
+ {
return;
+ }
buf[--ret] = '\0';
ch = strtok(buf, " ");
+
while (ch != NULL)
{
dns_query *dnsquery = mowgli_alloc(sizeof(dns_query));
@@ -99,15 +106,15 @@ static void read_data(mowgli_eventloop_t *eventloop, mowgli_eventloop_io_t *io,
void *addrptr;
struct sockaddr_storage addr;
- if(strchr(++ch, ':') != NULL)
+ if (strchr(++ch, ':') != NULL)
{
- struct sockaddr_in6 *saddr = (struct sockaddr_in6 *)&addr;
+ struct sockaddr_in6 *saddr = (struct sockaddr_in6 *) &addr;
type = AF_INET6;
addrptr = &saddr->sin6_addr;
}
else
{
- struct sockaddr_in *saddr = (struct sockaddr_in *)&addr;
+ struct sockaddr_in *saddr = (struct sockaddr_in *) &addr;
type = AF_INET;
addrptr = &saddr->sin_addr;
}
@@ -127,18 +134,22 @@ static void read_data(mowgli_eventloop_t *eventloop, mowgli_eventloop_io_t *io,
mowgli_dns_gethost_byaddr(dns, &addr, query);
}
else
+ {
mowgli_dns_gethost_byname(dns, ch, query, MOWGLI_DNS_T_A);
+ }
dnsquery->domain = mowgli_strdup(ch);
ch = strtok(NULL, " ");
}
}
-int main (void)
+int
+main(void)
{
mowgli_eventloop_t *evloop = mowgli_eventloop_create();
mowgli_dns_t *dns = mowgli_dns_create(evloop, MOWGLI_DNS_TYPE_ASYNC);
mowgli_eventloop_pollable_t *stdin_pollable = mowgli_pollable_create(evloop, STDIN_FILENO, dns);
+
mowgli_pollable_set_nonblocking(stdin_pollable, true);
mowgli_pollable_setselect(evloop, stdin_pollable, MOWGLI_EVENTLOOP_IO_READ, read_data);