| 966 | } |
| 967 | |
| 968 | static bool WriteRecordPtr(uint8_t* buffer, uint32_t buffer_size, uint32_t* offset, |
| 969 | const char* service_type_local, const char* full_service_name, uint32_t ttl) |
| 970 | { |
| 971 | uint8_t name_buffer[256]; |
| 972 | uint32_t name_offset = 0; |
| 973 | if (!WriteName(name_buffer, sizeof(name_buffer), &name_offset, full_service_name)) |
| 974 | return false; |
| 975 | |
| 976 | if (!WriteRecordHeader(buffer, buffer_size, offset, |
| 977 | service_type_local, |
| 978 | DNS_TYPE_PTR, |
| 979 | DNS_CLASS_IN, |
| 980 | ttl, |
| 981 | (uint16_t) name_offset)) |
| 982 | return false; |
| 983 | |
| 984 | if (*offset + name_offset > buffer_size) |
| 985 | return false; |
| 986 | |
| 987 | memcpy(buffer + *offset, name_buffer, name_offset); |
| 988 | *offset += name_offset; |
| 989 | return true; |
| 990 | } |
| 991 | |
| 992 | static bool WriteRecordA(uint8_t* buffer, uint32_t buffer_size, uint32_t* offset, |
| 993 | const RegisteredService& service, const dmSocket::Address& host_address, uint32_t ttl) |
no test coverage detected