diff --git a/FTL.h b/FTL.h index 63ae5bd5..6bae37ab 100644 --- a/FTL.h +++ b/FTL.h @@ -72,6 +72,17 @@ // How many client connection do we accept at once? #define MAXCONNS 255 +// FTLDNS enums +enum { DATABASE_WRITE_TIMER, EXIT_TIMER, GC_TIMER, LISTS_TIMER, REGEX_TIMER }; +enum { QUERIES, FORWARDED, CLIENTS, DOMAINS, OVERTIME, WILDCARD }; +enum { DNSSEC_UNSPECIFIED, DNSSEC_SECURE, DNSSEC_INSECURE, DNSSEC_BOGUS, DNSSEC_ABANDONED, DNSSEC_UNKNOWN }; +enum { QUERY_UNKNOWN, QUERY_GRAVITY, QUERY_FORWARDED, QUERY_CACHE, QUERY_WILDCARD, QUERY_BLACKLIST }; +enum { TYPE_A = 1, TYPE_AAAA, TYPE_ANY, TYPE_SRV, TYPE_SOA, TYPE_PTR, TYPE_TXT, TYPE_MAX }; +enum { REPLY_UNKNOWN, REPLY_NODATA, REPLY_NXDOMAIN, REPLY_CNAME, REPLY_IP }; +enum { PRIVACY_SHOW_ALL = 0, PRIVACY_HIDE_DOMAINS, PRIVACY_HIDE_DOMAINS_CLIENTS, PRIVACY_MAXIMUM }; +enum { MODE_IP, MODE_NX, MODE_NULL }; +enum { REGEX_UNKNOWN, REGEX_BLOCKED, REGEX_NOTBLOCKED }; + // Static structs typedef struct { const char* conf; @@ -112,7 +123,7 @@ typedef struct { int gravity; int gravity_conf; int overTime; - int querytype[7]; + int querytype[TYPE_MAX-1]; int wildcarddomains; int forwardedqueries; int reply_NODATA; @@ -208,16 +219,6 @@ typedef struct { // Prepare timers, used mainly for debugging purposes #define NUMTIMERS 5 -enum { DATABASE_WRITE_TIMER, EXIT_TIMER, GC_TIMER, LISTS_TIMER, REGEX_TIMER }; - -enum { QUERIES, FORWARDED, CLIENTS, DOMAINS, OVERTIME, WILDCARD }; -enum { DNSSEC_UNSPECIFIED, DNSSEC_SECURE, DNSSEC_INSECURE, DNSSEC_BOGUS, DNSSEC_ABANDONED, DNSSEC_UNKNOWN }; -enum { QUERY_UNKNOWN, QUERY_GRAVITY, QUERY_FORWARDED, QUERY_CACHE, QUERY_WILDCARD, QUERY_BLACKLIST }; -enum { TYPE_A = 1, TYPE_AAAA, TYPE_ANY, TYPE_SRV, TYPE_SOA, TYPE_PTR, TYPE_TXT, TYPE_MAX }; -enum { REPLY_UNKNOWN, REPLY_NODATA, REPLY_NXDOMAIN, REPLY_CNAME, REPLY_IP }; -enum { PRIVACY_SHOW_ALL = 0, PRIVACY_HIDE_DOMAINS, PRIVACY_HIDE_DOMAINS_CLIENTS, PRIVACY_MAXIMUM }; -enum { MODE_IP, MODE_NX, MODE_NULL }; -enum { REGEX_UNKNOWN, REGEX_BLOCKED, REGEX_NOTBLOCKED }; // Used to check memory integrity in various structs #define MAGICBYTE 0x57 diff --git a/api.c b/api.c index 3f40339f..d25987d2 100644 --- a/api.c +++ b/api.c @@ -75,6 +75,14 @@ void getStats(int *sock) counters.domains, counters.forwardedqueries, counters.cached); ssend(*sock, "clients_ever_seen %i\n", counters.clients); ssend(*sock, "unique_clients %i\n", activeclients); + + // Sum up all query types (A, AAAA, ANY, SRV, SOA, ...) + int sumalltypes = 0; + for(i=0; i < TYPE_MAX-1; i++) + { + sumalltypes += counters.querytype[i]; + } + ssend(*sock, "dns_queries_all_types %i\n", sumalltypes); } else {