func main() { flag.Usage = usage flag.Parse() log.Println("start policy service …") if *version { fmt.Fprintln(os.Stdout, Version) return } if *help { flag.Usage() os.Exit(1) } runtime.GOMAXPROCS(runtime.NumCPU()) if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() } err := policy.ListenAndServe(*laddr) if err != nil { log.Errorln(err) } monitoring.MeasuringPointsPrintAll() }
func serveConn(conn net.Conn) { err := serve(conn, conn) if err != io.EOF { log.Errorln(err) } conn.Close() }
func RecoveryHandler(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { defer func() { if rec := recover(); rec != nil { log.Errorln("Recovered:", rec) w.WriteHeader(http.StatusInternalServerError) } }() h.ServeHTTP(w, r) }) }
func main() { flag.Usage = usage flag.Parse() log.Println("start blobserver service …") if *version { fmt.Fprintln(os.Stdout, Version) return } if *help { flag.Usage() os.Exit(1) } conf, err := config.ReadFile(*configFilename) if err != nil { log.Fatal(err) } if conf.Listen == "" && *laddr == "" { log.Fatal("Listen address required") } else if conf.Listen == "" { conf.Listen = *laddr } runtime.GOMAXPROCS(runtime.NumCPU()) if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() } storage, err := blobserver.CreateStorage(conf) if err != nil { log.Fatalf("error instantiating storage for type %s: %v", conf.StorageType(), err) } log.Printf("Using `%s` storage", conf.StorageType()) err = server.ListenAndServe(*laddr, storage) if err != nil { log.Errorln(err) } monitoring.MeasuringPointsPrintAll() }
func getKeys(region *Region) ([]*Key, error) { values, err := region.Backend.Get() if err != nil { log.Errorln(err) return nil, err } keys := make([]*Key, 0, len(values)) for _, v := range values { keys = append(keys, &Key{ID: v}) } return keys, nil }
func main() { flag.Usage = usage flag.Parse() if *version { fmt.Fprintln(os.Stdout, Version) return } if *help { flag.Usage() os.Exit(1) } if *laddr == "" { fmt.Fprintln(os.Stderr, "listen address required") os.Exit(1) } runtime.GOMAXPROCS(runtime.NumCPU()) if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() } var imgBackend backend.ImageBackend if *fsBaseDir != "" { imgBackend = backend.Dir(*fsBaseDir) } else if *awsAccessKeyId != "" && *awsSecretAccessKey != "" && *awsRegion != "" && *awsBucket != "" { imgBackend = backend.NewS3(*awsAccessKeyId, *awsSecretAccessKey, *awsRegion, *awsBucket) } else { log.Errorln("Expected either aws-* or fs-* arguments") os.Exit(1) } err := server.ListenAndServe(*laddr, imgBackend) if err != nil { log.Println(err) } }
func listenAndServe(laddr string) error { l, err := net.Listen("tcp", laddr) if err != nil { return err } sigTrapCloser(l) for { conn, err := l.Accept() if err != nil { log.Errorln(err) } go serveConn(conn) } }