private fun segment_http_request(http_request: String): Bool
do
var header_end = http_request.search("\r\n\r\n")
if header_end == null then
header_fields = http_request.split_with("\r\n")
else
header_fields = http_request.substring(0, header_end.from).split_with("\r\n")
body = http_request.substring(header_end.after, http_request.length-1)
end
# If a line of the http_request is long it may change line, it has " " at the
# end to indicate this. This section turns them into 1 line.
if header_fields.length > 1 and header_fields[0].has_suffix(" ") then
var temp_req = header_fields[0].substring(0, header_fields[0].length-1) + header_fields[1]
first_line = temp_req.split_with(' ')
header_fields.shift
header_fields.shift
if first_line.length != 3 then return false
else
first_line = header_fields[0].split_with(' ')
header_fields.shift
if first_line.length != 3 then return false
end
# Cut off the header in lines
var pos = 0
while pos < header_fields.length do
if pos < header_fields.length-1 and header_fields[pos].has_suffix(" ") then
header_fields[pos] = header_fields[pos].substring(0, header_fields[pos].length-1) + header_fields[pos+1]
header_fields.remove_at(pos+1)
pos = pos-1
end
pos = pos+1
end
return true
end
lib/nitcorn/http_request.nit:190,2--230,4