proforma.c 3.71 KB
Newer Older
1
/*
Bob Halley's avatar
Bob Halley committed
2
 * Copyright (C) 1998, 1999, 2000  Internet Software Consortium.
Michael Graff's avatar
Michael Graff committed
3
 * 
4
5
6
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
Michael Graff's avatar
Michael Graff committed
7
 * 
8
9
10
11
12
13
14
15
16
17
 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */

18
/* $Id: proforma.c,v 1.19 2000/03/20 22:48:58 gson Exp $ */
Mark Andrews's avatar
Mark Andrews committed
19

20
21
#ifndef RDATA_GENERIC_#_#_C
#define RDATA_GENERIC_#_#_C
Mark Andrews's avatar
Mark Andrews committed
22

23
static inline isc_result_t
24
fromtext_#(dns_rdataclass_t rdclass, dns_rdatatype_t type,
25
26
	   isc_lex_t *lexer, dns_name_t *origin,
	   isc_boolean_t downcase, isc_buffer_t *target) {
Mark Andrews's avatar
Mark Andrews committed
27
	isc_token_t token;
28

Mark Andrews's avatar
Mark Andrews committed
29
	REQUIRE(type == #);
30
	REQUIRE(rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
31

Mark Andrews's avatar
Mark Andrews committed
32
33
	RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE));

34
35
36
	return (DNS_R_NOTIMPLEMENTED);
}

37
static inline isc_result_t
38
39
40
totext_#(dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, 
	 isc_buffer_t *target) 
{
41

Mark Andrews's avatar
Mark Andrews committed
42
	REQUIRE(rdata->type == #);
43
	REQUIRE(rdata->rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
44

45
46
47
	return (DNS_R_NOTIMPLEMENTED);
}

48
static inline isc_result_t
49
fromwire_#(dns_rdataclass_t rdclass, dns_rdatatype_t type,
50
51
52
	   isc_buffer_t *source, dns_decompress_t *dctx,
	   isc_boolean_t downcase, isc_buffer_t *target) {

Mark Andrews's avatar
Mark Andrews committed
53
	REQUIRE(type == #);
54
	REQUIRE(rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
55

Mark Andrews's avatar
Mark Andrews committed
56
57
58
	if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx))
		dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL);
	else
59
60
		/* NONE or GLOBAL14 */
		dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE);
Mark Andrews's avatar
Mark Andrews committed
61

62
63
64
	return (DNS_R_NOTIMPLEMENTED);
}

65
static inline isc_result_t
66
67
towire_#(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) {

Mark Andrews's avatar
Mark Andrews committed
68
	REQUIRE(rdata->type == #);
69
	REQUIRE(rdata->rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
70

Mark Andrews's avatar
Mark Andrews committed
71
72
73
	if (dns_compress_getedns(cctx) >= 1)
		dns_compress_setmethods(cctx, DNS_COMPRESS_ALL):
	else
74
75
		/* NONE or GLOBAL14 */
		dns_compress_setmethods(cctx, DNS_COMPRESS_NONE);
Mark Andrews's avatar
Mark Andrews committed
76

77
78
79
	return (DNS_R_NOTIMPLEMENTED);
}

80
static inline int
81
compare_#(dns_rdata_t *rdata1, dns_rdata_t *rdata2) {
Mark Andrews's avatar
Mark Andrews committed
82
83
	isc_region_t r1;
	isc_region_t r2;
84

Mark Andrews's avatar
Mark Andrews committed
85
	REQUIRE(rdata1->type == rdata2->type);
86
	REQUIRE(rdata1->rdclass == rdata2->rdclass);
Mark Andrews's avatar
Mark Andrews committed
87
	REQUIRE(rdata1->type == #);
88
	REQUIRE(rdata1->rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
89

Mark Andrews's avatar
Mark Andrews committed
90
91
92
	dns_rdata_toregion(rdata1, &r1);
	dns_rdata_toregion(rdata2, &r2);
	return (compare_region(&r1, &r2));
93
94
}

95
static inline isc_result_t
96
fromstruct_#(dns_rdataclass_t rdclass, dns_rdatatype_t type, void *source,
97
98
	     isc_buffer_t *target) {

Mark Andrews's avatar
Mark Andrews committed
99
	REQUIRE(type == #);
100
	REQUIRE(rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
101

102
103
104
	return (DNS_R_NOTIMPLEMENTED);
}

105
static inline isc_result_t
106
tostruct_#(dns_rdata_t *rdata, void *target, isc_mem_t *mctx) {
107

Mark Andrews's avatar
Mark Andrews committed
108
	REQUIRE(rdata->type == #);
109
	REQUIRE(rdata->rdclass == #);
Mark Andrews's avatar
Mark Andrews committed
110

111
112
	return (DNS_R_NOTIMPLEMENTED);
}
113

114
static inline void
115
116
117
118
119
120
121
122
freestruct_#(void *source) {
	dns_rdata_#_t *# = source;

	REQUIRE(source != NULL);
	REQUIRE(#->common.rdtype == #);
	REQUIRE(#->common.rdclass == #);
	
}
123

124
static inline isc_result_t
125
126
127
128
129
130
131
132
133
134
135
136
additionaldata_#(dns_rdata_t *rdata, dns_additionaldatafunc_t add,
		 void *arg)
{
	REQUIRE(rdata->type == #);
	REQUIRE(rdata->rdclass == #);

	(void)add;
	(void)arg;

	return (DNS_R_SUCCESS);
}

137
static inline isc_result_t
Bob Halley's avatar
Bob Halley committed
138
139
140
141
142
143
144
145
146
147
148
digest_#(dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg) {
	isc_region_t r;

	REQUIRE(rdata->type == #);
	REQUIRE(rdata->rdclass == #);

	dns_rdata_toregion(rdata, &r);

	return ((digest)(arg, &r));
}

149
#endif	/* RDATA_GENERIC_#_#_C */