1
--- maradns-1.3.07.07/server/functions_server.h.orig 2007-10-25 08:30:19.000000000 -0500
2
+++ maradns-1.3.07.07/server/functions_server.h 2007-10-25 08:30:44.000000000 -0500
5
int udpsuccess(rr *where, int id, int sock, struct sockaddr_in *client,
6
js_string *query, void **rotate_point, int show_cname_a,
7
- int rd_val, conn *ect, int force_authoritative);
8
+ int rd_val, conn *ect, int force_authoritative, int
10
--- maradns-1.3.07.07/server/MaraDNS.c.orig 2007-10-25 08:26:23.000000000 -0500
11
+++ maradns-1.3.07.07/server/MaraDNS.c 2007-10-25 08:30:58.000000000 -0500
12
@@ -2434,11 +2434,11 @@
13
if(spot_data.value != 0 && spot_data.datatype == MARA_DNSRR) {
14
if(qtype_o == RR_A || qtype_q == RR_CNAME) {
15
udpsuccess(spot_data.value,id,sock,0,question,
16
- spot_data.point,1,rd_val,ect,force_auth);
17
+ spot_data.point,1,rd_val,ect,force_auth,0);
20
udpsuccess(spot_data.value,id,sock,0,question,
21
- spot_data.point,0,rd_val,ect,force_auth);
22
+ spot_data.point,0,rd_val,ect,force_auth,0);
28
/* We return a NS server delegation */
29
udpsuccess(spot_data.value,header.id,sock,0,origq,spot_data.point,
30
- 0,desires_recursion,ect,0);
31
+ 0,desires_recursion,ect,0,0);
32
js_destroy(lookfor); js_destroy(origq); js_destroy(lc);
36
if(spot_data.value != 0 && spot_data.datatype == MARA_DNSRR) {
37
/* We return a NS server delegation */
38
udpsuccess(spot_data.value,header.id,sock,0,origq,
39
- spot_data.point,0,desires_recursion,ect,0);
40
+ spot_data.point,0,desires_recursion,ect,0,0);
41
js_destroy(lookfor); js_destroy(origq); js_destroy(lc);
44
--- maradns-1.3.07.07/server/recursive.c.orig 2007-10-25 08:26:48.000000000 -0500
45
+++ maradns-1.3.07.07/server/recursive.c 2007-10-25 08:30:07.000000000 -0500
47
extern int udpsuccess(rr *where, int id, int sock, struct sockaddr_in
48
*client, js_string *query, void **rotate_point,
49
int show_cname_a, int rd_val, conn *ect,
50
- int force_authoritative);
51
+ int force_authoritative, int ra_value);
52
extern int mhash_add_ip();
53
extern int mhash_put_data();
58
udpsuccess(value,id,sock,&client,query,rotate_point,
59
- cname_answer,1,0,0);
60
+ cname_answer,1,0,0,1);
63
else if(ipret != NULL) { /* If we are simply changint the value of
67
udpsuccess(spot_data.value,id,sock,&client,query,
68
- spot_data.point,0,1,0,0);
69
+ spot_data.point,0,1,0,0,1);
73
@@ -3439,10 +3439,10 @@
75
if(original_rtype > 0)
76
udpsuccess(spot_data.value,id,sock,&client,query,
77
- spot_data.point,original_rtype,1,0,0);
78
+ spot_data.point,original_rtype,1,0,0,1);
80
udpsuccess(spot_data.value,id,sock,&client,query,
81
- spot_data.point,0,1,0,0);
82
+ spot_data.point,0,1,0,0,1);
86
--- maradns-1.3.07.07/server/udpsuccess.c.orig 2007-10-25 08:26:40.000000000 -0500
87
+++ maradns-1.3.07.07/server/udpsuccess.c 2007-10-25 08:29:15.000000000 -0500
89
authoritative bit is determined by looking at the data in where.
90
If 1, the record is always marked in the DNS headers as
92
+ The value to give the "RA" bit.
93
Output: JS_ERROR on error, JS_SUCCESS on success
96
int udpsuccess(rr *where, int id, int sock, struct sockaddr_in *client,
97
js_string *query, void **rotate_point, int show_cname_a,
98
- int rd_val, conn *ect, int force_authoritative) {
99
+ int rd_val, conn *ect, int force_authoritative,int ra_value) {
100
js_string *most = 0; /* Most of the data */
101
js_string *ar = 0; /* Then the additional records */
106
header.rd = rd_val; /* RDBUG udpsuccess */
108
+ header.ra = ra_value;
110
header.rcode = 0; /* No error */