From 83d58192b5b17377a5681adf19779336de750dbd Mon Sep 17 00:00:00 2001 From: nwuensche Date: Fri, 13 Dec 2019 21:51:36 +0100 Subject: [PATCH] Add /kill stops sharing --- .../webserver/WebServerMultipleFiles.kt | 11 +++++++++++ .../sharetocomputer/webserver/WebServerSingleFile.kt | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerMultipleFiles.kt b/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerMultipleFiles.kt index 6b81050..a61d49d 100644 --- a/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerMultipleFiles.kt +++ b/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerMultipleFiles.kt @@ -22,9 +22,11 @@ import android.net.Uri import com.jim.sharetocomputer.FileInfo import com.jim.sharetocomputer.Message import com.jim.sharetocomputer.R +import com.jim.sharetocomputer.WebServerService import com.jim.sharetocomputer.ext.getAppName import com.jim.sharetocomputer.ext.getFileName import com.jim.sharetocomputer.logging.MyLog +import com.jim.sharetocomputer.ui.main.MainActivity import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch @@ -36,6 +38,7 @@ import java.io.PipedOutputStream import java.util.zip.Deflater import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream +import kotlin.system.exitProcess class WebServerMultipleFiles(private val context: Context, port: Int) : WebServer(port) { @@ -56,6 +59,14 @@ class WebServerMultipleFiles(private val context: Context, port: Int) : WebServe uris?.size ?: 0, uris?.map { FileInfo(context.getFileName(it)) } ?: emptyList() ) + } else if (session.uri == "/kill") { + context.stopService(WebServerService.createIntent(context, null)) + return newFixedLengthResponse( + Response.Status.OK, + "text/html", + InputStreamNotifyWebServer(ByteArrayInputStream("".toByteArray()), this), + -1 + ) } else if (session.uri == "/zip") { zipResponse() } else if (session.uri.matches("/[0-9]+".toRegex())) { diff --git a/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerSingleFile.kt b/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerSingleFile.kt index ce9eb4e..623e80d 100644 --- a/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerSingleFile.kt +++ b/app/src/main/java/com/jim/sharetocomputer/webserver/WebServerSingleFile.kt @@ -21,8 +21,10 @@ import android.content.Context import android.net.Uri import com.jim.sharetocomputer.FileInfo import com.jim.sharetocomputer.Message +import com.jim.sharetocomputer.WebServerService import com.jim.sharetocomputer.ext.getFileName import com.jim.sharetocomputer.logging.MyLog +import java.io.ByteArrayInputStream class WebServerSingleFile(private val context: Context, port: Int) : WebServer(port) { @@ -44,6 +46,14 @@ class WebServerSingleFile(private val context: Context, port: Int) : WebServer(p ) } else if (session.uri == "/info") { return infoResponse(1, listOf(FileInfo(context.getFileName(uri!!)))) + } else if (session.uri == "/kill") { + context.stopService(WebServerService.createIntent(context, null)) + return newFixedLengthResponse( + Response.Status.OK, + "text/html", + InputStreamNotifyWebServer(ByteArrayInputStream("".toByteArray()), this), + -1 + ) } else { val fis = context.contentResolver.openInputStream(uri!!) MyLog.d("*Response:$uri") @@ -57,4 +67,4 @@ class WebServerSingleFile(private val context: Context, port: Int) : WebServer(p } } } -} \ No newline at end of file +}