Skip to content

Commit b73d79f

Browse files
committed
fix(SSE): only initialize http.Server when not set
1 parent df73667 commit b73d79f

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

server/sse.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,21 @@ func NewTestServer(server *MCPServer, opts ...SSEOption) *httptest.Server {
190190
// It sets up HTTP handlers for SSE and message endpoints.
191191
func (s *SSEServer) Start(addr string) error {
192192
s.mu.Lock()
193-
s.srv = &http.Server{
194-
Addr: addr,
195-
Handler: s,
196-
}
197-
s.mu.Unlock()
193+
defer s.mu.Unlock()
198194

195+
if s.srv == nil {
196+
s.srv = &http.Server{
197+
Addr: addr,
198+
Handler: s,
199+
}
200+
} else {
201+
if s.srv.Addr == "" {
202+
s.srv.Addr = addr
203+
} else if s.srv.Addr != addr {
204+
return fmt.Errorf("conflicting listen address: WithHTTPServer(%q) vs Start(%q)", s.srv.Addr, addr)
205+
}
206+
}
207+
199208
return s.srv.ListenAndServe()
200209
}
201210

0 commit comments

Comments
 (0)