in lib/server.go [68:103]
func NewServer(config *Config, serverMode bool, personalizedLogger PersonalizedLogger) (*Server, error) {
conn, err := net.ListenUDP("udp", config.Addr)
if err != nil {
return nil, err
}
// setup logger
var loggerHelper = &loggerHelperImpl{
version: config.Version,
personalizedLogger: personalizedLogger,
}
server := &Server{
server: serverMode,
conn: conn,
logger: loggerHelper,
config: config,
}
// pool to reuse packet buffers
server.bufPool = sync.Pool{
New: func() interface{} {
return make([]byte, server.GetConfig().PacketBufSize)
},
}
glog.Infof("Setting up throttle: Cache Size: %d - Cache Rate: %d - Request Rate: %d",
config.CacheSize, config.CacheRate, config.Rate)
throttle, err := NewThrottle(config.CacheSize, config.CacheRate, config.Rate)
if err != nil {
return nil, err
}
server.throttle = throttle
return server, nil
}