fix: loop clean http parser

This commit is contained in:
SunBK201 2023-12-04 21:16:54 +08:00
parent 47730f22a8
commit 6ccf29f0be

View File

@ -54,6 +54,7 @@ func main() {
printAndLog(fmt.Sprintf("Accept failed: %v", err), logger, syslog.LOG_ERR) printAndLog(fmt.Sprintf("Accept failed: %v", err), logger, syslog.LOG_ERR)
continue continue
} }
printAndLog(fmt.Sprintf("Accept %s", client.RemoteAddr().String()), logger, syslog.LOG_DEBUG)
go process(client) go process(client)
} }
} }
@ -170,7 +171,6 @@ func Socks5Forward(client, target net.Conn) {
} }
func CopyPileline(dst io.Writer, src io.Reader) { func CopyPileline(dst io.Writer, src io.Reader) {
parser := NewHTTPParser()
logger, _ := syslog.Dial("", "", syslog.LOG_INFO, "UA3F") logger, _ := syslog.Dial("", "", syslog.LOG_INFO, "UA3F")
buf := make([]byte, 1024*8) buf := make([]byte, 1024*8)
nr, err := src.Read(buf) nr, err := src.Read(buf)
@ -194,6 +194,7 @@ func CopyPileline(dst io.Writer, src io.Reader) {
return return
} }
for { for {
parser := NewHTTPParser()
httpBodyOffset, err := parser.Parse(buf[0:nr]) httpBodyOffset, err := parser.Parse(buf[0:nr])
for err == ErrMissingData { for err == ErrMissingData {
var m int var m int