}
v.Title = "chat"
v.Editable = true
- if err := GUI.SetKeybinding(
+ if err = GUI.SetKeybinding(
"chat", gocui.KeyEnter, gocui.ModNone, chatEnter,
); err != nil {
return err
v.Title = ">" + stream.name + "<"
} else {
v.Title = stream.name
- if err := GUI.SetKeybinding(
+ if err = GUI.SetKeybinding(
stream.name, gocui.KeyEnter, gocui.ModNone, func(*gocui.Gui, *gocui.View) error {
stream.silenced = !stream.silenced
return nil
)
type Stream struct {
+ in chan []byte
+ stats *Stats
name string
ctr uint32
actr uint32
muted bool
silenced bool
- in chan []byte
- stats *Stats
}
var (
if err != nil {
log.Fatalln("connect:", err)
}
- var sid byte
+ var sidConnected byte
{
- args, err := vors.ArgsDecode(buf)
+ var args [][]byte
+ args, err = vors.ArgsDecode(buf)
if err != nil {
log.Fatalln("args decode:", err)
}
log.Fatalln("write:", err)
}
case buf = <-rx:
- args, err := vors.ArgsDecode(buf)
+ var args [][]byte
+ args, err = vors.ArgsDecode(buf)
if err != nil {
log.Fatalln("args decode:", err)
}
case vors.CmdErr:
log.Fatalln("cookie acceptance failed:", string(args[1]))
case vors.CmdSID:
- sid = args[1][0]
+ sidConnected = args[1][0]
StreamsM.Lock()
- Streams[sid] = &Stream{name: *Name, stats: OurStats}
+ Streams[sidConnected] = &Stream{name: *Name, stats: OurStats}
StreamsM.Unlock()
default:
log.Fatalln("unexpected post-cookie cmd:", cmd)
var keyCiphOur []byte
var keyMACOur []byte
{
- xof, err := blake2s.NewXOF(chacha20.KeySize+16, nil)
+ var xof blake2s.XOF
+ xof, err = blake2s.NewXOF(chacha20.KeySize+16, nil)
if err != nil {
log.Fatalln(err)
}
GUI.SelFgColor = gocui.ColorCyan
GUI.Highlight = true
GUI.SetManagerFunc(guiLayout)
- if err := GUI.SetKeybinding("", gocui.KeyTab, gocui.ModNone, tabHandle); err != nil {
+ if err = GUI.SetKeybinding("", gocui.KeyTab, gocui.ModNone, tabHandle); err != nil {
log.Fatal(err)
}
- if err := GUI.SetKeybinding("", gocui.KeyF1, gocui.ModNone,
+ if err = GUI.SetKeybinding("", gocui.KeyF1, gocui.ModNone,
func(gui *gocui.Gui, v *gocui.View) error {
muteToggle()
return nil
); err != nil {
log.Fatal(err)
}
- if err := GUI.SetKeybinding("", gocui.KeyF10, gocui.ModNone,
+ if err = GUI.SetKeybinding("", gocui.KeyF10, gocui.ModNone,
func(gui *gocui.Gui, v *gocui.View) error {
Finish <- struct{}{}
return gocui.ErrQuit
go func() {
<-GUIReadyC
- v, err := GUI.View("logs")
- if err != nil {
- log.Fatal(err)
+ v, errView := GUI.View("logs")
+ if errView != nil {
+ log.Fatal(errView)
}
log.SetOutput(v)
- log.Println("connected", "sid:", sid,
+ log.Println("connected", "sid:", sidConnected,
"addr:", conn.LocalAddr().String())
close(LoggerReady)
for {
}
OurStats.pkts++
OurStats.bytes += vors.IPHdrLen(srvAddrUDP.IP) + 8 + 1
- if _, err = conn.Write([]byte{sid}); err != nil {
+ if _, err = conn.Write([]byte{sidConnected}); err != nil {
log.Println("send:", err)
}
}
pcm := make([]int16, vors.FrameLen)
actr := make([]byte, 3)
nonce := make([]byte, 12)
- nonce[len(nonce)-4] = sid
+ nonce[len(nonce)-4] = sidConnected
var pkt []byte
var n, i int
for {