| 1 | /* |
|---|
| 2 | * Copyright (c) 2006-2009 Bjorn Andersson <flex@kryo.se>, Erik Ekman <yarrick@kryo.se> |
|---|
| 3 | * |
|---|
| 4 | * Permission to use, copy, modify, and distribute this software for any |
|---|
| 5 | * purpose with or without fee is hereby granted, provided that the above |
|---|
| 6 | * copyright notice and this permission notice appear in all copies. |
|---|
| 7 | * |
|---|
| 8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|---|
| 9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
|---|
| 10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
|---|
| 11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|---|
| 12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|---|
| 13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
|---|
| 14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|---|
| 15 | */ |
|---|
| 16 | |
|---|
| 17 | #ifndef __DNS_H__ |
|---|
| 18 | #define __DNS_H__ |
|---|
| 19 | |
|---|
| 20 | #include "common.h" |
|---|
| 21 | |
|---|
| 22 | typedef enum { |
|---|
| 23 | QR_QUERY = 0, |
|---|
| 24 | QR_ANSWER = 1 |
|---|
| 25 | } qr_t; |
|---|
| 26 | |
|---|
| 27 | extern int dnsc_use_edns0; |
|---|
| 28 | |
|---|
| 29 | int dns_encode(char *, size_t, struct query *, qr_t, char *, size_t); |
|---|
| 30 | int dns_encode_ns_response(char *buf, size_t buflen, struct query *q, char *topdomain); |
|---|
| 31 | int dns_encode_a_response(char *buf, size_t buflen, struct query *q); |
|---|
| 32 | unsigned short dns_get_id(char *packet, size_t packetlen); |
|---|
| 33 | int dns_decode(char *, size_t, struct query *, qr_t, char *, size_t); |
|---|
| 34 | |
|---|
| 35 | #endif /* _DNS_H_ */ |
|---|