diff --git a/Libraries/LibDNS/CMakeLists.txt b/Libraries/LibDNS/CMakeLists.txt index 63dc030dd4e..6a611fbfe8e 100644 --- a/Libraries/LibDNS/CMakeLists.txt +++ b/Libraries/LibDNS/CMakeLists.txt @@ -2,5 +2,5 @@ set(SOURCES Message.cpp ) -ladybird_lib(LibDNS dns) +ladybird_lib(LibDNS dns EXPLICIT_SYMBOL_EXPORT) target_link_libraries(LibDNS PRIVATE LibCore PUBLIC LibCrypto) diff --git a/Libraries/LibDNS/Message.h b/Libraries/LibDNS/Message.h index 0f23fefe4b6..7f471d5b392 100644 --- a/Libraries/LibDNS/Message.h +++ b/Libraries/LibDNS/Message.h @@ -11,6 +11,7 @@ #include #include #include +#include namespace DNS { namespace Messages { @@ -84,7 +85,7 @@ struct Header { NetworkOrdered additional_count; }; -struct DomainName { +struct DNS_API DomainName { Vector labels; static DomainName from_string(StringView); @@ -201,8 +202,8 @@ enum class ResourceType : u16 { TA = 32768, // DNSSEC Trust Authorities "[Sam_Weiler][Deploying DNSSEC Without a Signed Root. Technical Report 1999-19, Information Networking Institute, Carnegie Mellon University, April 2004.]" DLV = 32769, // DNSSEC Lookaside Validation (OBSOLETE) [RFC8749][RFC4431] }; -StringView to_string(ResourceType); -Optional resource_type_from_string(StringView); +DNS_API StringView to_string(ResourceType); +DNS_API Optional resource_type_from_string(StringView); // Listing from IANA https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-2. enum class Class : u16 { @@ -693,7 +694,7 @@ using Record = Variant< // TODO: Add more records. ByteBuffer>; // Fallback for unknown records. -struct ResourceRecord { +struct DNS_API ResourceRecord { DomainName name; ResourceType type; Class class_; @@ -716,7 +717,7 @@ struct ZoneAuthority { u32 minimum_ttl; }; -struct Message { +struct DNS_API Message { Header header; Vector questions; Vector answers;