Lines Matching refs:data

53 static size_t skip_question(const uchar_t *header, const uchar_t *data,
56 const uchar_t *data, const uchar_t *data_end, int detail);
58 const uchar_t *data, const uchar_t *data_end, int detail);
59 static char *binary_string(char data);
60 static void print_ip(int af, char *line, const uchar_t *data, uint16_t len);
61 static const uchar_t *get_char_string(const uchar_t *data, char *charbuf,
63 static size_t print_char_string(char *line, const uchar_t *data, uint16_t len);
65 const uchar_t *data, const uchar_t *data_end, char *namebuf, char *namend);
67 const uchar_t *data, const uchar_t *data_end);
70 interpret_dns(int flags, int proto, const uchar_t *data, int len, int port)
102 data_end = data + len;
107 (void) memcpy(&header, data, sizeof (header));
123 rrp = data + sizeof (dns_header);
128 rrp += skip_question(data,
134 data, rrp, data_end, FALSE);
143 rrp = data + sizeof (dns_header);
147 (void) print_question(line, data, rrp, data_end,
181 rrp = data + sizeof (dns_header);
189 data, rrp, data_end, TRUE);
203 data, rrp, data_end, TRUE);
217 rrp += print_answer(get_line(0, 0), data,
229 rrp += print_answer(get_line(0, 0), data,
320 skip_question(const uchar_t *header, const uchar_t *data,
323 const uchar_t *data_bak = data;
326 data = get_domain_name(header, data, data_end, dummy_buffer,
329 data += sizeof (uint32_t);
330 return (data - data_bak);
334 print_question(char *line, const uchar_t *header, const uchar_t *data,
337 const uchar_t *data_bak = data;
345 data += print_domain_name(line, header, data, data_end);
359 if ((data_end - data) < (ptrdiff_t)(2 * sizeof (uint16_t)))
362 GETINT16(type, data);
363 GETINT16(cls, data);
386 return (data - data_bak);
397 * *data: location within header from where the RR starts.
398 * *data_end: where DNS data ends.
450 print_answer(char *line, const uchar_t *header, const uchar_t *data,
453 const uchar_t *data_bak = data;
477 data += print_domain_name(line, header, data, data_end);
483 if ((data_end - data) < (ptrdiff_t)(sizeof (type))) {
487 GETINT16(type, data);
494 if ((data_end - data) <
503 GETINT16(size, data);
504 GETINT8(xrcode, data);
513 GETINT8(ver, data);
514 GETINT16(cls, data); /* zero */
515 GETINT16(rdlen, data);
542 * Make sure that rdlen is within data boundary.
544 if (rdlen > data_end - data)
549 data += rdlen;
550 return (data - data_bak);
557 if ((data_end - data) <
564 GETINT16(cls, data);
589 GETINT32(ttl, data);
595 GETINT16(rdlen, data);
602 if (rdlen > data_end - data)
607 print_ip(AF_INET, line, data, rdlen);
610 print_ip(AF_INET6, line, data, rdlen);
614 data_next = data + print_char_string(line, data, rdlen);
620 rdlen - (data_next - data));
628 (void) print_domain_name(line, header, data, data_end);
631 data_next = data;
651 data_next = data + print_domain_name(line, header, data,
675 print_ip(AF_INET, line, data, rdlen);
678 data_next = data + sizeof (in_addr_t);
698 while (data_next < data + rdlen) {
717 data_next = data + print_domain_name(line, header, data,
726 data += rdlen;
727 return (data - data_bak);
731 binary_string(char data)
738 *ptr++ = (data & 0x80) ? '1' : '0';
739 data = data << 1;
746 print_ip(int af, char *line, const uchar_t *data, uint16_t len)
756 addr = memcpy(&addr4, data, sizeof (addr4));
761 addr = memcpy(&addr6, data, sizeof (addr6));
772 get_char_string(const uchar_t *data, char *charbuf, uint16_t datalen)
783 len = *data;
784 data++;
786 for (i = 0; i < len; i++, data++)
787 name[i] = *data;
791 return (data);
795 print_char_string(char *line, const uchar_t *data, uint16_t len)
798 const uchar_t *data_bak = data;
800 data = get_char_string(data, charbuf, len);
802 return (data - data_bak);
808 * data: the start of the domain name
813 get_domain_name(const uchar_t *header, const uchar_t *data,
827 if ((data_end - data) < (ptrdiff_t)(sizeof (uint8_t))) {
831 GETINT8(len, data);
856 data--;
857 if ((data_end - data) <
863 data = data_end;
866 GETINT16(offset, data);
870 * checking that it is less than the current data
874 if (label_ptr > data || label_ptr >= data_end)
878 return (data);
880 if (len > (data_end - data)) {
884 * caller checks that the data pointer is
888 data = data_end;
892 *name = *data;
894 data++;
902 return (data);
906 print_domain_name(char *line, const uchar_t *header, const uchar_t *data,
912 new_data = get_domain_name(header, data, data_end, name,
916 return (new_data - data);