diff --git a/src/flowgate/config.rs b/src/flowgate/config.rs index 541ef05..c32385f 100644 --- a/src/flowgate/config.rs +++ b/src/flowgate/config.rs @@ -83,7 +83,7 @@ impl Config { let mut cert: Option = None; let s = s.as_mapping()?; - if s.contains_key("ssl_cert") && !s.get("ssl_cert")?.is_null() { + if s.contains_key("ssl_cert") { cert = Some( SslCert::new( s.get("ssl_cert")?.as_str()?, diff --git a/src/flowgate/server.rs b/src/flowgate/server.rs index 5e96bbd..e225247 100644 --- a/src/flowgate/server.rs +++ b/src/flowgate/server.rs @@ -509,9 +509,14 @@ impl FlowgateServer { } } } else { - let mut buf = Vec::new(); - conn.stream.read_to_end(&mut buf).ok()?; - stream.write_all(&buf).ok()?; + let mut buf = vec![0;1024]; + while let Ok(n) = conn.stream.read(&mut buf) { + if n == 0 { break } + buf.truncate(n); + stream.write_all(&buf).ok()?; + if n < 1024 { break } + buf = vec![0;1024]; + } } info!("{addr} > {} {}://{}{}", status_seq[0], if https { "https" } else { "http" }, conn.host, status_seq[1]);