ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV-ADNS/ADNS.xs
(Generate patch)

Comparing EV-ADNS/ADNS.xs (file contents):
Revision 1.7 by root, Sat Dec 1 21:01:32 2007 UTC vs.
Revision 1.8 by root, Sat Dec 1 21:29:08 2007 UTC

69 case adns_r_ptr_raw: 69 case adns_r_ptr_raw:
70 sv = newSVpv (a->rrs.str [i], 0); 70 sv = newSVpv (a->rrs.str [i], 0);
71 break; 71 break;
72 72
73 case adns_r_txt: 73 case adns_r_txt:
74 sv = newSVpvn (a->rrs.manyistr [i]->str, a->rrs.manyistr [i]->i); 74 {
75 AV *av = newAV ();
76 adns_rr_intstr *rr = a->rrs.manyistr [i];
77
78 while (rr->str)
79 {
80 av_push (av, newSVpvn (rr->str, rr->i));
81 ++rr;
82 }
83
84 sv = newRV_noinc ((SV *)av);
85 }
75 break; 86 break;
76 87
77 case adns_r_a: 88 case adns_r_a:
78 sv = newSVpv (inet_ntoa (a->rrs.inaddr [i]), 0); 89 sv = newSVpv (inet_ntoa (a->rrs.inaddr [i]), 0);
79 break; 90 break;
84 95
85 case adns_r_hinfo: 96 case adns_r_hinfo:
86 { 97 {
87 /* untested */ 98 /* untested */
88 AV *av = newAV (); 99 AV *av = newAV ();
89 sv = newRV_noinc ((SV *)av);
90 adns_rr_intstrpair *rr = a->rrs.intstrpair + i; 100 adns_rr_intstrpair *rr = a->rrs.intstrpair + i;
91 101
92 av_push (av, newSVpvn (rr->array [0].str, rr->array [0].i)); 102 av_push (av, newSVpvn (rr->array [0].str, rr->array [0].i));
93 av_push (av, newSVpvn (rr->array [1].str, rr->array [1].i)); 103 av_push (av, newSVpvn (rr->array [1].str, rr->array [1].i));
104
105 sv = newRV_noinc ((SV *)av);
94 } 106 }
95 break; 107 break;
96 108
97 case adns_r_rp: 109 case adns_r_rp:
98 case adns_r_rp_raw: 110 case adns_r_rp_raw:
99 { 111 {
100 /* untested */ 112 /* untested */
101 AV *av = newAV (); 113 AV *av = newAV ();
102 sv = newRV_noinc ((SV *)av);
103 adns_rr_strpair *rr = a->rrs.strpair + i; 114 adns_rr_strpair *rr = a->rrs.strpair + i;
104 115
105 av_push (av, newSVpv (rr->array [0], 0)); 116 av_push (av, newSVpv (rr->array [0], 0));
106 av_push (av, newSVpv (rr->array [1], 0)); 117 av_push (av, newSVpv (rr->array [1], 0));
118
119 sv = newRV_noinc ((SV *)av);
107 } 120 }
108 break; 121 break;
109 122
110 case adns_r_mx: 123 case adns_r_mx:
111 { 124 {
112 AV *av = newAV (); 125 AV *av = newAV ();
113 sv = newRV_noinc ((SV *)av);
114 adns_rr_inthostaddr *rr = a->rrs.inthostaddr + i; 126 adns_rr_inthostaddr *rr = a->rrs.inthostaddr + i;
115 127
116 av_push (av, newSViv (rr->i)); 128 av_push (av, newSViv (rr->i));
117 av_push (av, ha2sv (&rr->ha)); 129 av_push (av, ha2sv (&rr->ha));
130
131 sv = newRV_noinc ((SV *)av);
118 } 132 }
119 break; 133 break;
120 134
121 case adns_r_mx_raw: 135 case adns_r_mx_raw:
122 { 136 {
123 AV *av = newAV (); 137 AV *av = newAV ();
124 sv = newRV_noinc ((SV *)av);
125 adns_rr_intstr *rr = a->rrs.intstr + i; 138 adns_rr_intstr *rr = a->rrs.intstr + i;
126 139
127 av_push (av, newSViv (rr->i)); 140 av_push (av, newSViv (rr->i));
128 av_push (av, newSVpv (rr->str, 0)); 141 av_push (av, newSVpv (rr->str, 0));
142
143 sv = newRV_noinc ((SV *)av);
129 } 144 }
130 break; 145 break;
131 146
132 case adns_r_soa: 147 case adns_r_soa:
133 case adns_r_soa_raw: 148 case adns_r_soa_raw:
134 { 149 {
135 AV *av = newAV (); 150 AV *av = newAV ();
136 sv = newRV_noinc ((SV *)av);
137 adns_rr_soa *rr = a->rrs.soa + i; 151 adns_rr_soa *rr = a->rrs.soa + i;
138 152
139 av_push (av, newSVpv (rr->mname, 0)); 153 av_push (av, newSVpv (rr->mname, 0));
140 av_push (av, newSVpv (rr->rname, 0)); 154 av_push (av, newSVpv (rr->rname, 0));
141 av_push (av, newSVuv (rr->serial)); 155 av_push (av, newSVuv (rr->serial));
142 av_push (av, newSVuv (rr->refresh)); 156 av_push (av, newSVuv (rr->refresh));
143 av_push (av, newSVuv (rr->retry)); 157 av_push (av, newSVuv (rr->retry));
144 av_push (av, newSVuv (rr->expire)); 158 av_push (av, newSVuv (rr->expire));
145 av_push (av, newSVuv (rr->minimum)); 159 av_push (av, newSVuv (rr->minimum));
160
161 sv = newRV_noinc ((SV *)av);
146 } 162 }
147 break; 163 break;
148 164
149 case adns_r_srv_raw: 165 case adns_r_srv_raw:
150 { 166 {
151 AV *av = newAV (); 167 AV *av = newAV ();
152 sv = newRV_noinc ((SV *)av);
153 adns_rr_srvraw *rr = a->rrs.srvraw + i; 168 adns_rr_srvraw *rr = a->rrs.srvraw + i;
154 169
155 av_push (av, newSViv (rr->priority)); 170 av_push (av, newSViv (rr->priority));
156 av_push (av, newSViv (rr->weight)); 171 av_push (av, newSViv (rr->weight));
157 av_push (av, newSViv (rr->port)); 172 av_push (av, newSViv (rr->port));
158 av_push (av, newSVpv (rr->host, 0)); 173 av_push (av, newSVpv (rr->host, 0));
174
175 sv = newRV_noinc ((SV *)av);
159 } 176 }
160 break; 177 break;
161 178
162 case adns_r_srv: 179 case adns_r_srv:
163 { 180 {
164 AV *av = newAV (); 181 AV *av = newAV ();
165 sv = newRV_noinc ((SV *)av);
166 adns_rr_srvha *rr = a->rrs.srvha + i; 182 adns_rr_srvha *rr = a->rrs.srvha + i;
167 183
168 av_push (av, newSViv (rr->priority)); 184 av_push (av, newSViv (rr->priority));
169 av_push (av, newSViv (rr->weight)); 185 av_push (av, newSViv (rr->weight));
170 av_push (av, newSViv (rr->port)); 186 av_push (av, newSViv (rr->port));
171 av_push (av, ha2sv (&rr->ha)); 187 av_push (av, ha2sv (&rr->ha));
188
189 sv = newRV_noinc ((SV *)av);
172 } 190 }
173 break; 191 break;
174 192
175 case adns_r_unknown: 193 case adns_r_unknown:
176 sv = newSVpvn (a->rrs.byteblock [i].data, a->rrs.byteblock [i].len); 194 sv = newSVpvn (a->rrs.byteblock [i].data, a->rrs.byteblock [i].len);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines