26#include <netinet/in.h>
27#include <sys/socket.h>
38static const char digits[] =
"0123456789";
43static int printable(
int);
70 while ((
n = *
srcp++) != 0) {
103 while ((
n = *
cp++) != 0) {
120 for ((
void)
NULL;
n > 0;
n--) {
129 }
else if (!printable(
c)) {
135 *
dn++ = digits[
c / 100];
136 *
dn++ = digits[(
c % 100) / 10];
137 *
dn++ = digits[
c % 10];
184 while ((
c = *
src++) != 0) {
187 n = (
cp - digits) * 100;
188 if ((
c = *
src++) == 0 ||
193 n += (
cp - digits) * 10;
194 if ((
c = *
src++) == 0 ||
207 }
else if (
c ==
'\\') {
210 }
else if (
c ==
'.') {
236 if (
c == 0 || *
src ==
'.') {
297 while ((
n = *
cp++) != 0) {
308 for ((
void)
NULL;
n > 0;
n--) {
346 while ((
n = *
srcp++) != 0) {
557 while (
cp <
eom && (
n = *
cp++) != 0) {
614 return (
ch > 0x20 &&
ch < 0x7f);
623 if (
ch >= 0x41 &&
ch <= 0x5A)
649 while ((
n = *
cp++) != 0) {
657 for ((
void)
NULL;
n > 0;
n--)
658 if (mklower(*
dn++) != mklower(*
cp++))
661 if (*
dn ==
'\0' && *
cp ==
'\0')
668 cp =
msg + (((
n & 0x3f) << 8) | *
cp);
714 const unsigned char*
src = buf;
721 if (!buf || buflen == 0 || *buf == 0x00) {
int MRns_name_ntop(const u_char *src, char *dst, size_t dstsiz)
int MRns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz)
int MRns_name_pack(const u_char *src, u_char *dst, unsigned dstsiz, const u_char **dnptrs, const u_char **lastdnptr)
int MRns_name_len(const u_char *eom, const u_char *src)
int MRns_name_compress(const char *src, u_char *dst, size_t dstsiz, const u_char **dnptrs, const u_char **lastdnptr)
int MRns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src, u_char *dst, size_t dstsiz)
int MRns_name_uncompress_list(const unsigned char *buf, int buflen, char *dst_buf, size_t dst_size)
Creates a string of comma-separated domain-names from a compressed list.
int MRns_name_skip(const u_char **ptrptr, const u_char *eom)
int MRns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src, char *dst, size_t dstsiz)
int MRns_name_compress_list(const char *buf, int buflen, unsigned char *compbuf, size_t compbuf_size)
Creates a compressed list from a string of comma-separated domain-names.
int MRns_name_pton(const char *src, u_char *dst, size_t dstsiz)