# -*- mode: python; -*-

Import('env')
Import('ssl_provider')

env = env.Clone()

env.Library(
    target='network',
    source=[
        "cidr.cpp",
        "hostandport.cpp",
        "hostname_canonicalization.cpp",
        "sockaddr.cpp",
        "socket_exception.cpp",
        "socket_utils.cpp",
        env.Idlc('hostandport.idl')[0],
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/util/concurrency/spin_lock',
        '$BUILD_DIR/mongo/util/winutil',
    ],
)

env.Library(
    target='ssl_manager',
    source=[
        "private/socket_poll.cpp",
        "private/ssl_expiration.cpp",
        "sock.cpp",
        "ssl_manager.cpp",
        "ssl_options.cpp",
        "ssl_parameters.cpp",
        "ssl_manager_%s.cpp" % (ssl_provider),
        "ssl_stream.cpp",
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/base',
        '$BUILD_DIR/mongo/db/auth/auth_rolename',
        '$BUILD_DIR/third_party/shim_asio',
        'network',
    ],
    LIBDEPS_PRIVATE=[
        '$BUILD_DIR/mongo/crypto/sha_block_${MONGO_CRYPTO}',
        '$BUILD_DIR/mongo/db/auth/authcommon',
        '$BUILD_DIR/mongo/db/server_options_core',
        '$BUILD_DIR/mongo/util/background_job',
        '$BUILD_DIR/mongo/util/fail_point',
        '$BUILD_DIR/mongo/util/options_parser/options_parser',
        '$BUILD_DIR/mongo/util/winutil',
    ],
)

env.CppUnitTest(
    target='network_test',
    source=[
        'cidr_test.cpp',
        'hostandport_test.cpp',
    ],
    LIBDEPS=[
        'network',
    ],
)

env.CppUnitTest(
    target='ssl_manager_test',
    source=[
        'ssl_manager_test.cpp',
        'ssl_options_test.cpp',
        'sock_test.cpp',
    ],
    LIBDEPS=[
        '$BUILD_DIR/mongo/util/fail_point',
        'ssl_manager',
    ],
)
