• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/Heimdal-398.1.2/lib/roken/

Lines Matching refs:rr

104 dns_free_rr(struct rk_resource_record *rr)
106 if(rr->domain)
107 free(rr->domain);
108 if(rr->u.data)
109 free(rr->u.data);
110 free(rr);
116 struct rk_resource_record *rr;
119 for(rr = r->head; rr;){
120 struct rk_resource_record *tmp = rr;
121 rr = rr->next;
133 struct rk_resource_record *rr;
161 rr = calloc(1, sizeof(*rr));
162 if(rr == NULL)
164 rr->domain = strdup(host);
165 if(rr->domain == NULL) {
166 dns_free_rr(rr);
169 rr->type = type;
170 rr->class = class;
171 rr->ttl = ttl;
172 rr->size = size;
179 dns_free_rr(rr);
182 rr->u.txt = strdup(host);
183 if(rr->u.txt == NULL) {
184 dns_free_rr(rr);
194 dns_free_rr(rr);
198 dns_free_rr(rr);
203 rr->u.mx = (struct mx_record*)malloc(sizeof(struct mx_record) +
205 if(rr->u.mx == NULL) {
206 dns_free_rr(rr);
209 rr->u.mx->preference = (p[0] << 8) | p[1];
210 strlcpy(rr->u.mx->domain, host, hostlen + 1);
217 dns_free_rr(rr);
221 dns_free_rr(rr);
226 rr->u.srv =
229 if(rr->u.srv == NULL) {
230 dns_free_rr(rr);
233 rr->u.srv->priority = (p[0] << 8) | p[1];
234 rr->u.srv->weight = (p[2] << 8) | p[3];
235 rr->u.srv->port = (p[4] << 8) | p[5];
236 strlcpy(rr->u.srv->target, host, hostlen + 1);
241 dns_free_rr(rr);
244 rr->u.txt = (char*)malloc(*p + 1);
245 if(rr->u.txt == NULL) {
246 dns_free_rr(rr);
249 strncpy(rr->u.txt, (const char*)(p + 1), *p);
250 rr->u.txt[*p] = '\0';
257 dns_free_rr(rr);
262 rr->u.key = malloc (sizeof(*rr->u.key) + key_len - 1);
263 if (rr->u.key == NULL) {
264 dns_free_rr(rr);
268 rr->u.key->flags = (p[0] << 8) | p[1];
269 rr->u.key->protocol = p[2];
270 rr->u.key->algorithm = p[3];
271 rr->u.key->key_len = key_len;
272 memcpy (rr->u.key->key_data, p + 4, key_len);
279 dns_free_rr(rr);
284 dns_free_rr(rr);
288 dns_free_rr(rr);
299 rr->u.sig = malloc(sizeof(*rr->u.sig)
301 if (rr->u.sig == NULL) {
302 dns_free_rr(rr);
305 rr->u.sig->type = (p[0] << 8) | p[1];
306 rr->u.sig->algorithm = p[2];
307 rr->u.sig->labels = p[3];
308 rr->u.sig->orig_ttl = (p[4] << 24) | (p[5] << 16)
310 rr->u.sig->sig_expiration = (p[8] << 24) | (p[9] << 16)
312 rr->u.sig->sig_inception = (p[12] << 24) | (p[13] << 16)
314 rr->u.sig->key_tag = (p[16] << 8) | p[17];
315 rr->u.sig->sig_len = sig_len;
316 memcpy (rr->u.sig->sig_data, p + 18 + status, sig_len);
317 rr->u.sig->signer = &rr->u.sig->sig_data[sig_len];
318 strlcpy(rr->u.sig->signer, host, hostlen + 1);
326 dns_free_rr(rr);
331 rr->u.cert = malloc (sizeof(*rr->u.cert) + cert_len - 1);
332 if (rr->u.cert == NULL) {
333 dns_free_rr(rr);
337 rr->u.cert->type = (p[0] << 8) | p[1];
338 rr->u.cert->tag = (p[2] << 8) | p[3];
339 rr->u.cert->algorithm = p[4];
340 rr->u.cert->cert_len = cert_len;
341 memcpy (rr->u.cert->cert_data, p + 5, cert_len);
348 dns_free_rr(rr);
354 rr->u.sshfp = malloc (sizeof(*rr->u.sshfp) + sshfp_len - 1);
355 if (rr->u.sshfp == NULL) {
356 dns_free_rr(rr);
360 rr->u.sshfp->algorithm = p[0];
361 rr->u.sshfp->type = p[1];
362 rr->u.sshfp->sshfp_len = sshfp_len;
363 memcpy (rr->u.sshfp->sshfp_data, p + 2, sshfp_len);
370 dns_free_rr(rr);
376 rr->u.ds = malloc (sizeof(*rr->u.ds) + digest_len - 1);
377 if (rr->u.ds == NULL) {
378 dns_free_rr(rr);
382 rr->u.ds->key_tag = (p[0] << 8) | p[1];
383 rr->u.ds->algorithm = p[2];
384 rr->u.ds->digest_type = p[3];
385 rr->u.ds->digest_len = digest_len;
386 memcpy (rr->u.ds->digest_data, p + 4, digest_len);
390 rr->u.data = (unsigned char*)malloc(size);
391 if(size != 0 && rr->u.data == NULL) {
392 dns_free_rr(rr);
396 memcpy(rr->u.data, p, size);
399 *ret_rr = rr;
413 struct rk_resource_record **rr;
470 rr = &r->head;
472 if(parse_record(data, end_data, &p, rr) != 0) {
476 rr = &(*rr)->next;
479 if(parse_record(data, end_data, &p, rr) != 0) {
483 rr = &(*rr)->next;
486 if(parse_record(data, end_data, &p, rr) != 0) {
490 rr = &(*rr)->next;
492 *rr = NULL;
628 struct rk_resource_record *rr;
633 for(rr = r->head; rr; rr = rr->next)
634 if(rr->type == rk_ns_t_srv)
709 struct rk_resource_record * rr;
714 rr = calloc(1, sizeof(*rr));
716 rr->domain = strdup(pRec->pName);
717 rr->type = pRec->wType;
718 rr->class = 0;
719 rr->ttl = pRec->dwTtl;
720 rr->size = 0;
722 switch (rr->type) {
726 rr->u.txt = strdup(pRec->Data.NS.pNameHost);
727 if(rr->u.txt == NULL) {
728 dns_free_rr(rr);
737 rr->u.mx = (struct mx_record *)malloc(sizeof(struct mx_record) +
739 if (rr->u.mx == NULL) {
740 dns_free_rr(rr);
744 strcpy_s(rr->u.mx->domain, hostlen + 1, pRec->Data.MX.pNameExchange);
745 rr->u.mx->preference = pRec->Data.MX.wPreference;
752 rr->u.srv =
755 if(rr->u.srv == NULL) {
756 dns_free_rr(rr);
760 rr->u.srv->priority = pRec->Data.SRV.wPriority;
761 rr->u.srv->weight = pRec->Data.SRV.wWeight;
762 rr->u.srv->port = pRec->Data.SRV.wPort;
763 strcpy_s(rr->u.srv->target, hostlen + 1, pRec->Data.SRV.pNameTarget);
772 rr->u.txt = strdup("");
778 rr->u.txt = (char *)malloc(len + 1);
779 strcpy_s(rr->u.txt, len + 1, pRec->Data.TXT.pStringArray[0]);
788 dns_free_rr(rr);
793 rr->u.key = malloc (sizeof(*rr->u.key) + key_len - 1);
794 if (rr->u.key == NULL) {
795 dns_free_rr(rr);
799 rr->u.key->flags = pRec->Data.KEY.wFlags;
800 rr->u.key->protocol = pRec->Data.KEY.chProtocol;
801 rr->u.key->algorithm = pRec->Data.KEY.chAlgorithm;
802 rr->u.key->key_len = key_len;
803 memcpy_s (rr->u.key->key_data, key_len,
812 dns_free_rr(rr);
820 rr->u.sig = malloc(sizeof(*rr->u.sig)
822 if (rr->u.sig == NULL) {
823 dns_free_rr(rr);
826 rr->u.sig->type = pRec->Data.SIG.wTypeCovered;
827 rr->u.sig->algorithm = pRec->Data.SIG.chAlgorithm;
828 rr->u.sig->labels = pRec->Data.SIG.chLabelCount;
829 rr->u.sig->orig_ttl = pRec->Data.SIG.dwOriginalTtl;
830 rr->u.sig->sig_expiration = pRec->Data.SIG.dwExpiration;
831 rr->u.sig->sig_inception = pRec->Data.SIG.dwTimeSigned;
832 rr->u.sig->key_tag = pRec->Data.SIG.wKeyTag;
833 rr->u.sig->sig_len = sig_len;
834 memcpy_s (rr->u.sig->sig_data, sig_len,
836 rr->u.sig->signer = &rr->u.sig->sig_data[sig_len];
837 strcpy_s(rr->u.sig->signer, hostlen + 1, pRec->Data.SIG.pNameSigner);
843 rr->u.ds = malloc (sizeof(*rr->u.ds) + pRec->Data.DS.wDigestLength - 1);
844 if (rr->u.ds == NULL) {
845 dns_free_rr(rr);
849 rr->u.ds->key_tag = pRec->Data.DS.wKeyTag;
850 rr->u.ds->algorithm = pRec->Data.DS.chAlgorithm;
851 rr->u.ds->digest_type = pRec->Data.DS.chDigestType;
852 rr->u.ds->digest_len = pRec->Data.DS.wDigestLength;
853 memcpy_s (rr->u.ds->digest_data, pRec->Data.DS.wDigestLength,
860 dns_free_rr(rr);
864 rr->next = parse_dns_record(pRec->pNext);
865 return rr;