@@ -174,7 +174,8 @@ pub fn (req &Request) do() !Response {
174174 if ! req.allow_redirect {
175175 break
176176 }
177- if resp.status_code ! in [301 , 302 , 303 , 307 , 308 ] {
177+ if resp.status () ! in [.moved_permanently, .found, .see_other, .temporary_redirect,
178+ .permanent_redirect] {
178179 break
179180 }
180181 // follow any redirects
@@ -399,7 +400,7 @@ fn (req &Request) receive_all_data_from_cb_in_builder(mut content strings.Builde
399400 if headers_end < 0 {
400401 unsafe { header_buf.write_ptr (bp, len) }
401402 if header_buf.len > = headers_body_boundary.len {
402- header_str := header_buf.spart ( 0 , header_buf.len )
403+ header_str := header_buf.bytestr ( )
403404 hidx := header_str.index_ (headers_body_boundary)
404405 if hidx > = 0 {
405406 headers_end = hidx + headers_body_boundary.len
@@ -505,10 +506,7 @@ pub fn parse_request(mut reader io.BufferedReader) !Request {
505506pub fn parse_request_head (mut reader io.BufferedReader) ! Request {
506507 // request line
507508 mut line := reader.read_line ()!
508- request_line := parse_request_line (line)!
509- method := request_line.method
510- target := request_line.target
511- version := request_line.version
509+ method , target , version := parse_request_line (line)!
512510
513511 // headers
514512 mut header := new_header ()
@@ -523,6 +521,7 @@ pub fn parse_request_head(mut reader io.BufferedReader) !Request {
523521 }
524522 if pos + 1 < line.len {
525523 value := line[pos + 1 ..]
524+ _ , _ = key, value
526525 // println('key,value=${key},${value}')
527526 header.add_custom (key, value)!
528527 }
@@ -552,10 +551,7 @@ pub fn parse_request_head_str(s string) !Request {
552551 return error ('malformed request: no request line found' )
553552 }
554553 line0 := s[..pos0 ].trim_space ()
555- request_line := parse_request_line (line0 )!
556- method := request_line.method
557- target := request_line.target
558- version := request_line.version
554+ method , target , version := parse_request_line (line0 )!
559555
560556 // headers
561557 mut header := new_header ()
@@ -617,13 +613,7 @@ pub fn parse_request_str(s string) !Request {
617613 return request
618614}
619615
620- struct ParsedRequestLine {
621- method Method
622- target urllib.URL
623- version Version
624- }
625-
626- fn parse_request_line (line string ) ! ParsedRequestLine {
616+ fn parse_request_line (line string ) ! (Method, urllib.URL, Version) {
627617 // println('S=${s}')
628618 words := line.split (' ' )
629619 // println('words=')
@@ -655,11 +645,7 @@ fn parse_request_line(line string) !ParsedRequestLine {
655645 if version == .unknown {
656646 return error ('unsupported version' )
657647 }
658- return ParsedRequestLine{
659- method: method
660- target: target
661- version: version
662- }
648+ return method, target, version
663649}
664650
665651// Parse URL encoded key=value&key=value forms
0 commit comments