From 0674de99fa9dab0e9e30dcc486c1bd0820c029ff Mon Sep 17 00:00:00 2001 From: JamesWrigley Date: Fri, 22 Nov 2024 01:05:00 +0100 Subject: [PATCH] Various cleanups - Remove unnecessary dependencies - Add docstring for `get_interface_data()` - Add a sanity test --- Project.toml | 8 +------- src/NetworkInterfaceControllers.jl | 19 +++++++++++++++++++ src/libuv_extensions.jl | 4 +--- test/Project.toml | 15 +-------------- test/runtests.jl | 10 ++++++++++ 5 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 test/runtests.jl diff --git a/Project.toml b/Project.toml index 41d0b40..51af51a 100644 --- a/Project.toml +++ b/Project.toml @@ -4,13 +4,7 @@ authors = ["Johannes Blaschke "] version = "0.1.0" [deps] -AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82" -CpuId = "adafc99b-e345-5852-983c-f28acb93d879" Sockets = "6462fe0b-24de-5631-8697-dd941f90decc" [compat] -AbstractTrees = "0.4" -CEnum = "0.4" -CpuId = "0.3" -julia = "1.7" \ No newline at end of file +julia = "1.7" diff --git a/src/NetworkInterfaceControllers.jl b/src/NetworkInterfaceControllers.jl index bdbee96..d12a14d 100644 --- a/src/NetworkInterfaceControllers.jl +++ b/src/NetworkInterfaceControllers.jl @@ -69,6 +69,25 @@ struct Interface ip::IPAddr end +""" + get_interface_data([IPAddr]; loopback=false) + +Return IP addresses, versions, and interface names of all connected interfaces. + +# Examples +```julia-repl +julia> get_interface_data() +2-element Vector{NetworkInterfaceControllers.Interface}: + NetworkInterfaceControllers.Interface("wlo1", :v4, ip"192.168.178.21") + NetworkInterfaceControllers.Interface("wlo1", :v6, ip"2001:9e8:687b:8b00:b9e2:345e:cfed:a673") + +julia> import Sockets: IPv4 + +julia> get_interface_data(IPv4) +1-element Vector{NetworkInterfaceControllers.Interface}: + NetworkInterfaceControllers.Interface("wlo1", :v4, ip"192.168.178.21") +``` +""" function get_interface_data( ::Type{T}=IPAddr; loopback::Bool=false ) where T <: IPAddr diff --git a/src/libuv_extensions.jl b/src/libuv_extensions.jl index be79f56..c77fa33 100644 --- a/src/libuv_extensions.jl +++ b/src/libuv_extensions.jl @@ -14,8 +14,6 @@ module LibUVExtensions ## -using CEnum - const sa_family_t = Cushort const in_port_t = UInt16 @@ -133,4 +131,4 @@ function uv_free_interface_addresses(addresses, count) ccall(:uv_free_interface_addresses, Cvoid, (Ptr{uv_interface_address_t}, Cint), addresses, count) end -end \ No newline at end of file +end diff --git a/test/Project.toml b/test/Project.toml index df4d984..0c36332 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,15 +1,2 @@ -name = "NIC Test" -uuid = "6f74fd91-2978-43ad-8164-3af8c0ec0142" -authors = ["Johannes Blaschke "] -version = "0.1.0" - [deps] -AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82" -CpuId = "adafc99b-e345-5852-983c-f28acb93d879" -Sockets = "6462fe0b-24de-5631-8697-dd941f90decc" - -[compat] -AbstractTrees = "0.4" -CEnum = "0.4" -CpuId = "0.3" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/test/runtests.jl b/test/runtests.jl new file mode 100644 index 0000000..2875185 --- /dev/null +++ b/test/runtests.jl @@ -0,0 +1,10 @@ +import Test: @testset, @test + +import NetworkInterfaceControllers: get_interface_data + + +@testset "get_interface_data()" begin + interfaces = get_interface_data(; loopback=true) + # We should always see at least the loopback interface + @test !isempty(interfaces) +end