mirror of https://git.sr.ht/~oppen/ariane
handle excessaive whitespace in header
This commit is contained in:
parent
079022112f
commit
78c528dc38
|
@ -99,6 +99,7 @@ class GeminiDatasource: Datasource{
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// OUT >>>>>>>>>>>>>>>>>>>>>>>>>>
|
// OUT >>>>>>>>>>>>>>>>>>>>>>>>>>
|
||||||
val outputStreamWriter = OutputStreamWriter(socket.outputStream)
|
val outputStreamWriter = OutputStreamWriter(socket.outputStream)
|
||||||
val bufferedWriter = BufferedWriter(outputStreamWriter)
|
val bufferedWriter = BufferedWriter(outputStreamWriter)
|
||||||
|
|
|
@ -11,19 +11,21 @@ object GeminiResponse {
|
||||||
const val UNKNOWN = -1
|
const val UNKNOWN = -1
|
||||||
|
|
||||||
fun parseHeader(header: String): Header{
|
fun parseHeader(header: String): Header{
|
||||||
|
var cleanHeader = header.replace("\\s+".toRegex(), " ")
|
||||||
var meta = ""
|
var meta = ""
|
||||||
when {
|
when {
|
||||||
header.startsWith("2") -> {
|
header.startsWith("2") -> {
|
||||||
val segments = header.trim().split(" ")
|
val segments = cleanHeader.trim().split(" ")
|
||||||
meta = when {
|
meta = when {
|
||||||
segments.size > 1 -> segments[1]
|
segments.size > 1 -> segments[1]
|
||||||
else -> "text/gemini; charset=utf-8"
|
else -> "text/gemini; charset=utf-8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
|
|
||||||
meta = when {
|
meta = when {
|
||||||
header.contains(" ") -> header.substring(header.indexOf(" ") + 1)
|
cleanHeader.contains(" ") -> cleanHeader.substring(cleanHeader.indexOf(" ") + 1)
|
||||||
else -> header
|
else -> cleanHeader
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue