|
|
@@ -370,8 +370,7 @@ func (w *ServerWorker) handleStatusEnd(meta *FrameMetadata, reader io.Reader) er
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (w *ServerWorker) handleFrame(ctx context.Context, reader io.Reader) error {
|
|
|
- metaReader := NewMetadataReader(reader)
|
|
|
+func (w *ServerWorker) handleFrame(ctx context.Context, reader io.Reader, metaReader *MetadataReader) error {
|
|
|
meta, err := metaReader.Read()
|
|
|
if err != nil {
|
|
|
return newError("failed to read metadata").Base(err)
|
|
|
@@ -399,6 +398,7 @@ func (w *ServerWorker) handleFrame(ctx context.Context, reader io.Reader) error
|
|
|
func (w *ServerWorker) run(ctx context.Context) {
|
|
|
input := w.outboundRay.OutboundInput()
|
|
|
reader := buf.ToBytesReader(input)
|
|
|
+ metaReader := NewMetadataReader(reader)
|
|
|
|
|
|
defer w.sessionManager.Close()
|
|
|
|
|
|
@@ -407,7 +407,7 @@ func (w *ServerWorker) run(ctx context.Context) {
|
|
|
case <-ctx.Done():
|
|
|
return
|
|
|
default:
|
|
|
- err := w.handleFrame(ctx, reader)
|
|
|
+ err := w.handleFrame(ctx, reader, metaReader)
|
|
|
if err != nil {
|
|
|
if errors.Cause(err) != io.EOF {
|
|
|
log.Trace(newError("unexpected EOF").Base(err))
|