From ece38d942105a27fe3b7857cef2be7f35c8b6128 Mon Sep 17 00:00:00 2001 From: Robinson Date: Mon, 26 Apr 2021 15:33:20 +0200 Subject: [PATCH] converting JNA to kotlin --- src/dorkbox/netUtil/dnsUtils/ResolveConf.kt | 9 +- .../structs/IP_ADAPTER_ADDRESSES_LH.java | 119 ------------------ .../structs/IP_ADAPTER_ADDRESSES_LH.kt | 107 ++++++++++++++++ .../IP_ADAPTER_ANYCAST_ADDRESS_XP.java | 25 ---- .../structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.kt | 16 +++ .../IP_ADAPTER_DNS_SERVER_ADDRESS_XP.java | 25 ---- .../IP_ADAPTER_DNS_SERVER_ADDRESS_XP.kt | 16 +++ .../structs/IP_ADAPTER_DNS_SUFFIX.java | 22 ---- .../windows/structs/IP_ADAPTER_DNS_SUFFIX.kt | 14 +++ .../IP_ADAPTER_MULTICAST_ADDRESS_XP.java | 25 ---- .../IP_ADAPTER_MULTICAST_ADDRESS_XP.kt | 16 +++ .../IP_ADAPTER_UNICAST_ADDRESS_LH.java | 44 ------- .../structs/IP_ADAPTER_UNICAST_ADDRESS_LH.kt | 35 ++++++ .../netUtil/jna/windows/structs/LUID.kt | 20 ++- .../jna/windows/structs/SOCKADDR_IN.kt | 31 ++--- .../jna/windows/structs/SOCKADDR_IN6.kt | 35 ++---- .../jna/windows/structs/SOCKET_ADDRESS.kt | 55 ++++---- 17 files changed, 268 insertions(+), 346 deletions(-) delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.kt delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.kt delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.kt delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.kt delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.kt delete mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.java create mode 100644 src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.kt diff --git a/src/dorkbox/netUtil/dnsUtils/ResolveConf.kt b/src/dorkbox/netUtil/dnsUtils/ResolveConf.kt index 5d97cfa..b7b1d47 100644 --- a/src/dorkbox/netUtil/dnsUtils/ResolveConf.kt +++ b/src/dorkbox/netUtil/dnsUtils/ResolveConf.kt @@ -70,7 +70,7 @@ object ResolveConf { // modified from: https://github.com/dnsjava/dnsjava/blob/master/src/main/java/org/xbill/DNS/config/WindowsResolverConfigProvider.java // The recommended method of calling the GetAdaptersAddresses function is to pre-allocate a 15KB working buffer - var buffer: Memory? = Memory(15 * 1024) + var buffer = Memory(15 * 1024) val size: com.sun.jna.ptr.IntByReference = com.sun.jna.ptr.IntByReference(0) val flags: Int = IPHlpAPI.GAA_FLAG_SKIP_UNICAST or @@ -106,10 +106,11 @@ object ResolveConf { var dns: IP_ADAPTER_DNS_SERVER_ADDRESS_XP? = result.FirstDnsServerAddress while (dns != null) { - var address: InetAddress + var address: InetAddress? try { - address = dns.Address.toAddress() - if (address is Inet4Address || !address.isSiteLocalAddress) { + address = dns.Address?.toAddress() + + if (address is Inet4Address || !address!!.isSiteLocalAddress) { putIfAbsent(nameServerDomains, Dns.DEFAULT_SEARCH_DOMAIN, Common.socketAddress(address, 53)) } else { Common.logger.trace( diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.java deleted file mode 100644 index 6565bb4..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.java +++ /dev/null @@ -1,119 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Pointer; -import com.sun.jna.Structure; -import com.sun.jna.WString; -import com.sun.jna.platform.win32.Guid; - -public -class IP_ADAPTER_ADDRESSES_LH extends Structure { - public static - class ByReference extends IP_ADAPTER_ADDRESSES_LH implements Structure.ByReference {} - - - public int Length; - public int IfIndex; - - public IP_ADAPTER_ADDRESSES_LH.ByReference Next; - public String AdapterName; - - public IP_ADAPTER_UNICAST_ADDRESS_LH.ByReference FirstUnicastAddress; - public IP_ADAPTER_ANYCAST_ADDRESS_XP.ByReference FirstAnycastAddress; - public IP_ADAPTER_MULTICAST_ADDRESS_XP.ByReference FirstMulticastAddress; - public IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference FirstDnsServerAddress; - - public WString DnsSuffix; - public WString Description; - public WString FriendlyName; - - public byte[] PhysicalAddress = new byte[8]; - public int PhysicalAddressLength; - public int Flags; - public int Mtu; - public int IfType; - public int OperStatus; - public int Ipv6IfIndex; - - public int[] ZoneIndices = new int[16]; - public Pointer FirstPrefix; - - public long TransmitLinkSpeed; - public long ReceiveLinkSpeed; - - public Pointer FirstWinsServerAddress; - public Pointer FirstGatewayAddress; - - public int Ipv4Metric; - public int Ipv6Metric; - - public LUID Luid; - public SOCKET_ADDRESS Dhcpv4Server; - public int CompartmentId; - public Guid.GUID NetworkGuid; - - public int ConnectionType; - public int TunnelType; - public SOCKET_ADDRESS Dhcpv6Server; - - public byte[] Dhcpv6ClientDuid = new byte[130]; - public int Dhcpv6ClientDuidLength; - public int Dhcpv6Iaid; - - public IP_ADAPTER_DNS_SUFFIX.ByReference FirstDnsSuffix; - - public - IP_ADAPTER_ADDRESSES_LH(Pointer p) { - super(p); - read(); - } - - public - IP_ADAPTER_ADDRESSES_LH() {} - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Length", - "IfIndex", - "Next", - "AdapterName", - "FirstUnicastAddress", - "FirstAnycastAddress", - "FirstMulticastAddress", - "FirstDnsServerAddress", - "DnsSuffix", - "Description", - "FriendlyName", - "PhysicalAddress", - "PhysicalAddressLength", - "Flags", - "Mtu", - "IfType", - "OperStatus", - "Ipv6IfIndex", - "ZoneIndices", - "FirstPrefix", - "TransmitLinkSpeed", - "ReceiveLinkSpeed", - "FirstWinsServerAddress", - "FirstGatewayAddress", - "Ipv4Metric", - "Ipv6Metric", - "Luid", - "Dhcpv4Server", - "CompartmentId", - "NetworkGuid", - "ConnectionType", - "TunnelType", - "Dhcpv6Server", - "Dhcpv6ClientDuid", - "Dhcpv6ClientDuidLength", - "Dhcpv6Iaid", - "FirstDnsSuffix"); - } -} - - diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.kt new file mode 100644 index 0000000..4bb83e0 --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ADDRESSES_LH.kt @@ -0,0 +1,107 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Pointer +import com.sun.jna.Structure +import com.sun.jna.WString +import com.sun.jna.platform.win32.Guid + +open class IP_ADAPTER_ADDRESSES_LH : Structure { + constructor(p: Pointer) : super(p) { + read() + } + + constructor() {} + + class ByReference : IP_ADAPTER_ADDRESSES_LH(), Structure.ByReference + + @JvmField var Length = 0 + @JvmField var IfIndex = 0 + @JvmField var Next: ByReference? = null + @JvmField var AdapterName: String? = null + + @JvmField var FirstUnicastAddress: IP_ADAPTER_UNICAST_ADDRESS_LH.ByReference? = null + @JvmField var FirstAnycastAddress: IP_ADAPTER_ANYCAST_ADDRESS_XP.ByReference? = null + + @JvmField var FirstMulticastAddress: IP_ADAPTER_MULTICAST_ADDRESS_XP.ByReference? = null + @JvmField var FirstDnsServerAddress: IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference? = null + + @JvmField var DnsSuffix: WString? = null + @JvmField var Description: WString? = null + @JvmField var FriendlyName: WString? = null + @JvmField var PhysicalAddress = ByteArray(8) + @JvmField var PhysicalAddressLength = 0 + + @JvmField var Flags = 0 + @JvmField var Mtu = 0 + @JvmField var IfType = 0 + @JvmField var OperStatus = 0 + @JvmField var Ipv6IfIndex = 0 + + @JvmField var ZoneIndices = IntArray(16) + + @JvmField var FirstPrefix: Pointer? = null + @JvmField var TransmitLinkSpeed: Long = 0 + @JvmField var ReceiveLinkSpeed: Long = 0 + + @JvmField var FirstWinsServerAddress: Pointer? = null + @JvmField var FirstGatewayAddress: Pointer? = null + + @JvmField var Ipv4Metric = 0 + @JvmField var Ipv6Metric = 0 + + @JvmField var Luid: LUID? = null + @JvmField var Dhcpv4Server: SOCKET_ADDRESS? = null + @JvmField var CompartmentId = 0 + @JvmField var NetworkGuid: Guid.GUID? = null + @JvmField var ConnectionType = 0 + @JvmField var TunnelType = 0 + + @JvmField var Dhcpv6Server: SOCKET_ADDRESS? = null + @JvmField var Dhcpv6ClientDuid = ByteArray(130) + @JvmField var Dhcpv6ClientDuidLength = 0 + @JvmField var Dhcpv6Iaid = 0 + + @JvmField var FirstDnsSuffix: IP_ADAPTER_DNS_SUFFIX.ByReference? = null + + override fun getFieldOrder(): List { + return listOf( + "Length", + "IfIndex", + "Next", + "AdapterName", + "FirstUnicastAddress", + "FirstAnycastAddress", + "FirstMulticastAddress", + "FirstDnsServerAddress", + "DnsSuffix", + "Description", + "FriendlyName", + "PhysicalAddress", + "PhysicalAddressLength", + "Flags", + "Mtu", + "IfType", + "OperStatus", + "Ipv6IfIndex", + "ZoneIndices", + "FirstPrefix", + "TransmitLinkSpeed", + "ReceiveLinkSpeed", + "FirstWinsServerAddress", + "FirstGatewayAddress", + "Ipv4Metric", + "Ipv6Metric", + "Luid", + "Dhcpv4Server", + "CompartmentId", + "NetworkGuid", + "ConnectionType", + "TunnelType", + "Dhcpv6Server", + "Dhcpv6ClientDuid", + "Dhcpv6ClientDuidLength", + "Dhcpv6Iaid", + "FirstDnsSuffix" + ) + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.java deleted file mode 100644 index dd70026..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.java +++ /dev/null @@ -1,25 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Structure; - -public -class IP_ADAPTER_ANYCAST_ADDRESS_XP extends Structure { - public static - class ByReference extends IP_ADAPTER_ANYCAST_ADDRESS_XP implements Structure.ByReference {} - - - public int Length; - public int Reserved; - - public IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference Next; - public SOCKET_ADDRESS Address; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Length", "Reserved", "Next", "Address"); - } -} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.kt new file mode 100644 index 0000000..3948e35 --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_ANYCAST_ADDRESS_XP.kt @@ -0,0 +1,16 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Structure + +open class IP_ADAPTER_ANYCAST_ADDRESS_XP : Structure() { + class ByReference : IP_ADAPTER_ANYCAST_ADDRESS_XP(), Structure.ByReference + + @JvmField var Length = 0 + @JvmField var Reserved = 0 + @JvmField var Next: IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference? = null + @JvmField var Address: SOCKET_ADDRESS? = null + + override fun getFieldOrder(): List { + return listOf("Length", "Reserved", "Next", "Address") + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.java deleted file mode 100644 index 75ba6fb..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.java +++ /dev/null @@ -1,25 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Structure; - -public -class IP_ADAPTER_DNS_SERVER_ADDRESS_XP extends Structure { - public static - class ByReference extends IP_ADAPTER_DNS_SERVER_ADDRESS_XP implements Structure.ByReference {} - - - public int Length; - public int Reserved; - - public IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference Next; - public SOCKET_ADDRESS Address; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Length", "Reserved", "Next", "Address"); - } -} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.kt new file mode 100644 index 0000000..b9fb034 --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SERVER_ADDRESS_XP.kt @@ -0,0 +1,16 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Structure + +open class IP_ADAPTER_DNS_SERVER_ADDRESS_XP : Structure() { + class ByReference : IP_ADAPTER_DNS_SERVER_ADDRESS_XP(), Structure.ByReference + + @JvmField var Length = 0 + @JvmField var Reserved = 0 + @JvmField var Next: ByReference? = null + @JvmField var Address: SOCKET_ADDRESS? = null + + override fun getFieldOrder(): List { + return listOf("Length", "Reserved", "Next", "Address") + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.java deleted file mode 100644 index 2b93f8b..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.java +++ /dev/null @@ -1,22 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Structure; - -public -class IP_ADAPTER_DNS_SUFFIX extends Structure { - public static - class ByReference extends IP_ADAPTER_DNS_SUFFIX implements Structure.ByReference {} - - - public IP_ADAPTER_DNS_SUFFIX.ByReference Next; - public char[] _String = new char[256]; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Next", "_String"); - } -} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.kt new file mode 100644 index 0000000..0240d8d --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_DNS_SUFFIX.kt @@ -0,0 +1,14 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Structure + +open class IP_ADAPTER_DNS_SUFFIX : Structure() { + class ByReference : IP_ADAPTER_DNS_SUFFIX(), Structure.ByReference + + @JvmField var Next: ByReference? = null + @JvmField var _String = CharArray(256) + + override fun getFieldOrder(): List { + return listOf("Next", "_String") + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.java deleted file mode 100644 index 4357dfb..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.java +++ /dev/null @@ -1,25 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Structure; - -public -class IP_ADAPTER_MULTICAST_ADDRESS_XP extends Structure { - public static - class ByReference extends IP_ADAPTER_MULTICAST_ADDRESS_XP implements Structure.ByReference {} - - - public int Length; - public int Reserved; - - public IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference Next; - public SOCKET_ADDRESS Address; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Length", "Reserved", "Next", "Address"); - } -} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.kt new file mode 100644 index 0000000..911d152 --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_MULTICAST_ADDRESS_XP.kt @@ -0,0 +1,16 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Structure + +open class IP_ADAPTER_MULTICAST_ADDRESS_XP : Structure() { + class ByReference : IP_ADAPTER_MULTICAST_ADDRESS_XP(), Structure.ByReference + + @JvmField var Length = 0 + @JvmField var Reserved = 0 + @JvmField var Next: IP_ADAPTER_DNS_SERVER_ADDRESS_XP.ByReference? = null + @JvmField var Address: SOCKET_ADDRESS? = null + + override fun getFieldOrder(): List { + return listOf("Length", "Reserved", "Next", "Address") + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.java b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.java deleted file mode 100644 index e89ff31..0000000 --- a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.java +++ /dev/null @@ -1,44 +0,0 @@ -package dorkbox.netUtil.jna.windows.structs; - -import java.util.Arrays; -import java.util.List; - -import com.sun.jna.Structure; - -public -class IP_ADAPTER_UNICAST_ADDRESS_LH extends Structure { - public static - class ByReference extends IP_ADAPTER_UNICAST_ADDRESS_LH implements Structure.ByReference {} - - - public int Length; - public int IfIndex; - - public IP_ADAPTER_UNICAST_ADDRESS_LH.ByReference Next; - public SOCKET_ADDRESS Address; - - public int PrefixOrigin; - public int SuffixOrigin; - public int DadState; - - public int ValidLifetime; - public int PreferredLifetime; - public int LeaseLifetime; - public byte OnLinkPrefixLength; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("Length", - "IfIndex", - "Next", - "Address", - "PrefixOrigin", - "SuffixOrigin", - "DadState", - "ValidLifetime", - "PreferredLifetime", - "LeaseLifetime", - "OnLinkPrefixLength"); - } -} diff --git a/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.kt b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.kt new file mode 100644 index 0000000..1314a56 --- /dev/null +++ b/src/dorkbox/netUtil/jna/windows/structs/IP_ADAPTER_UNICAST_ADDRESS_LH.kt @@ -0,0 +1,35 @@ +package dorkbox.netUtil.jna.windows.structs + +import com.sun.jna.Structure + +open class IP_ADAPTER_UNICAST_ADDRESS_LH : Structure() { + class ByReference : IP_ADAPTER_UNICAST_ADDRESS_LH(), Structure.ByReference + + @JvmField var Length = 0 + @JvmField var IfIndex = 0 + @JvmField var Next: ByReference? = null + @JvmField var Address: SOCKET_ADDRESS? = null + @JvmField var PrefixOrigin = 0 + @JvmField var SuffixOrigin = 0 + @JvmField var DadState = 0 + @JvmField var ValidLifetime = 0 + @JvmField var PreferredLifetime = 0 + @JvmField var LeaseLifetime = 0 + @JvmField var OnLinkPrefixLength: Byte = 0 + + override fun getFieldOrder(): List { + return listOf( + "Length", + "IfIndex", + "Next", + "Address", + "PrefixOrigin", + "SuffixOrigin", + "DadState", + "ValidLifetime", + "PreferredLifetime", + "LeaseLifetime", + "OnLinkPrefixLength" + ) + } +} diff --git a/src/dorkbox/netUtil/jna/windows/structs/LUID.kt b/src/dorkbox/netUtil/jna/windows/structs/LUID.kt index ce0563e..a197039 100644 --- a/src/dorkbox/netUtil/jna/windows/structs/LUID.kt +++ b/src/dorkbox/netUtil/jna/windows/structs/LUID.kt @@ -1,18 +1,12 @@ -package dorkbox.netUtil.jna.windows.structs; +package dorkbox.netUtil.jna.windows.structs -import java.util.Arrays; -import java.util.List; +import com.sun.jna.Structure -import com.sun.jna.Structure; +class LUID : Structure() { + @JvmField var LowPart = 0 + @JvmField var HighPart = 0 -public -class LUID extends Structure { - public int LowPart; - public int HighPart; - - @Override - protected - List getFieldOrder() { - return Arrays.asList("LowPart", "HighPart"); + override fun getFieldOrder(): List { + return listOf("LowPart", "HighPart") } } diff --git a/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN.kt b/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN.kt index 7927cec..14fdd10 100644 --- a/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN.kt +++ b/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN.kt @@ -1,27 +1,20 @@ -package dorkbox.netUtil.jna.windows.structs; +package dorkbox.netUtil.jna.windows.structs -import java.util.Arrays; -import java.util.List; +import com.sun.jna.Pointer +import com.sun.jna.Structure -import com.sun.jna.Pointer; -import com.sun.jna.Structure; +class SOCKADDR_IN(p: Pointer) : Structure(p) { + @JvmField var sin_family: Short = 0 + @JvmField var sin_port: Short = 0 -public -class SOCKADDR_IN extends Structure { - public short sin_family; - public short sin_port; - public byte[] sin_addr = new byte[4]; - public byte[] sin_zero = new byte[8]; + @JvmField var sin_addr = ByteArray(4) + @JvmField var sin_zero = ByteArray(8) - public - SOCKADDR_IN(Pointer p) { - super(p); - read(); + init { + read() } - @Override - protected - List getFieldOrder() { - return Arrays.asList("sin_family", "sin_port", "sin_addr", "sin_zero"); + override fun getFieldOrder(): List { + return listOf("sin_family", "sin_port", "sin_addr", "sin_zero") } } diff --git a/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN6.kt b/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN6.kt index 8997716..be51f2c 100644 --- a/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN6.kt +++ b/src/dorkbox/netUtil/jna/windows/structs/SOCKADDR_IN6.kt @@ -1,29 +1,20 @@ -package dorkbox.netUtil.jna.windows.structs; +package dorkbox.netUtil.jna.windows.structs -import java.util.Arrays; -import java.util.List; +import com.sun.jna.Pointer +import com.sun.jna.Structure -import com.sun.jna.Pointer; -import com.sun.jna.Structure; +class SOCKADDR_IN6(p: Pointer) : Structure(p) { + @JvmField var sin6_family: Short = 0 + @JvmField var sin6_port: Short = 0 + @JvmField var sin6_flowinfo = 0 + @JvmField var sin6_addr = ByteArray(16) + @JvmField var sin6_scope_id = 0 -public -class SOCKADDR_IN6 extends Structure { - public short sin6_family; - public short sin6_port; - public int sin6_flowinfo; - - public byte[] sin6_addr = new byte[16]; - public int sin6_scope_id; - - public - SOCKADDR_IN6(Pointer p) { - super(p); - read(); + init { + read() } - @Override - protected - List getFieldOrder() { - return Arrays.asList("sin6_family", "sin6_port", "sin6_flowinfo", "sin6_addr", "sin6_scope_id"); + override fun getFieldOrder(): List { + return listOf("sin6_family", "sin6_port", "sin6_flowinfo", "sin6_addr", "sin6_scope_id") } } diff --git a/src/dorkbox/netUtil/jna/windows/structs/SOCKET_ADDRESS.kt b/src/dorkbox/netUtil/jna/windows/structs/SOCKET_ADDRESS.kt index 8048ddd..c06597d 100644 --- a/src/dorkbox/netUtil/jna/windows/structs/SOCKET_ADDRESS.kt +++ b/src/dorkbox/netUtil/jna/windows/structs/SOCKET_ADDRESS.kt @@ -1,39 +1,38 @@ -package dorkbox.netUtil.jna.windows.structs; +package dorkbox.netUtil.jna.windows.structs -import java.net.Inet6Address; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Arrays; -import java.util.List; +import com.sun.jna.Pointer +import com.sun.jna.Structure +import java.net.Inet6Address +import java.net.InetAddress +import java.net.UnknownHostException -import com.sun.jna.Pointer; -import com.sun.jna.Structure; +class SOCKET_ADDRESS : Structure() { + companion object { + const val AF_INET = 2 + const val AF_INET6 = 23 + } -public -class SOCKET_ADDRESS extends Structure { - public static final int AF_INET = 2; - public static final int AF_INET6 = 23; + @JvmField var lpSockaddr: Pointer? = null + @JvmField var iSockaddrLength = 0 - public Pointer lpSockaddr; - public int iSockaddrLength; - public - InetAddress toAddress() throws UnknownHostException { - switch (((int) lpSockaddr.getShort(0))) { - case AF_INET: - SOCKADDR_IN in4 = new SOCKADDR_IN(lpSockaddr); - return InetAddress.getByAddress(in4.sin_addr); - case AF_INET6: - SOCKADDR_IN6 in6 = new SOCKADDR_IN6(lpSockaddr); - return Inet6Address.getByAddress("", in6.sin6_addr, in6.sin6_scope_id); + @Throws(UnknownHostException::class) + fun toAddress(): InetAddress? { + when (lpSockaddr!!.getShort(0).toInt()) { + AF_INET -> { + val in4 = SOCKADDR_IN(lpSockaddr!!) + return InetAddress.getByAddress(in4.sin_addr) + } + AF_INET6 -> { + val in6 = SOCKADDR_IN6(lpSockaddr!!) + return Inet6Address.getByAddress("", in6.sin6_addr, in6.sin6_scope_id) + } } - return null; + return null } - @Override - protected - List getFieldOrder() { - return Arrays.asList("lpSockaddr", "iSockaddrLength"); + override fun getFieldOrder(): List { + return listOf("lpSockaddr", "iSockaddrLength") } }