Changeset 62 in code
- Timestamp:
- Feb 18, 2020, 1:10:23 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cmd/jounce/main.go
r61 r62 2 2 3 3 import ( 4 "crypto/tls" 4 5 "flag" 5 6 "log" … … 7 8 8 9 "git.sr.ht/~emersion/jounce" 10 "git.sr.ht/~emersion/jounce/config" 9 11 ) 10 12 11 13 func main() { 12 var addr, hostnamestring13 flag.StringVar(&addr, " addr", ":6667", "listening address")14 flag.StringVar(& hostname, "hostname", "localhost", "server hostname")14 var addr, configPath string 15 flag.StringVar(&addr, "listen", "", "listening address") 16 flag.StringVar(&configPath, "config", "", "path to configuration file") 15 17 flag.Parse() 16 18 17 ln, err := net.Listen("tcp", addr) 18 if err != nil { 19 log.Fatalf("failed to start listener: %v", err) 19 var cfg *config.Server 20 if configPath != "" { 21 var err error 22 cfg, err = config.Load(configPath) 23 if err != nil { 24 log.Fatalf("failed to load config file: %v", err) 25 } 26 } else { 27 cfg = config.Defaults() 28 } 29 30 if addr != "" { 31 cfg.Addr = addr 32 } 33 34 var ln net.Listener 35 if cfg.TLS != nil { 36 cert, err := tls.LoadX509KeyPair(cfg.TLS.CertPath, cfg.TLS.KeyPath) 37 if err != nil { 38 log.Fatalf("failed to load TLS certificate and key: %v", err) 39 } 40 41 tlsCfg := &tls.Config{Certificates: []tls.Certificate{cert}} 42 ln, err = tls.Listen("tcp", cfg.Addr, tlsCfg) 43 if err != nil { 44 log.Fatalf("failed to start TLS listener: %v", err) 45 } 46 } else { 47 var err error 48 ln, err = net.Listen("tcp", addr) 49 if err != nil { 50 log.Fatalf("failed to start listener: %v", err) 51 } 20 52 } 21 53 22 54 srv := jounce.NewServer() 23 55 // TODO: load from config/DB 24 srv.Hostname = hostname56 srv.Hostname = cfg.Hostname 25 57 srv.Upstreams = []jounce.Upstream{{ 26 58 Addr: "chat.freenode.net:6697", … … 31 63 }} 32 64 33 log.Printf("server listening on % v", addr)65 log.Printf("server listening on %q", cfg.Addr) 34 66 go srv.Run() 35 67 log.Fatal(srv.Serve(ln))
Note:
See TracChangeset
for help on using the changeset viewer.