1package setting
2
3import "gopkg.in/ini.v1"
4
5const defaultDataProxyRowLimit = int64(1000000)
6
7func readDataProxySettings(iniFile *ini.File, cfg *Cfg) error {
8	dataproxy := iniFile.Section("dataproxy")
9	cfg.SendUserHeader = dataproxy.Key("send_user_header").MustBool(false)
10	cfg.DataProxyLogging = dataproxy.Key("logging").MustBool(false)
11	cfg.DataProxyTimeout = dataproxy.Key("timeout").MustInt(10)
12	cfg.DataProxyDialTimeout = dataproxy.Key("dialTimeout").MustInt(30)
13	cfg.DataProxyKeepAlive = dataproxy.Key("keep_alive_seconds").MustInt(30)
14	cfg.DataProxyTLSHandshakeTimeout = dataproxy.Key("tls_handshake_timeout_seconds").MustInt(10)
15	cfg.DataProxyExpectContinueTimeout = dataproxy.Key("expect_continue_timeout_seconds").MustInt(1)
16	cfg.DataProxyMaxConnsPerHost = dataproxy.Key("max_conns_per_host").MustInt(0)
17	cfg.DataProxyMaxIdleConns = dataproxy.Key("max_idle_connections").MustInt()
18	cfg.DataProxyIdleConnTimeout = dataproxy.Key("idle_conn_timeout_seconds").MustInt(90)
19	cfg.ResponseLimit = dataproxy.Key("response_limit").MustInt64(0)
20	cfg.DataProxyRowLimit = dataproxy.Key("row_limit").MustInt64(defaultDataProxyRowLimit)
21
22	if cfg.DataProxyRowLimit <= 0 {
23		cfg.DataProxyRowLimit = defaultDataProxyRowLimit
24	}
25
26	if val, err := dataproxy.Key("max_idle_connections_per_host").Int(); err == nil {
27		cfg.Logger.Warn("[Deprecated] the configuration setting 'max_idle_connections_per_host' is deprecated, please use 'max_idle_connections' instead")
28		cfg.DataProxyMaxIdleConns = val
29	}
30
31	return nil
32}
33