summaryrefslogtreecommitdiff
path: root/src/network/dn_skipname.c
blob: eba65bb82ad277a15662084e570c6fd6046b0f1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <resolv.h>

int dn_skipname(const unsigned char *s, const unsigned char *end)
{
	const unsigned char *p = s;
	while (p < end)
		if (!*p) return p-s+1;
		else if (*p>=192)
			if (p+1<end) return p-s+2;
			else break;
		else
			if (end-p<*p+1) break;
			else p += *p + 1;
	return -1;
}