"os/exec"
"strconv"
"strings"
+ "sync"
"time"
"github.com/dchest/siphash"
var (
Streams = map[byte]*Stream{}
+ StreamsM sync.RWMutex
Finish = make(chan struct{})
OurStats = &Stats{dead: make(chan struct{})}
Name = flag.String("name", "test", "username")
log.Fatalln("cookie acceptance failed:", string(args[1]))
case vors.CmdSID:
sid = args[1][0]
+ StreamsM.Lock()
Streams[sid] = &Stream{name: *Name, stats: OurStats}
+ StreamsM.Unlock()
default:
log.Fatalln("unexpected post-cookie cmd:", cmd)
}
}
}()
go statsDrawer(stream)
+ StreamsM.Lock()
Streams[sid] = stream
+ StreamsM.Unlock()
case vors.CmdDel:
sid := args[1][0]
s := Streams[sid]
continue
}
log.Println("del", s.name, "sid:", sid)
+ StreamsM.Lock()
delete(Streams, sid)
+ StreamsM.Unlock()
close(s.in)
close(s.stats.dead)
case vors.CmdMuted: