insufficient_data:
return NULL;
}
+
+void DNSCreateTypeString(uint16_t type, char *str, size_t str_size) {
+ switch (type) {
+ case DNS_RECORD_TYPE_A:
+ snprintf(str, str_size, "A");
+ break;
+ case DNS_RECORD_TYPE_NS:
+ snprintf(str, str_size, "NS");
+ break;
+ case DNS_RECORD_TYPE_AAAA:
+ snprintf(str, str_size, "AAAA");
+ break;
+ case DNS_RECORD_TYPE_TXT:
+ snprintf(str, str_size, "TXT");
+ break;
+ case DNS_RECORD_TYPE_CNAME:
+ snprintf(str, str_size, "CNAME");
+ break;
+ case DNS_RECORD_TYPE_SOA:
+ snprintf(str, str_size, "SOA");
+ break;
+ case DNS_RECORD_TYPE_MX:
+ snprintf(str, str_size, "MX");
+ break;
+ case DNS_RECORD_TYPE_PTR:
+ snprintf(str, str_size, "PTR");
+ break;
+ case DNS_RECORD_TYPE_ANY:
+ snprintf(str, str_size, "ANY");
+ break;
+ case DNS_RECORD_TYPE_TKEY:
+ snprintf(str, str_size, "TKEY");
+ break;
+ case DNS_RECORD_TYPE_TSIG:
+ snprintf(str, str_size, "TSIG");
+ break;
+ case DNS_RECORD_TYPE_SRV:
+ snprintf(str, str_size, "SRV");
+ break;
+ case DNS_RECORD_TYPE_NAPTR:
+ snprintf(str, str_size, "NAPTR");
+ break;
+ case DNS_RECORD_TYPE_DS:
+ snprintf(str, str_size, "DS");
+ break;
+ case DNS_RECORD_TYPE_RRSIG:
+ snprintf(str, str_size, "RRSIG");
+ break;
+ case DNS_RECORD_TYPE_NSEC:
+ snprintf(str, str_size, "NSEC");
+ break;
+ case DNS_RECORD_TYPE_NSEC3:
+ snprintf(str, str_size, "NSEC3");
+ break;
+ default:
+ snprintf(str, str_size, "%04x/%u", type, type);
+ }
+}
uint16_t DNSUdpResponseGetNameByOffset(const uint8_t * const input, const uint32_t input_len,
const uint16_t offset, uint8_t *fqdn, const size_t fqdn_size);
+void DNSCreateTypeString(uint16_t type, char *str, size_t str_size);
+
#endif /* __APP_LAYER_DNS_COMMON_H__ */
MemBuffer *buffer;
} LogDnsLogThread;
-static void CreateTypeString(uint16_t type, char *str, size_t str_size) {
- if (type == DNS_RECORD_TYPE_A) {
- snprintf(str, str_size, "A");
- } else if (type == DNS_RECORD_TYPE_NS) {
- snprintf(str, str_size, "NS");
- } else if (type == DNS_RECORD_TYPE_AAAA) {
- snprintf(str, str_size, "AAAA");
- } else if (type == DNS_RECORD_TYPE_TXT) {
- snprintf(str, str_size, "TXT");
- } else if (type == DNS_RECORD_TYPE_CNAME) {
- snprintf(str, str_size, "CNAME");
- } else if (type == DNS_RECORD_TYPE_SOA) {
- snprintf(str, str_size, "SOA");
- } else if (type == DNS_RECORD_TYPE_MX) {
- snprintf(str, str_size, "MX");
- } else if (type == DNS_RECORD_TYPE_PTR) {
- snprintf(str, str_size, "PTR");
- } else if (type == DNS_RECORD_TYPE_ANY) {
- snprintf(str, str_size, "ANY");
- } else if (type == DNS_RECORD_TYPE_TKEY) {
- snprintf(str, str_size, "TKEY");
- } else if (type == DNS_RECORD_TYPE_TSIG) {
- snprintf(str, str_size, "TSIG");
- } else {
- snprintf(str, str_size, "%04x/%u", type, type);
- }
-}
-
static void LogQuery(LogDnsLogThread *aft, char *timebuf, char *srcip, char *dstip, Port sp, Port dp, DNSTransaction *tx, DNSQueryEntry *entry) {
LogDnsFileCtx *hlog = aft->dnslog_ctx;
entry->len);
char record[16] = "";
- CreateTypeString(entry->type, record, sizeof(record));
+ DNSCreateTypeString(entry->type, record, sizeof(record));
MemBufferWriteString(aft->buffer,
" [**] %s [**] %s:%" PRIu16 " -> %s:%" PRIu16 "\n",
record, srcip, sp, dstip, dp);
}
char record[16] = "";
- CreateTypeString(entry->type, record, sizeof(record));
+ DNSCreateTypeString(entry->type, record, sizeof(record));
MemBufferWriteString(aft->buffer,
" [**] %s [**] TTL %u [**] ", record, entry->ttl);
MemBuffer *buffer;
} LogDnsLogThread;
-static void CreateTypeString(uint16_t type, char *str, size_t str_size) {
- switch (type) {
- case DNS_RECORD_TYPE_A:
- snprintf(str, str_size, "A");
- break;
- case DNS_RECORD_TYPE_NS:
- snprintf(str, str_size, "NS");
- break;
- case DNS_RECORD_TYPE_AAAA:
- snprintf(str, str_size, "AAAA");
- break;
- case DNS_RECORD_TYPE_TXT:
- snprintf(str, str_size, "TXT");
- break;
- case DNS_RECORD_TYPE_CNAME:
- snprintf(str, str_size, "CNAME");
- break;
- case DNS_RECORD_TYPE_SOA:
- snprintf(str, str_size, "SOA");
- break;
- case DNS_RECORD_TYPE_MX:
- snprintf(str, str_size, "MX");
- break;
- case DNS_RECORD_TYPE_PTR:
- snprintf(str, str_size, "PTR");
- break;
- case DNS_RECORD_TYPE_ANY:
- snprintf(str, str_size, "ANY");
- break;
- case DNS_RECORD_TYPE_TKEY:
- snprintf(str, str_size, "TKEY");
- break;
- case DNS_RECORD_TYPE_TSIG:
- snprintf(str, str_size, "TSIG");
- break;
- case DNS_RECORD_TYPE_SRV:
- snprintf(str, str_size, "SRV");
- break;
- case DNS_RECORD_TYPE_NAPTR:
- snprintf(str, str_size, "NAPTR");
- break;
- case DNS_RECORD_TYPE_DS:
- snprintf(str, str_size, "DS");
- break;
- case DNS_RECORD_TYPE_RRSIG:
- snprintf(str, str_size, "RRSIG");
- break;
- case DNS_RECORD_TYPE_NSEC:
- snprintf(str, str_size, "NSEC");
- break;
- case DNS_RECORD_TYPE_NSEC3:
- snprintf(str, str_size, "NSEC3");
- break;
- default:
- snprintf(str, str_size, "%04x/%u", type, type);
- }
-}
-
static void LogQuery(LogDnsLogThread *aft, json_t *js, DNSTransaction *tx, DNSQueryEntry *entry) {
MemBuffer *buffer = (MemBuffer *)aft->buffer;
/* name */
char record[16] = "";
- CreateTypeString(entry->type, record, sizeof(record));
+ DNSCreateTypeString(entry->type, record, sizeof(record));
json_object_set_new(djs, "rrtype", json_string(record));
/* dns */
/* name */
char record[16] = "";
- CreateTypeString(entry->type, record, sizeof(record));
+ DNSCreateTypeString(entry->type, record, sizeof(record));
json_object_set_new(js, "rrtype", json_string(record));
/* ttl */