func (cmd *Command) upsertHostAction(c *cli.Context) { host, err := engine.NewHost(c.String("name"), engine.HostSettings{}) if err != nil { cmd.printError(err) return } if c.String("cert") != "" || c.String("privateKey") != "" { keyPair, err := readKeyPair(c.String("cert"), c.String("privateKey")) if err != nil { cmd.printError(fmt.Errorf("failed to read key pair: %s", err)) return } host.Settings.KeyPair = keyPair } host.Settings.OCSP = engine.OCSPSettings{ Enabled: c.Bool("ocsp"), SkipSignatureCheck: c.Bool("ocspSkipCheck"), Period: c.Duration("ocspPeriod").String(), Responders: c.StringSlice("ocspResponder"), } if err := cmd.client.UpsertHost(*host); err != nil { cmd.printError(err) return } cmd.printOk("host added") }
func getFrontendSettings(c *cli.Context) (engine.HTTPFrontendSettings, error) { s := engine.HTTPFrontendSettings{} s.Limits.MaxMemBodyBytes = int64(c.Int("maxMemBodyKB") * 1024) s.Limits.MaxBodyBytes = int64(c.Int("maxBodyKB") * 1024) s.FailoverPredicate = c.String("failoverPredicate") s.Hostname = c.String("forwardHost") s.TrustForwardHeader = c.Bool("trustForwardHeader") s.PassHostHeader = c.Bool("passHostHeader") return s, nil }
func getTLSSettings(c *cli.Context) (*engine.TLSSettings, error) { s := &engine.TLSSettings{ InsecureSkipVerify: c.Bool("tlsSkipVerify"), PreferServerCipherSuites: c.Bool("tlsPreferServerCS"), SessionTicketsDisabled: c.Bool("tlsSessionTicketsOff"), MinVersion: c.String("tlsMinV"), MaxVersion: c.String("tlsMaxV"), CipherSuites: c.StringSlice("tlsCS"), } s.SessionCache.Type = c.String("tlsSessionCache") if s.SessionCache.Type == engine.LRUCacheType { s.SessionCache.Settings = &engine.LRUSessionCacheSettings{ Capacity: c.Int("tlsSessionCacheCapacity"), } } if _, err := engine.NewTLSConfig(s); err != nil { return nil, err } return s, nil }
func FromCli(c *cli.Context) (plugin.Middleware, error) { return NewRewrite(c.String("regexp"), c.String("replacement"), c.Bool("rewriteBody"), c.Bool("redirect")) }