djbdnscurve6 45
djbdnscurve6
Loading...
Searching...
No Matches
dns_domain.c
Go to the documentation of this file.
1#include "alloc.h"
2#include "case.h"
3#include "byte.h"
4#include "dns.h"
5
6unsigned int dns_domain_length(const char *dn)
7{
8 const char *x;
9 unsigned char c;
10
11 x = dn;
12 while ((c = *x++))
13 x += (unsigned int) c;
14 return x - dn;
15}
16
17void dns_domain_free(char **out)
18{
19 if (*out) {
20 alloc_free(*out);
21 *out = 0;
22 }
23}
24
25int dns_domain_copy(char **out,const char *in)
26{
27 unsigned int len;
28 char *x;
29
31 x = alloc(len);
32 if (!x) return 0;
33 byte_copy(x,len,in);
34 if (*out) alloc_free(*out);
35 *out = x;
36 return 1;
37}
38
39int dns_domain_equal(const char *dn1,const char *dn2)
40{
41 unsigned int len;
42
44 if (len != dns_domain_length(dn2)) return 0;
45
46 if (case_diffb((char *)dn1,len,(char *)dn2)) return 0; /* safe since 63 < 'A' */
47 return 1;
48}
49
50int dns_domain_suffix(const char *big,const char *little)
51{
52 unsigned char c;
53
54 for (;;) {
55 if (dns_domain_equal(big,little)) return 1;
56 c = *big++;
57 if (!c) return 0;
58 big += c;
59 }
60}
61
62unsigned int dns_domain_suffixpos(const char *big,const char *little)
63{
64 const char *orig = big;
65 unsigned char c;
66
67 for (;;) {
68 if (dns_domain_equal(big,little)) return big - orig;
69 c = *big++;
70 if (!c) return 0;
71 big += c;
72 }
73}
uint16 len
Definition: axfrdns.c:319
int dns_domain_equal(const char *dn1, const char *dn2)
Definition: dns_domain.c:39
unsigned int dns_domain_length(const char *dn)
Definition: dns_domain.c:6
int dns_domain_copy(char **out, const char *in)
Definition: dns_domain.c:25
int dns_domain_suffix(const char *big, const char *little)
Definition: dns_domain.c:50
void dns_domain_free(char **out)
Definition: dns_domain.c:17
unsigned int dns_domain_suffixpos(const char *big, const char *little)
Definition: dns_domain.c:62
struct line * x
void out(const char *s, unsigned int len)
Definition: generic-conf.c:54
void c(const char *home, const char *subdir, const char *file, int uid, int gid, int mode)