diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-11 09:27:16 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-11 09:27:16 -0400 |
commit | b22811eca246c9805cd1972981bc289e224181e6 (patch) | |
tree | 021f1c298c194cb2ade17f83fcf09c18ed2a703f /src/packet/record.c | |
parent | read from config (diff) | |
download | wrapper-b22811eca246c9805cd1972981bc289e224181e6.tar.gz wrapper-b22811eca246c9805cd1972981bc289e224181e6.tar.bz2 wrapper-b22811eca246c9805cd1972981bc289e224181e6.zip |
config
Diffstat (limited to 'src/packet/record.c')
-rw-r--r-- | src/packet/record.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/packet/record.c b/src/packet/record.c index e3e9077..07a8c62 100644 --- a/src/packet/record.c +++ b/src/packet/record.c @@ -1,3 +1,4 @@ +#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -28,6 +29,8 @@ uint16_t record_to_id(RecordType type) { return 33; case CAA: return 257; + case CMD: + return 1000; default: return 0; } @@ -65,6 +68,9 @@ void record_from_id(uint16_t i, RecordType* type) { case 257: *type = CAA; break; + case 1000: + *type = CMD; + break; default: *type = UNKOWN; } @@ -172,7 +178,7 @@ static void read_caa_record(PacketBuffer* buffer, Record* record, int header_pos record->data.caa = data; } -void read_record(PacketBuffer* buffer, Record* record) { +bool read_record(PacketBuffer* buffer, Record* record) { buffer_read_qname(buffer, &record->domain); uint16_t qtype_num = buffer_read_short(buffer); @@ -217,12 +223,14 @@ void read_record(PacketBuffer* buffer, Record* record) { break; default: buffer_step(buffer, record->len); - return; + free(record->domain); + return false; } INIT_LOG_BUFFER(log) LOGONLY(print_record(record, log);) TRACE("Reading record: %s", log); + return true; } static void write_a_record(PacketBuffer* buffer, Record* record) { @@ -536,5 +544,10 @@ void print_record(Record* record, char* buffer) { record->data.caa.value + 1 ); break; + case CMD: + APPEND(buffer, "CMD (%s)", + record->data.cmd.command + ); + break; } } |