Changes in uspace/srv/net/dnsrsrv/dns_msg.c [feeac0d:9f029aa] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/dnsrsrv/dns_msg.c
rfeeac0d r9f029aa 296 296 uint32_t dns_uint32_t_decode(uint8_t *buf, size_t buf_size) 297 297 { 298 uint32_t w; 298 299 assert(buf_size >= 4); 299 300 uint32_t w = ((uint32_t)buf[0] << 24) +301 ((uint32_t) 302 ((uint32_t) 300 301 w = ((uint32_t)buf[0] << 24) + 302 ((uint32_t)buf[1] << 16) + 303 ((uint32_t)buf[2] << 8) + 303 304 buf[3]; 304 305 305 306 return w; 306 }307 308 /** Decode unaligned big-endian 128-bit integer */309 void dns_addr128_t_decode(uint8_t *buf, size_t buf_size, addr128_t addr)310 {311 assert(buf_size >= 16);312 313 addr128_t_be2host(buf, addr);314 307 } 315 308 … … 407 400 int rc; 408 401 409 rr = calloc(1, sizeof (dns_rr_t));402 rr = calloc(1, sizeof (dns_rr_t)); 410 403 if (rr == NULL) 411 404 return ENOMEM; … … 434 427 435 428 rr->rtype = dns_uint16_t_decode(bp, bsz); 436 bp += sizeof(uint16_t); 437 bsz -= sizeof(uint16_t); 429 bp += sizeof(uint16_t); bsz -= sizeof(uint16_t); 438 430 439 431 rr->rclass = dns_uint16_t_decode(bp, bsz); 440 bp += sizeof(uint16_t); 441 bsz -= sizeof(uint16_t); 432 bp += sizeof(uint16_t); bsz -= sizeof(uint16_t); 442 433 443 434 rr->ttl = dns_uint32_t_decode(bp, bsz); 444 bp += sizeof(uint32_t); 445 bsz -= sizeof(uint32_t); 435 bp += sizeof(uint32_t); bsz -= sizeof(uint32_t); 446 436 447 437 rdlength = dns_uint16_t_decode(bp, bsz); 448 bp += sizeof(uint16_t); 449 bsz -= sizeof(uint16_t); 438 bp += sizeof(uint16_t); bsz -= sizeof(uint16_t); 450 439 451 440 if (rdlength > bsz) { … … 510 499 size = sizeof(dns_header_t); 511 500 512 list_foreach(msg->question, msg, dns_question_t, q) { 501 list_foreach(msg->question, link) { 502 dns_question_t *q = list_get_instance(link, dns_question_t, msg); 513 503 rc = dns_question_encode(q, NULL, 0, &q_size); 514 504 if (rc != EOK) … … 525 515 di = sizeof(dns_header_t); 526 516 527 list_foreach(msg->question, msg, dns_question_t, q) { 517 list_foreach(msg->question, link) { 518 dns_question_t *q = list_get_instance(link, dns_question_t, msg); 528 519 rc = dns_question_encode(q, data + di, size - di, &q_size); 529 520 if (rc != EOK) {
Note:
See TracChangeset
for help on using the changeset viewer.