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