diff --git a/gradle.properties b/gradle.properties index 6d4b912d89a9abfdafb8a8eb612285b5560da8b8..60d1ca56b2b8a1a80dae4334342a1ef105d361d2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,5 @@ kotlin.code.style=official kotlin.js.generate.executable.default=false systemProp.org.gradle.internal.http.connectionTimeout=180000 -systemProp.org.gradle.internal.http.socketTimeout=180000 \ No newline at end of file +systemProp.org.gradle.internal.http.socketTimeout=180000 +org.gradle.jvmargs=-Xmx2G \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba23e5afb35085f062a17bde027d06acf78f4a15..c7ab9d85a84087b0f61351aa2aa36ed3e0b6d295 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -serialization = "1.6.3" -coroutines = "1.8.0" +serialization = "1.7.0" +coroutines = "1.9.0-RC" atomicfu = "0.24.0" nodeWrapper = "20.11.30-pre.732" completeKotlin = "1.1.0" silvaResources = "0.4.0" -kotlin = "1.9.23" +kotlin = "2.0.0" shadow = "7.1.2" [libraries] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3d49e0e4022c7f7fa396610a9b2e586678b7d9b8..71c2f58669e1604933fb83390065aa5f86da19ca 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Thu Jan 16 11:21:13 CET 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/kmqtt-broker/src/commonMain/kotlin/socket/ServerSocket.kt b/kmqtt-broker/src/commonMain/kotlin/socket/ServerSocket.kt index 3c6ef8a9bf13b91d6f7d4481fb02119d3eee3966..17e6849216b19dd0a88937e5b29027683ee49a55 100644 --- a/kmqtt-broker/src/commonMain/kotlin/socket/ServerSocket.kt +++ b/kmqtt-broker/src/commonMain/kotlin/socket/ServerSocket.kt @@ -1,6 +1,7 @@ package socket import mqtt.broker.Broker +import mqtt.broker.cluster.ClusterConnection internal expect open class ServerSocket( broker: Broker, @@ -12,4 +13,6 @@ internal expect open class ServerSocket( fun select(timeout: Long) fun close() + + override fun addClusterConnection(address: String): ClusterConnection? } diff --git a/kmqtt-broker/src/jsMain/kotlin/socket/ServerSocket.kt b/kmqtt-broker/src/jsMain/kotlin/socket/ServerSocket.kt index 58a3bab344d865d17ef9e2c8a3e3621fc96f1f1f..6784551cda5924064e90211c122164486d63ab1a 100644 --- a/kmqtt-broker/src/jsMain/kotlin/socket/ServerSocket.kt +++ b/kmqtt-broker/src/jsMain/kotlin/socket/ServerSocket.kt @@ -104,7 +104,7 @@ internal actual open class ServerSocket actual constructor( // Not doing anything as NodeJs is callback based } - final override fun addClusterConnection(address: String): ClusterConnection? { + actual override fun addClusterConnection(address: String): ClusterConnection? { TODO("Cluster in JS not yet implemented") } } diff --git a/kmqtt-broker/src/jvmMain/kotlin/socket/ServerSocket.kt b/kmqtt-broker/src/jvmMain/kotlin/socket/ServerSocket.kt index 5cf432a3e3562b9734600e6a3d8ca4c05dedb30a..dee547f43bd984e068fceaac061d05d186962c3d 100644 --- a/kmqtt-broker/src/jvmMain/kotlin/socket/ServerSocket.kt +++ b/kmqtt-broker/src/jvmMain/kotlin/socket/ServerSocket.kt @@ -146,7 +146,7 @@ internal actual open class ServerSocket actual constructor( } } - final override fun addClusterConnection(address: String): ClusterConnection? { + actual override fun addClusterConnection(address: String): ClusterConnection? { if (broker.cluster != null) { val channel = SocketChannel.open(InetSocketAddress(address, broker.cluster.tcpPort)) channel.configureBlocking(false) diff --git a/kmqtt-broker/src/linuxArm64Main/kotlin/socket.tls/TLSServerEngine.kt b/kmqtt-broker/src/linuxArm64Main/kotlin/socket.tls/TLSServerEngine.kt index fcb3f75fcf78c8da98064905543feb205ad6189f..0dc5defc552d808703b9eaa8f50a9b45c378cc34 100644 --- a/kmqtt-broker/src/linuxArm64Main/kotlin/socket.tls/TLSServerEngine.kt +++ b/kmqtt-broker/src/linuxArm64Main/kotlin/socket.tls/TLSServerEngine.kt @@ -35,33 +35,33 @@ internal actual class TLSServerEngine actual constructor(serverContext: TLSServe this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { if (!freed) { SSL_free(context) freed = true diff --git a/kmqtt-broker/src/linuxX64Main/kotlin/socket/tls/TLSServerEngine.kt b/kmqtt-broker/src/linuxX64Main/kotlin/socket/tls/TLSServerEngine.kt index d43d68eb401429c02f55df1b7426cd043953ed07..3c08335d5f42b109067f08d1df5a867ada9a0b6e 100644 --- a/kmqtt-broker/src/linuxX64Main/kotlin/socket/tls/TLSServerEngine.kt +++ b/kmqtt-broker/src/linuxX64Main/kotlin/socket/tls/TLSServerEngine.kt @@ -36,33 +36,33 @@ internal actual class TLSServerEngine actual constructor(serverContext: TLSServe this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { if (!freed) { SSL_free(context) freed = true diff --git a/kmqtt-broker/src/linuxX64Main/resources/Dockerfile b/kmqtt-broker/src/linuxX64Main/resources/Dockerfile index 0db0dafedd01b654538fbe54dba9b5e530277b3e..5247f16c5b53694df11730d8395fd4190f1771f3 100644 --- a/kmqtt-broker/src/linuxX64Main/resources/Dockerfile +++ b/kmqtt-broker/src/linuxX64Main/resources/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM ubuntu:22.04 #################################################### ######## GCC and tools ########### @@ -24,12 +24,12 @@ RUN set -x \ ############################################################################### ### Some env variables -ENV OPENSSL_VERSION="1.1.1t" -ENV KOTLIN_VERSION2="1.8.10" -ENV KOTLIN_VERSION="1.8.10" +ENV OPENSSL_VERSION="1.1.1w" +ENV KOTLIN_VERSION2="2.0.0" +ENV KOTLIN_VERSION="2.0.0" RUN set -x \ - && wget --no-check-certificate -O /tmp/kotlin-native-linux-${KOTLIN_VERSION}.tar.gz "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION2}/kotlin-native-linux-x86_64-${KOTLIN_VERSION}.tar.gz" \ + && wget --no-check-certificate -O /tmp/kotlin-native-linux-${KOTLIN_VERSION}.tar.gz "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION2}/kotlin-native-prebuilt-linux-x86_64-${KOTLIN_VERSION}.tar.gz" \ && cd /tmp \ && tar -xzvf kotlin-native-linux-${KOTLIN_VERSION}.tar.gz @@ -65,7 +65,7 @@ RUN set -x \ RUN set -x \ && cd /tmp/linuxArm64/openssl-${OPENSSL_VERSION} \ - && ./Configure --release no-shared no-asm --cross-compile-prefix=aarch64-linux-gnu- linux-aarch64 \ + && ./Configure --release no-shared no-asm --cross-compile-prefix=aarch64-linux-gnu- -mno-outline-atomics linux-aarch64 \ && make \ && ar -x libssl.a \ && ar -x libcrypto.a \ @@ -77,16 +77,16 @@ RUN set -x \ && cd /tmp \ && mkdir klib_linux_x64 \ && cd /tmp/klib_linux_x64 \ - && ../kotlin-native-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "linux_x64" -o openssl + && ../kotlin-native-prebuilt-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "linux_x64" -o openssl RUN set -x \ && cd /tmp \ && mkdir klib_mingw_x64 \ && cd /tmp/klib_mingw_x64 \ - && ../kotlin-native-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "mingw_x64" -o openssl + && ../kotlin-native-prebuilt-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "mingw_x64" -o openssl RUN set -x \ && cd /tmp \ && mkdir klib_linux_arm64 \ && cd /tmp/klib_linux_arm64 \ - && ../kotlin-native-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "linux_arm64" -o openssl + && ../kotlin-native-prebuilt-linux-x86_64-${KOTLIN_VERSION}/bin/cinterop -def ../openssl.def -target "linux_arm64" -o openssl diff --git a/kmqtt-broker/src/linuxX64Main/resources/openssl.def b/kmqtt-broker/src/linuxX64Main/resources/openssl.def index c4c1a056e2fc20956ad3cb43f5833e2112f1caf4..a48ce3af99aa3da35861df7423155a14c2cc444b 100644 --- a/kmqtt-broker/src/linuxX64Main/resources/openssl.def +++ b/kmqtt-broker/src/linuxX64Main/resources/openssl.def @@ -3,9 +3,9 @@ headerFilter = openssl/* package = openssl # TODO should be libssl.a libcrypto.a but it doesn't compile in the correct order, check resources/Dockerfile for the merge commands staticLibraries = libopenssl.a -compilerOpts.linux_x64 = -I/tmp/linuxX64/openssl-1.1.1t/include -libraryPaths.linux_x64 = /tmp/linuxX64/openssl-1.1.1t -compilerOpts.mingw_x64 = -I/tmp/mingwX64/openssl-1.1.1t/include -libraryPaths.mingw_x64 = /tmp/mingwX64/openssl-1.1.1t -compilerOpts.linux_arm64 = -I/tmp/linuxArm64/openssl-1.1.1t/include -libraryPaths.linux_arm64 = /tmp/linuxArm64/openssl-1.1.1t +compilerOpts.linux_x64 = -I/tmp/linuxX64/openssl-1.1.1w/include +libraryPaths.linux_x64 = /tmp/linuxX64/openssl-1.1.1w +compilerOpts.mingw_x64 = -I/tmp/mingwX64/openssl-1.1.1w/include +libraryPaths.mingw_x64 = /tmp/mingwX64/openssl-1.1.1w +compilerOpts.linux_arm64 = -I/tmp/linuxArm64/openssl-1.1.1w/include +libraryPaths.linux_arm64 = /tmp/linuxArm64/openssl-1.1.1w diff --git a/kmqtt-broker/src/mingwX64Main/kotlin/socket/tls/TLSServerEngine.kt b/kmqtt-broker/src/mingwX64Main/kotlin/socket/tls/TLSServerEngine.kt index d43d68eb401429c02f55df1b7426cd043953ed07..3c08335d5f42b109067f08d1df5a867ada9a0b6e 100644 --- a/kmqtt-broker/src/mingwX64Main/kotlin/socket/tls/TLSServerEngine.kt +++ b/kmqtt-broker/src/mingwX64Main/kotlin/socket/tls/TLSServerEngine.kt @@ -36,33 +36,33 @@ internal actual class TLSServerEngine actual constructor(serverContext: TLSServe this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { if (!freed) { SSL_free(context) freed = true diff --git a/kmqtt-broker/src/posixMain/kotlin/socket/ServerSocket.kt b/kmqtt-broker/src/posixMain/kotlin/socket/ServerSocket.kt index 1c2edaea333f0ab5bf8f5fd491e53dff90de4a04..f73b772da0ec39016849655a88d018e58ca225c9 100644 --- a/kmqtt-broker/src/posixMain/kotlin/socket/ServerSocket.kt +++ b/kmqtt-broker/src/posixMain/kotlin/socket/ServerSocket.kt @@ -286,7 +286,7 @@ internal actual open class ServerSocket actual constructor( } - override fun addClusterConnection(address: String): ClusterConnection? { + actual override fun addClusterConnection(address: String): ClusterConnection? { if (broker.cluster != null) { val cluster = broker.cluster memScoped { diff --git a/kmqtt-broker/src/posixMain/kotlin/socket/tls/TLSServerEngine.kt b/kmqtt-broker/src/posixMain/kotlin/socket/tls/TLSServerEngine.kt index 330744e3a880ebe81ef625955174c7d8a49466fa..dee0771bd3fcaadd7ff67fa2d97a3894a1373ea4 100644 --- a/kmqtt-broker/src/posixMain/kotlin/socket/tls/TLSServerEngine.kt +++ b/kmqtt-broker/src/posixMain/kotlin/socket/tls/TLSServerEngine.kt @@ -1,3 +1,22 @@ package socket.tls -internal expect class TLSServerEngine(serverContext: TLSServerContext) : TLSEngine +import kotlinx.cinterop.ByteVar +import kotlinx.cinterop.CPointer + +internal expect class TLSServerEngine(serverContext: TLSServerContext) : TLSEngine { + + override val isInitFinished: Boolean + override val bioShouldRetry: Boolean + + override fun write(buffer: CPointer<ByteVar>, length: Int): Int + + override fun read(buffer: CPointer<ByteVar>, length: Int): Int + + override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int + + override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int + + override fun getError(result: Int): Int + + override fun close() +} diff --git a/kmqtt-client/src/iosArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/iosArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/iosArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/iosArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/iosSimulatorArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/iosSimulatorArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/iosSimulatorArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/iosSimulatorArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/iosX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/iosX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/iosX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/iosX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/linuxArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/linuxArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/linuxArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/linuxArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/linuxX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/linuxX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/linuxX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/linuxX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/macosArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/macosArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/macosArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/macosArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/macosX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/macosX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/macosX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/macosX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/mingwX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/mingwX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/mingwX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/mingwX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/posixMain/kotlin/TLSClientEngine.kt b/kmqtt-client/src/posixMain/kotlin/TLSClientEngine.kt index 12ee86808d3b312ab7ffaa3a2de1e4835645462d..f6fa7a9e2b37a4d252b43f2c838e1b69e79513de 100644 --- a/kmqtt-client/src/posixMain/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/posixMain/kotlin/TLSClientEngine.kt @@ -1,4 +1,22 @@ +import kotlinx.cinterop.ByteVar +import kotlinx.cinterop.CPointer import socket.tls.TLSClientSettings import socket.tls.TLSEngine -internal expect class TLSClientEngine(tlsSettings: TLSClientSettings) : TLSEngine \ No newline at end of file +internal expect class TLSClientEngine(tlsSettings: TLSClientSettings) : TLSEngine { + + override val isInitFinished: Boolean + override val bioShouldRetry: Boolean + + override fun write(buffer: CPointer<ByteVar>, length: Int): Int + + override fun read(buffer: CPointer<ByteVar>, length: Int): Int + + override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int + + override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int + + override fun getError(result: Int): Int + + override fun close() +} \ No newline at end of file diff --git a/kmqtt-client/src/tvosArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/tvosArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/tvosArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/tvosArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/tvosSimulatorArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/tvosSimulatorArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/tvosSimulatorArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/tvosSimulatorArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/tvosX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/tvosX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/tvosX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/tvosX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/watchosArm32Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/watchosArm32Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/watchosArm32Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/watchosArm32Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/watchosArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/watchosArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/watchosArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/watchosArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/watchosSimulatorArm64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/watchosSimulatorArm64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/watchosSimulatorArm64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/watchosSimulatorArm64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-client/src/watchosX64Main/kotlin/TLSClientEngine.kt b/kmqtt-client/src/watchosX64Main/kotlin/TLSClientEngine.kt index 5e5f441593d326c50f14d86e8e6160609da1b506..d5e331b30bb2dd0e5150a51348b43be5a8f3b858 100644 --- a/kmqtt-client/src/watchosX64Main/kotlin/TLSClientEngine.kt +++ b/kmqtt-client/src/watchosX64Main/kotlin/TLSClientEngine.kt @@ -141,33 +141,33 @@ internal actual class TLSClientEngine actual constructor(tlsSettings: TLSClientS this.writeBio = writeBio } - override val isInitFinished: Boolean + actual override val isInitFinished: Boolean get() = SSL_is_init_finished(context) != 0 - override val bioShouldRetry: Boolean + actual override val bioShouldRetry: Boolean get() = BIO_test_flags(writeBio, BIO_FLAGS_SHOULD_RETRY) == 0 - override fun write(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun write(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_write(context, buffer, length) } - override fun read(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun read(buffer: CPointer<ByteVar>, length: Int): Int { return SSL_read(context, buffer, length) } - override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioRead(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_read(writeBio, buffer, length) } - override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { + actual override fun bioWrite(buffer: CPointer<ByteVar>, length: Int): Int { return BIO_write(readBio, buffer, length) } - override fun getError(result: Int): Int { + actual override fun getError(result: Int): Int { return SSL_get_error(context, result) } - override fun close() { + actual override fun close() { SSL_free(context) } } diff --git a/kmqtt-common/src/jvmMain/kotlin/socket/tls/TLSSocket.kt b/kmqtt-common/src/jvmMain/kotlin/socket/tls/TLSSocket.kt index f280fcb2fa87eade6203a4d4cf6793e9fb385c72..62ec6a0bf7962096179805609380d3ee01556f1b 100644 --- a/kmqtt-common/src/jvmMain/kotlin/socket/tls/TLSSocket.kt +++ b/kmqtt-common/src/jvmMain/kotlin/socket/tls/TLSSocket.kt @@ -16,12 +16,12 @@ import javax.net.ssl.SSLException public actual open class TLSSocket( channel: SocketChannel, key: SelectionKey?, - private var sendBuffer: ByteBuffer, - private var receiveBuffer: ByteBuffer, + private var sendBuffer1: ByteBuffer, + private var receiveBuffer1: ByteBuffer, private var sendAppBuffer: ByteBuffer, private var receiveAppBuffer: ByteBuffer, protected val engine: SSLEngine -) : Socket(channel, key, sendBuffer, receiveBuffer) { +) : Socket(channel, key, sendBuffer1, receiveBuffer1) { init { engine.beginHandshake() @@ -29,11 +29,11 @@ public actual open class TLSSocket( } private fun handleReceiveBufferUnderflow() { - if (engine.session.packetBufferSize > receiveBuffer.capacity()) { + if (engine.session.packetBufferSize > receiveBuffer1.capacity()) { val newBuffer = ByteBuffer.allocate(engine.session.packetBufferSize) - receiveBuffer.flip() - newBuffer.put(receiveBuffer) - receiveBuffer = newBuffer + receiveBuffer1.flip() + newBuffer.put(receiveBuffer1) + receiveBuffer1 = newBuffer } } @@ -46,10 +46,10 @@ public actual open class TLSSocket( } private fun handleSendBufferOverflow() { - sendBuffer = if (engine.session.packetBufferSize > sendBuffer.capacity()) { + sendBuffer1 = if (engine.session.packetBufferSize > sendBuffer1.capacity()) { ByteBuffer.allocate(engine.session.applicationBufferSize) } else { - ByteBuffer.allocate(sendBuffer.capacity() * 2) + ByteBuffer.allocate(sendBuffer1.capacity() * 2) } } @@ -65,7 +65,7 @@ public actual open class TLSSocket( sendAppBuffer.flip() try { do { - val result = engine.wrap(sendAppBuffer, sendBuffer) + val result = engine.wrap(sendAppBuffer, sendBuffer1) @Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA") when (result.status) { SSLEngineResult.Status.BUFFER_UNDERFLOW -> { @@ -132,9 +132,9 @@ public actual open class TLSSocket( private fun read0(): Boolean { try { do { - receiveBuffer.flip() - val result = engine.unwrap(receiveBuffer, receiveAppBuffer) - receiveBuffer.compact() + receiveBuffer1.flip() + val result = engine.unwrap(receiveBuffer1, receiveAppBuffer) + receiveBuffer1.compact() @Suppress("WHEN_ENUM_CAN_BE_NULL_IN_JAVA") when (result.status) { SSLEngineResult.Status.OK -> {} diff --git a/kmqtt-common/src/nativeInterop/openssl-linux-arm64.klib b/kmqtt-common/src/nativeInterop/openssl-linux-arm64.klib index d432bf95c7219ef35a16f137dccf5ff0146b7455..3ee2493551a93a445134e5d1302fe3c759a21318 100644 Binary files a/kmqtt-common/src/nativeInterop/openssl-linux-arm64.klib and b/kmqtt-common/src/nativeInterop/openssl-linux-arm64.klib differ diff --git a/kmqtt-common/src/nativeInterop/openssl-linux-x64.klib b/kmqtt-common/src/nativeInterop/openssl-linux-x64.klib index 5d130ba8f6377f9ecc61d7c8965abf8fc4e11ee5..8379de6943ce289b46f65bcf7375bd163ae56ad6 100644 Binary files a/kmqtt-common/src/nativeInterop/openssl-linux-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-linux-x64.klib differ diff --git a/kmqtt-common/src/nativeInterop/openssl-mingw-x64.klib b/kmqtt-common/src/nativeInterop/openssl-mingw-x64.klib index aaffe95ec9a95ca3bfdc6cf1c2b7fe386ca27a21..0454a9f41da84524eb75de6e0ed6f96dea768a0b 100644 Binary files a/kmqtt-common/src/nativeInterop/openssl-mingw-x64.klib and b/kmqtt-common/src/nativeInterop/openssl-mingw-x64.klib differ