MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / Stop

Method Stop

internal/api/server.go:1540–1566  ·  view source on GitHub ↗

Stop gracefully shuts down the API server without interrupting any active connections. Parameters: - ctx: The context for graceful shutdown Returns: - error: An error if the server fails to stop

(ctx context.Context)

Source from the content-addressed store, hash-verified

1538// Returns:
1539// - error: An error if the server fails to stop
1540func (s *Server) Stop(ctx context.Context) error {
1541 log.Debug("Stopping API server...")
1542
1543 if s.keepAliveEnabled {
1544 select {
1545 case s.keepAliveStop <- struct{}{}:
1546 default:
1547 }
1548 }
1549
1550 if s.muxHTTPListener != nil {
1551 _ = s.muxHTTPListener.Close()
1552 }
1553 if s.muxBaseListener != nil {
1554 if errClose := s.muxBaseListener.Close(); errClose != nil && !errors.Is(errClose, net.ErrClosed) {
1555 log.Debugf("failed to close shared listener: %v", errClose)
1556 }
1557 }
1558
1559 // Shutdown the HTTP server.
1560 if err := s.server.Shutdown(ctx); err != nil {
1561 return fmt.Errorf("failed to shutdown HTTP server: %v", err)
1562 }
1563
1564 log.Debug("API server stopped")
1565 return nil
1566}
1567
1568// corsMiddleware returns a Gin middleware handler that adds CORS headers
1569// to every response, allowing cross-origin requests.

Callers 1

startTestServerFunction · 0.95

Calls 2

CloseMethod · 0.65
ShutdownMethod · 0.65

Tested by 1

startTestServerFunction · 0.76