19 #ifdef HAVE_SYS_SOCKET_H 20 #include <sys/socket.h> 22 #ifdef HAVE_ARPA_INET_H 23 #include <arpa/inet.h> 31 #ifndef INET_ADDRSTRLEN 32 #define INET_ADDRSTRLEN 16 34 #ifndef INET6_ADDRSTRLEN 35 #define INET6_ADDRSTRLEN 46 61 { LDNS_ED25519,
"ED25519"},
64 { LDNS_ED448,
"ED448"},
192 if (lt && lt->
name) {
197 return ldns_buffer_status(output);
204 if (lt && lt->
name) {
209 return ldns_buffer_status(output);
218 if (lt && lt->
name) {
223 return ldns_buffer_status(output);
232 if (lt && lt->
name) {
238 return ldns_buffer_status(output);
349 for(i = 0; i < len; i++) {
353 c = (
unsigned char) data[src_pos];
354 if(c ==
'.' || c ==
';' ||
355 c ==
'(' || c ==
')' ||
359 }
else if (!(isascii(c) && isgraph(c))) {
374 return ldns_buffer_status(output);
382 return ldns_buffer_status(output);
390 return ldns_buffer_status(output);
398 return ldns_buffer_status(output);
408 memset(&tm, 0,
sizeof(tm));
410 && strftime(date_buf, 15,
"%Y%m%d%H%M%S", &tm)) {
413 return ldns_buffer_status(output);
424 return ldns_buffer_status(output);
436 return ldns_buffer_status(output);
441 size_t amount,
const uint8_t* characters)
446 if (isprint((
int)ch) || ch ==
'\t') {
447 if (ch ==
'\"' || ch ==
'\\')
453 (
unsigned)(uint8_t) ch);
469 ldns_characters2buffer_str(output,
472 return ldns_buffer_status(output);
478 size_t size = ldns_b64_ntop_calculate_size(
ldns_rdf_size(rdf));
485 return ldns_buffer_status(output);
506 return ldns_buffer_status(output);
517 return ldns_buffer_status(output);
526 if (! ldns_output_format_covers_type(fmt, data) &&
534 return ldns_buffer_status(output);
540 return ldns_rdf2buffer_str_type_fmt(output,
556 return ldns_buffer_status(output);
570 return ldns_buffer_status(output);
580 loc_cm_print(
ldns_buffer *output, uint8_t mantissa, uint8_t exponent)
592 for(i=0; i<exponent-2; i++)
620 if (descriptor && descriptor->
_name) {
626 return ldns_buffer_status(output);
662 return ldns_buffer_status(output);
690 uint8_t horizontal_precision;
691 uint8_t vertical_precision;
701 uint32_t equator = (uint32_t) ldns_power(2, 31);
719 if (latitude > equator) {
721 latitude = latitude - equator;
724 latitude = equator - latitude;
726 h = latitude / (1000 * 60 * 60);
727 latitude = latitude % (1000 * 60 * 60);
728 m = latitude / (1000 * 60);
729 latitude = latitude % (1000 * 60);
730 s = (double) latitude / 1000.0;
732 h, m, s, northerness);
734 if (longitude > equator) {
736 longitude = longitude - equator;
739 longitude = equator - longitude;
741 h = longitude / (1000 * 60 * 60);
742 longitude = longitude % (1000 * 60 * 60);
743 m = longitude / (1000 * 60);
744 longitude = longitude % (1000 * 60);
745 s = (double) longitude / (1000.0);
747 h, m, s, easterness);
750 s = ((double) altitude) / 100;
753 if(altitude%100 != 0)
760 loc_cm_print(output, (size & 0xf0) >> 4, size & 0x0f);
763 loc_cm_print(output, (horizontal_precision & 0xf0) >> 4,
764 horizontal_precision & 0x0f);
767 loc_cm_print(output, (vertical_precision & 0xf0) >> 4,
768 vertical_precision & 0x0f);
771 return ldns_buffer_status(output);
801 struct protoent *protocol;
802 char *proto_name = NULL;
804 struct servent *service;
805 uint16_t current_service;
811 protocol = getprotobynumber((
int) protocol_nr);
812 if (protocol && (protocol->p_name != NULL)) {
813 proto_name = protocol->p_name;
819 #ifdef HAVE_ENDPROTOENT 823 for (current_service = 0;
824 current_service < (
ldns_rdf_size(rdf)-1)*8; current_service++) {
826 service = getservbyport((
int) htons(current_service),
828 if (service && service->s_name) {
833 #ifdef HAVE_ENDSERVENT 838 return ldns_buffer_status(output);
848 uint8_t window_block_nr;
849 uint8_t bitmap_length;
856 window_block_nr = data[pos];
857 bitmap_length = data[pos + 1];
862 for (bit_pos = 0; bit_pos < (bitmap_length) * 8; bit_pos++) {
866 type = 256 * (uint16_t) window_block_nr + bit_pos;
868 if (! ldns_output_format_covers_type(fmt, type) &&
878 pos += (uint16_t) bitmap_length;
880 return ldns_buffer_status(output);
886 return ldns_rdf2buffer_str_nsec_fmt(output,
901 salt_length = data[0];
903 if (salt_length == 0 || ((
size_t)salt_length)+1 >
ldns_rdf_size(rdf)) {
906 for (salt_pos = 0; salt_pos < salt_length; salt_pos++) {
912 return ldns_buffer_status(output);
923 return ldns_buffer_status(output);
930 uint64_t tsigtime = 0;
932 uint64_t d0, d1, d2, d3, d4, d5;
943 tsigtime = (d0<<40) | (d1<<32) | (d2<<24) | (d3<<16) | (d4<<8) | d5;
947 return ldns_buffer_status(output);
954 uint16_t address_family;
964 address_family = ldns_read_uint16(&data[pos]);
965 prefix = data[pos + 2];
975 for (i = 0; i < 4; i++) {
979 if (i < (
unsigned short) adf_length) {
996 for (i = 0; i < 16; i++) {
997 if (i % 2 == 0 && i > 0) {
1000 if (i < (
unsigned short) adf_length) {
1014 "Unknown address family: %u data: ",
1016 for (i = 1; i < (
unsigned short) (4 + adf_length); i++) {
1022 pos += 4 + adf_length;
1024 return ldns_buffer_status(output);
1036 size = ldns_b64_ntop_calculate_size(
ldns_rdf_size(rdf) - 2);
1051 return ldns_buffer_status(output);
1062 uint8_t gateway_type;
1066 uint8_t *gateway_data;
1068 size_t public_key_size;
1069 uint8_t *public_key_data;
1078 precedence = data[0];
1079 gateway_type = data[1];
1080 algorithm = data[2];
1083 switch (gateway_type) {
1135 public_key_data =
LDNS_XMALLOC(uint8_t, public_key_size);
1136 if(!public_key_data) {
1140 memcpy(public_key_data, &data[offset], public_key_size);
1142 public_key_size, public_key_data);
1160 return ldns_buffer_status(output);
1174 return ldns_buffer_status(output);
1187 return ldns_buffer_status(output);
1201 return ldns_buffer_status(output);
1208 const uint8_t* chars;