converting JNA to kotlin
This commit is contained in:
parent
ea5085ac25
commit
ece38d9421
|
@ -70,7 +70,7 @@ object ResolveConf {
|
||||||
|
|
||||||
// modified from: https://github.com/dnsjava/dnsjava/blob/master/src/main/java/org/xbill/DNS/config/WindowsResolverConfigProvider.java
|
// 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
|
// 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 size: com.sun.jna.ptr.IntByReference = com.sun.jna.ptr.IntByReference(0)
|
||||||
|
|
||||||
val flags: Int = IPHlpAPI.GAA_FLAG_SKIP_UNICAST or
|
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
|
var dns: IP_ADAPTER_DNS_SERVER_ADDRESS_XP? = result.FirstDnsServerAddress
|
||||||
while (dns != null) {
|
while (dns != null) {
|
||||||
|
|
||||||
var address: InetAddress
|
var address: InetAddress?
|
||||||
try {
|
try {
|
||||||
address = dns.Address.toAddress()
|
address = dns.Address?.toAddress()
|
||||||
if (address is Inet4Address || !address.isSiteLocalAddress) {
|
|
||||||
|
if (address is Inet4Address || !address!!.isSiteLocalAddress) {
|
||||||
putIfAbsent(nameServerDomains, Dns.DEFAULT_SEARCH_DOMAIN, Common.socketAddress(address, 53))
|
putIfAbsent(nameServerDomains, Dns.DEFAULT_SEARCH_DOMAIN, Common.socketAddress(address, 53))
|
||||||
} else {
|
} else {
|
||||||
Common.logger.trace(
|
Common.logger.trace(
|
||||||
|
|
|
@ -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<String> 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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -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<String> {
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("Length", "Reserved", "Next", "Address");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String> {
|
||||||
|
return listOf("Length", "Reserved", "Next", "Address")
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("Length", "Reserved", "Next", "Address");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String> {
|
||||||
|
return listOf("Length", "Reserved", "Next", "Address")
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("Next", "_String");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String> {
|
||||||
|
return listOf("Next", "_String")
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("Length", "Reserved", "Next", "Address");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String> {
|
||||||
|
return listOf("Length", "Reserved", "Next", "Address")
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("Length",
|
|
||||||
"IfIndex",
|
|
||||||
"Next",
|
|
||||||
"Address",
|
|
||||||
"PrefixOrigin",
|
|
||||||
"SuffixOrigin",
|
|
||||||
"DadState",
|
|
||||||
"ValidLifetime",
|
|
||||||
"PreferredLifetime",
|
|
||||||
"LeaseLifetime",
|
|
||||||
"OnLinkPrefixLength");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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<String> {
|
||||||
|
return listOf(
|
||||||
|
"Length",
|
||||||
|
"IfIndex",
|
||||||
|
"Next",
|
||||||
|
"Address",
|
||||||
|
"PrefixOrigin",
|
||||||
|
"SuffixOrigin",
|
||||||
|
"DadState",
|
||||||
|
"ValidLifetime",
|
||||||
|
"PreferredLifetime",
|
||||||
|
"LeaseLifetime",
|
||||||
|
"OnLinkPrefixLength"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,18 +1,12 @@
|
||||||
package dorkbox.netUtil.jna.windows.structs;
|
package dorkbox.netUtil.jna.windows.structs
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.sun.jna.Structure
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.sun.jna.Structure;
|
class LUID : Structure() {
|
||||||
|
@JvmField var LowPart = 0
|
||||||
|
@JvmField var HighPart = 0
|
||||||
|
|
||||||
public
|
override fun getFieldOrder(): List<String> {
|
||||||
class LUID extends Structure {
|
return listOf("LowPart", "HighPart")
|
||||||
public int LowPart;
|
|
||||||
public int HighPart;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected
|
|
||||||
List<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("LowPart", "HighPart");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,20 @@
|
||||||
package dorkbox.netUtil.jna.windows.structs;
|
package dorkbox.netUtil.jna.windows.structs
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.sun.jna.Pointer
|
||||||
import java.util.List;
|
import com.sun.jna.Structure
|
||||||
|
|
||||||
import com.sun.jna.Pointer;
|
class SOCKADDR_IN(p: Pointer) : Structure(p) {
|
||||||
import com.sun.jna.Structure;
|
@JvmField var sin_family: Short = 0
|
||||||
|
@JvmField var sin_port: Short = 0
|
||||||
|
|
||||||
public
|
@JvmField var sin_addr = ByteArray(4)
|
||||||
class SOCKADDR_IN extends Structure {
|
@JvmField var sin_zero = ByteArray(8)
|
||||||
public short sin_family;
|
|
||||||
public short sin_port;
|
|
||||||
public byte[] sin_addr = new byte[4];
|
|
||||||
public byte[] sin_zero = new byte[8];
|
|
||||||
|
|
||||||
public
|
init {
|
||||||
SOCKADDR_IN(Pointer p) {
|
read()
|
||||||
super(p);
|
|
||||||
read();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getFieldOrder(): List<String> {
|
||||||
protected
|
return listOf("sin_family", "sin_port", "sin_addr", "sin_zero")
|
||||||
List<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("sin_family", "sin_port", "sin_addr", "sin_zero");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,20 @@
|
||||||
package dorkbox.netUtil.jna.windows.structs;
|
package dorkbox.netUtil.jna.windows.structs
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.sun.jna.Pointer
|
||||||
import java.util.List;
|
import com.sun.jna.Structure
|
||||||
|
|
||||||
import com.sun.jna.Pointer;
|
class SOCKADDR_IN6(p: Pointer) : Structure(p) {
|
||||||
import com.sun.jna.Structure;
|
@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
|
init {
|
||||||
class SOCKADDR_IN6 extends Structure {
|
read()
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getFieldOrder(): List<String> {
|
||||||
protected
|
return listOf("sin6_family", "sin6_port", "sin6_flowinfo", "sin6_addr", "sin6_scope_id")
|
||||||
List<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("sin6_family", "sin6_port", "sin6_flowinfo", "sin6_addr", "sin6_scope_id");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +1,38 @@
|
||||||
package dorkbox.netUtil.jna.windows.structs;
|
package dorkbox.netUtil.jna.windows.structs
|
||||||
|
|
||||||
import java.net.Inet6Address;
|
import com.sun.jna.Pointer
|
||||||
import java.net.InetAddress;
|
import com.sun.jna.Structure
|
||||||
import java.net.UnknownHostException;
|
import java.net.Inet6Address
|
||||||
import java.util.Arrays;
|
import java.net.InetAddress
|
||||||
import java.util.List;
|
import java.net.UnknownHostException
|
||||||
|
|
||||||
import com.sun.jna.Pointer;
|
class SOCKET_ADDRESS : Structure() {
|
||||||
import com.sun.jna.Structure;
|
companion object {
|
||||||
|
const val AF_INET = 2
|
||||||
|
const val AF_INET6 = 23
|
||||||
|
}
|
||||||
|
|
||||||
public
|
@JvmField var lpSockaddr: Pointer? = null
|
||||||
class SOCKET_ADDRESS extends Structure {
|
@JvmField var iSockaddrLength = 0
|
||||||
public static final int AF_INET = 2;
|
|
||||||
public static final int AF_INET6 = 23;
|
|
||||||
|
|
||||||
public Pointer lpSockaddr;
|
|
||||||
public int iSockaddrLength;
|
|
||||||
|
|
||||||
public
|
@Throws(UnknownHostException::class)
|
||||||
InetAddress toAddress() throws UnknownHostException {
|
fun toAddress(): InetAddress? {
|
||||||
switch (((int) lpSockaddr.getShort(0))) {
|
when (lpSockaddr!!.getShort(0).toInt()) {
|
||||||
case AF_INET:
|
AF_INET -> {
|
||||||
SOCKADDR_IN in4 = new SOCKADDR_IN(lpSockaddr);
|
val in4 = SOCKADDR_IN(lpSockaddr!!)
|
||||||
return InetAddress.getByAddress(in4.sin_addr);
|
return InetAddress.getByAddress(in4.sin_addr)
|
||||||
case AF_INET6:
|
}
|
||||||
SOCKADDR_IN6 in6 = new SOCKADDR_IN6(lpSockaddr);
|
AF_INET6 -> {
|
||||||
return Inet6Address.getByAddress("", in6.sin6_addr, in6.sin6_scope_id);
|
val in6 = SOCKADDR_IN6(lpSockaddr!!)
|
||||||
|
return Inet6Address.getByAddress("", in6.sin6_addr, in6.sin6_scope_id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
override fun getFieldOrder(): List<String> {
|
||||||
protected
|
return listOf("lpSockaddr", "iSockaddrLength")
|
||||||
List<String> getFieldOrder() {
|
|
||||||
return Arrays.asList("lpSockaddr", "iSockaddrLength");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue