diff options
Diffstat (limited to 'libs/rpcd-mod-rrdns/src/rrdns.h')
-rw-r--r-- | libs/rpcd-mod-rrdns/src/rrdns.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libs/rpcd-mod-rrdns/src/rrdns.h b/libs/rpcd-mod-rrdns/src/rrdns.h new file mode 100644 index 0000000000..3f95116f08 --- /dev/null +++ b/libs/rpcd-mod-rrdns/src/rrdns.h @@ -0,0 +1,51 @@ +/* + * rrdns - Rapid Reverse DNS lookup plugin for the UBUS RPC server + * + * Copyright (C) 2016-2017 Jo-Philipp Wich <jo@mein.io> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <libubus.h> +#include <libubox/avl.h> +#include <libubox/uloop.h> + +#define RRDNS_MAX_TIMEOUT 5000 +#define RRDNS_DEF_TIMEOUT 250 + +#define RRDNS_MAX_LIMIT 1000 +#define RRDNS_DEF_LIMIT 10 + + +struct rrdns_request { + struct avl_node by_id; + struct avl_node by_addr; + uint16_t id; + uint16_t family; + union { + struct in_addr in; + struct in6_addr in6; + } addr; +}; + +struct rrdns_context { + struct ubus_context *context; + struct ubus_request_data request; + struct uloop_timeout timeout; + struct blob_attr *addr_cur; + int addr_rem; + struct uloop_fd socket; + struct blob_buf blob; + struct avl_tree request_ids; + struct avl_tree request_addrs; +}; |