From ceb3524b497f22814078da9e974fedaf75a06676 Mon Sep 17 00:00:00 2001 From: Mikkel Krautz Date: Fri, 26 Aug 2011 12:54:14 +0200 Subject: [PATCH] Update registration code to work on latest Go tip. --- register.go | 89 +++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 47 deletions(-) diff --git a/register.go b/register.go index 8915c8a..ca57f73 100644 --- a/register.go +++ b/register.go @@ -4,6 +4,8 @@ package main +// This file handles public server list registration + import ( "bytes" "crypto/sha1" @@ -13,35 +15,32 @@ import ( "io/ioutil" "net" "os" - "strconv" - "template" + "url" + "xml" ) -// This file handles public server list registration - -const registerTemplate = ` - - {.section machash}{machash}{.end} - {.section version}{version}{.end} - {.section release}{release}{.end} - {.section os}{os}{.end} - {.section osver}{osver}{.end} - {.section qt}{qt}{.end} - {.section is64bit}{is64bit}{.end} - {.section cpuid}{cpuid}{.end} - {.section cpuextid}{cpu_extid}{.end} - {.section cpusse2}{cpusse2}{.end} - {.section name}{name}{.end} - {.section host}{host}{.end} - {.section password}{password}{.end} - {.section port}{port}{.end} - {.section url}{url}{.end} - {.section digest}{digest}{.end} - {.section users}{users}{.end} - {.section channels}{channels}{.end} - {.section location}{location}{.end} - -` +type Register struct { + XMLName xml.Name `xml:"server"` + //MacHash string `xml:"machash"` + Version string `xml:"version"` + Release string `xml:"release"` + //OS string `xml:"os"` + //OSVer string `xml:"osver"` + //Qt string `xml:"qt"` + //Is64Bit bool `xml:"is64bit"` + //CpuId string `xml:"cpuid"` + //CpuIdExt string `xml:"cpuidext"` + //CpuSSE2 bool `xml:"cpusse2"` + Name string `xml:"name"` + Host string `xml:"host"` + Password string `xml:"password"` + Port int `xml:"port"` + Url string `xml:"url"` + Digest string `xml:"digest"` + Users int `xml:"users"` + Channels int `xml:"channels"` + Location string `xml:"location"` +} const ( registerAddr = "mumble.hive.no:443" @@ -114,27 +113,23 @@ func (server *Server) RegisterPublicServer() { digest := hex.EncodeToString(hasher.Sum()) // Render registration XML template - buf := bytes.NewBuffer(nil) - t, err := template.Parse(registerTemplate, nil) - if err != nil { - server.Printf("register: unable to parse template: %v", err) - return + reg := Register{ + Name: server.cfg.StringValue("RegisterName"), + Host: server.cfg.StringValue("RegisterHost"), + Password: server.cfg.StringValue("RegisterPassword"), + Url: server.cfg.StringValue("RegisterWebUrl"), + Location: server.cfg.StringValue("RegisterLocation"), + Port: server.port, + Digest: digest, + Users: len(server.clients), + Channels: len(server.Channels), + Version: "1.2.4", + Release: "Grumble Git", } - err = t.Execute(buf, map[string]string{ - "name": server.cfg.StringValue("RegisterName"), - "host": server.cfg.StringValue("RegisterHost"), - "password": server.cfg.StringValue("RegisterPassword"), - "url": server.cfg.StringValue("RegisterWebUrl"), - "location": server.cfg.StringValue("RegisterLocation"), - "port": strconv.Itoa(server.port), - "digest": digest, - "users": strconv.Itoa(len(server.clients)), - "channels": strconv.Itoa(len(server.Channels)), - "version": "1.2.4", - "release": "Grumble git", - }) + buf := bytes.NewBuffer(nil) + err := xml.Marshal(buf, reg) if err != nil { - server.Printf("register: unable to execute template: %v", err) + server.Printf("register: unable to marshal xml: %v", err) return } @@ -163,7 +158,7 @@ func (server *Server) RegisterPublicServer() { "Content-Type": {"text/xml"}, } - req.URL, err = http.ParseURL(registerUrl) + req.URL, err = url.Parse(registerUrl) if err != nil { server.Printf("register: error parsing url: %v", err) return