mirror of
https://github.com/mumble-voip/grumble.git
synced 2025-12-20 06:10:00 -08:00
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
// Copyright (c) 2010 The Grumble Authors
|
|
// The use of this source code is goverened by a BSD-style
|
|
// license that can be found in the LICENSE-file.
|
|
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"log"
|
|
"mumbleproto"
|
|
"goprotobuf.googlecode.com/hg/proto"
|
|
)
|
|
|
|
var help *bool = flag.Bool("help", false, "Show this help")
|
|
var port *int = flag.Int("port", 64738, "Default port to listen on")
|
|
var host *string = flag.String("host", "0.0.0.0", "Default host to listen on")
|
|
|
|
func usage() {
|
|
fmt.Fprintf(os.Stderr, "usage: grumble [options]\n")
|
|
flag.PrintDefaults()
|
|
}
|
|
|
|
// Check that we're using a version of goprotobuf that is able to
|
|
// correctly encode empty byte slices.
|
|
func checkProtoLib() {
|
|
us := &mumbleproto.UserState{}
|
|
us.Texture = []byte{}
|
|
d, _ := proto.Marshal(us)
|
|
nus := &mumbleproto.UserState{}
|
|
proto.Unmarshal(d, nus)
|
|
if nus.Texture == nil {
|
|
log.Exitf("Unpatched version of goprotobuf. Grumble is refusing to run.")
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
if *help == true {
|
|
usage()
|
|
return
|
|
}
|
|
|
|
checkProtoLib()
|
|
|
|
// Create our default server
|
|
m, err := NewServer(*host, *port)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// And launch it.
|
|
go m.ListenAndMurmur()
|
|
|
|
// Listen forever
|
|
sleeper := make(chan int)
|
|
zzz := <-sleeper
|
|
if zzz > 0 {
|
|
}
|
|
}
|