Changeset d531bd6 in mainline for uspace/srv/net/dnsrsrv/dns_msg.c


Ignore:
Timestamp:
2013-05-08T09:24:24Z (11 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9f029aa
Parents:
06fe3b6
Message:

Handle CNAME records.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/dnsrsrv/dns_msg.c

    r06fe3b6 rd531bd6  
    135135}
    136136
    137 static int dns_name_decode(uint8_t *buf, size_t size, size_t boff, char **rname,
     137int dns_name_decode(uint8_t *buf, size_t size, size_t boff, char **rname,
    138138    size_t *eoff)
    139139{
     
    405405
    406406        memcpy(rr->rdata, bp, rdlength);
     407        rr->roff = bp - buf;
    407408        bp += rdlength;
    408409        bsz -= rdlength;
     
    491492                return ENOMEM;
    492493
    493         if (size < sizeof(dns_header_t))
    494                 return EINVAL;
     494        if (size < sizeof(dns_header_t)) {
     495                rc = EINVAL;
     496                goto error;
     497        }
     498
     499        /* Store a copy of raw message data for string decompression */
     500
     501        msg->raw = malloc(size);
     502        if (msg->raw == NULL) {
     503                rc = EINVAL;
     504                goto error;
     505        }
     506
     507        memcpy(msg->raw, data, size);
     508        msg->raw_size = size;
     509        log_msg(LOG_DEFAULT, LVL_NOTE, "dns_message_decode: msg->raw = %p, msg->raw_size=%zu",
     510            msg->raw, msg->raw_size);
    495511
    496512        hdr = data;
     
    605621        }
    606622
     623        free(msg->raw);
    607624        free(msg);
    608625}
Note: See TracChangeset for help on using the changeset viewer.