From 78c528dc383d35ae27ae2c92970f334890fde704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96ppen?= Date: Tue, 18 Aug 2020 20:29:16 +0100 Subject: [PATCH] handle excessaive whitespace in header --- app/src/main/java/oppen/tva/io/GeminiDatasource.kt | 1 + app/src/main/java/oppen/tva/io/GeminiResponse.kt | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/oppen/tva/io/GeminiDatasource.kt b/app/src/main/java/oppen/tva/io/GeminiDatasource.kt index 75e5c21..e0c03ee 100644 --- a/app/src/main/java/oppen/tva/io/GeminiDatasource.kt +++ b/app/src/main/java/oppen/tva/io/GeminiDatasource.kt @@ -99,6 +99,7 @@ class GeminiDatasource: Datasource{ return } + // OUT >>>>>>>>>>>>>>>>>>>>>>>>>> val outputStreamWriter = OutputStreamWriter(socket.outputStream) val bufferedWriter = BufferedWriter(outputStreamWriter) diff --git a/app/src/main/java/oppen/tva/io/GeminiResponse.kt b/app/src/main/java/oppen/tva/io/GeminiResponse.kt index f5e6d72..ed4b60c 100644 --- a/app/src/main/java/oppen/tva/io/GeminiResponse.kt +++ b/app/src/main/java/oppen/tva/io/GeminiResponse.kt @@ -11,19 +11,21 @@ object GeminiResponse { const val UNKNOWN = -1 fun parseHeader(header: String): Header{ + var cleanHeader = header.replace("\\s+".toRegex(), " ") var meta = "" when { header.startsWith("2") -> { - val segments = header.trim().split(" ") + val segments = cleanHeader.trim().split(" ") meta = when { segments.size > 1 -> segments[1] else -> "text/gemini; charset=utf-8" } } else -> { + meta = when { - header.contains(" ") -> header.substring(header.indexOf(" ") + 1) - else -> header + cleanHeader.contains(" ") -> cleanHeader.substring(cleanHeader.indexOf(" ") + 1) + else -> cleanHeader } } }