wrapper/src/packet/packet.h
2023-04-11 09:27:16 -04:00

25 lines
628 B
C

#pragma once
#include "buffer.h"
#include "question.h"
#include "header.h"
#include "record.h"
#include "../server/addr.h"
#include <stdbool.h>
typedef struct {
Header header;
Question* questions;
Record* answers;
Record* authorities;
Record* resources;
} Packet;
void read_packet(PacketBuffer* buffer, Packet* packet);
void write_packet(PacketBuffer* buffer, Packet* packet);
void free_packet(Packet* packet);
bool get_random_a(Packet* packet, IpAddr* addr);
bool get_resolved_ns(Packet* packet, uint8_t* qname, IpAddr* addr);
bool get_unresoled_ns(Packet* packet, uint8_t* qname, Question* question);