fix 如果报错,就会拒绝服务的问题
This commit is contained in:
		
							parent
							
								
									d10a80765e
								
							
						
					
					
						commit
						6ce4bf7726
					
				
							
								
								
									
										14
									
								
								server.go
								
								
								
								
							
							
						
						
									
										14
									
								
								server.go
								
								
								
								
							|  | @ -127,21 +127,22 @@ func (s *Server) createNewClientConnection(ctx context.Context, listener Listene | |||
| 
 | ||||
| 	go func(ctx context.Context, qConn quic.Connection) { | ||||
| 		for { | ||||
| 			err := s.handle(ctx, qConn, connect, connId) | ||||
| 			err := s.handle(ctx, qConn, connId) | ||||
| 			if err != nil { | ||||
| 				continue | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
| 	}(sctx, connect) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (s *Server) handle(ctx context.Context, qConn quic.Connection, conn quic.Connection, connId string) error { | ||||
| func (s *Server) handle(ctx context.Context, qConn quic.Connection, connId string) error { | ||||
| 	log.Infof("%s2/ waiting for new stream", ServerLogPrefix) | ||||
| 	stream, err := qConn.AcceptStream(ctx) | ||||
| 	if err != nil { | ||||
| 		name := "--" | ||||
| 		if conn := s.connector.Get(connId); conn != nil { | ||||
| 		conn := s.connector.Get(connId) | ||||
| 		if conn != nil { | ||||
| 			_ = conn.Close() | ||||
| 			// connector
 | ||||
| 			s.connector.Remove(connId) | ||||
|  | @ -150,6 +151,9 @@ func (s *Server) handle(ctx context.Context, qConn quic.Connection, conn quic.Co | |||
| 				_ = route.Remove(connId) | ||||
| 			} | ||||
| 			name = conn.Name() | ||||
| 		} else { | ||||
| 			_ = s.Close() | ||||
| 
 | ||||
| 		} | ||||
| 		log.Printf("%s [%s](%s) close the connection: %v", ServerLogPrefix, name, connId, err) | ||||
| 		return err | ||||
|  | @ -161,7 +165,7 @@ func (s *Server) handle(ctx context.Context, qConn quic.Connection, conn quic.Co | |||
| 	log.Infof("%s3/ [stream:%d] created, connId=%s", ServerLogPrefix, stream.StreamID(), connId) | ||||
| 	// process frames on stream
 | ||||
| 	// c := newContext(connId, stream)
 | ||||
| 	c := newContext(conn, stream) | ||||
| 	c := newContext(qConn, stream) | ||||
| 	defer c.Clean() | ||||
| 	s.handleConnection(c) | ||||
| 	log.Infof("%s4/ [stream:%d] handleConnection DONE", ServerLogPrefix, stream.StreamID()) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue