From 705b43bcd57d0fee714e5f3d40fec454644e1b1f Mon Sep 17 00:00:00 2001 From: Benjamin Jemlich Date: Tue, 26 Apr 2011 02:55:42 +0800 Subject: [PATCH] Handle freeze requests for stopped servers --- server.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server.go b/server.go index ebc8bbf..e4baa04 100644 --- a/server.go +++ b/server.go @@ -986,6 +986,17 @@ func (server *Server) userEnterChannel(client *Client, channel *Channel, usersta // Create a point-in-time snapshot of Server and make it // accessible through the returned io.ReadCloser. func (s *Server) FreezeServer() io.ReadCloser { + if !s.running { + fs, err := s.Freeze() + if err != nil { + log.Panicf("Unable to freeze the server") + } + fr := &freezeRequest{done:make(chan bool)} + go s.handleFreezeRequest(fr, &fs) + <-fr.done + return fr.readCloser + } + fr := &freezeRequest{done:make(chan bool)} s.freezeRequest <- fr <-fr.done