# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("network") {
  deps = [ "//zircon/third_party/ulib/musl:musl_internal" ]
  sources = [
    "accept.c",
    "dn_comp.c",
    "dn_expand.c",
    "dn_skipname.c",
    "dns_parse.c",
    "ent.c",
    "ether.c",
    "freeaddrinfo.c",
    "gai_strerror.c",
    "getaddrinfo.c",
    "gethostbyaddr.c",
    "gethostbyaddr_r.c",
    "gethostbyname.c",
    "gethostbyname2.c",
    "gethostbyname2_r.c",
    "gethostbyname_r.c",
    "getifaddrs.c",
    "getnameinfo.c",
    "getservbyname.c",
    "getservbyname_r.c",
    "getservbyport.c",
    "getservbyport_r.c",
    "h_errno.c",
    "herror.c",
    "hstrerror.c",
    "htonl.c",
    "htons.c",
    "if_freenameindex.c",
    "if_indextoname.c",
    "if_nameindex.c",
    "if_nametoindex.c",
    "in6addr_any.c",
    "in6addr_loopback.c",
    "inet_addr.c",
    "inet_aton.c",
    "inet_legacy.c",
    "inet_ntoa.c",
    "inet_ntop.c",
    "inet_pton.c",
    "lookup_ipliteral.c",
    "lookup_name.c",
    "lookup_serv.c",
    "netlink.c",
    "netname.c",
    "ns_parse.c",
    "ntohl.c",
    "ntohs.c",
    "proto.c",
    "recv.c",
    "res_init.c",
    "res_mkquery.c",
    "res_msend.c",
    "res_query.c",
    "res_querydomain.c",
    "res_send.c",
    "res_state.c",
    "resolvconf.c",
    "send.c",
    "serv.c",
  ]

  configs -= [ "//build/config:symbol_visibility_hidden" ]

  # TODO(https://fxbug.dev/42136088): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-unused-function" ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
