From fec890da2fe7e1cfeadd90bc74ea9f1cd60cbc4c Mon Sep 17 00:00:00 2001 From: Mikkel Krautz Date: Fri, 20 May 2011 12:30:24 +0200 Subject: [PATCH] Fix SuperUser handling on new servers. --- freeze.go | 15 +++++++++------ server.go | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/freeze.go b/freeze.go index 1453549..3394759 100644 --- a/freeze.go +++ b/freeze.go @@ -17,11 +17,12 @@ import ( ) type frozenServer struct { - Id int "id" - Config map[string]string "config" - Bans []ban.Ban "bans" - Channels []frozenChannel "channels" - Users []frozenUser "users" + Id int "id" + SuperUserPassword string "supw" + Config map[string]string "config" + Bans []ban.Ban "bans" + Channels []frozenChannel "channels" + Users []frozenUser "users" } type frozenUser struct { @@ -104,7 +105,7 @@ func (server *Server) FreezeToFile(filename string) (err os.Error) { } else if err != nil { return err } - err = os.Rename(filename, filename + ".old") + err = os.Rename(filename, filename+".old") if e, ok := err.(*os.LinkError); ok { if e.Error != os.ENOENT { return err @@ -125,6 +126,7 @@ func (server *Server) FreezeToFile(filename string) (err os.Error) { func (server *Server) Freeze() (fs frozenServer, err os.Error) { fs.Id = int(server.Id) fs.Config = server.cfg.GetAll() + fs.SuperUserPassword = server.SuperUserPassword server.banlock.RLock() fs.Bans = make([]ban.Ban, len(server.Bans)) @@ -258,6 +260,7 @@ func NewServerFromFrozen(filename string) (s *Server, err os.Error) { s.cfg = serverconf.New(fs.Config) } + s.SuperUserPassword = fs.SuperUserPassword s.Bans = fs.Bans // Add all channels, but don't hook up parent/child relationships diff --git a/server.go b/server.go index 63b3b54..09fd023 100644 --- a/server.go +++ b/server.go @@ -155,6 +155,8 @@ func NewServer(id int64, addr string, port int) (s *Server, err os.Error) { s.clientAuthenticated = make(chan *Client) s.Users[0], err = NewUser(0, "SuperUser") + s.UserNameMap["SuperUser"] = s.Users[0] + s.Channels = make(map[int]*Channel) s.root = s.NewChannel(0, "Root") s.aclcache = NewACLCache()