Lines Matching refs:settings
106 struct settings settings; variable
205 stats_prefix_init(settings.prefix_delimiter); in stats_init()
218 settings.use_cas = true; in settings_init()
219 settings.access = 0700; in settings_init()
220 settings.port = 11211; in settings_init()
221 settings.udpport = 0; in settings_init()
224 settings.inter = NULL; in settings_init()
225 settings.maxbytes = 64 * 1024 * 1024; /* default is 64MB */ in settings_init()
226 settings.maxconns = 1024; /* to limit connections-related memory to about 5MB */ in settings_init()
227 settings.verbose = 0; in settings_init()
228 settings.oldest_live = 0; in settings_init()
229 settings.evict_to_free = 1; /* push old items out of cache when memory runs out */ in settings_init()
230 settings.socketpath = NULL; /* by default, not using a unix socket */ in settings_init()
231 settings.auth_file = NULL; /* by default, not using ASCII authentication tokens */ in settings_init()
232 settings.factor = 1.25; in settings_init()
233 settings.chunk_size = 48; /* space for a modest key and value */ in settings_init()
234 settings.num_threads = 4; /* N workers */ in settings_init()
235 settings.num_threads_per_udp = 0; in settings_init()
236 settings.prefix_delimiter = ':'; in settings_init()
237 settings.detail_enabled = 0; in settings_init()
238 settings.reqs_per_event = 20; in settings_init()
239 settings.backlog = 1024; in settings_init()
240 settings.binding_protocol = negotiating_prot; in settings_init()
241 settings.item_size_max = 1024 * 1024; /* The famous 1MB upper limit. */ in settings_init()
242 settings.slab_page_size = 1024 * 1024; /* chunks are split from 1MB pages. */ in settings_init()
243 settings.slab_chunk_size_max = settings.slab_page_size / 2; in settings_init()
244 settings.sasl = false; in settings_init()
245 settings.maxconns_fast = true; in settings_init()
246 settings.lru_crawler = false; in settings_init()
247 settings.lru_crawler_sleep = 100; in settings_init()
248 settings.lru_crawler_tocrawl = 0; in settings_init()
249 settings.lru_maintainer_thread = false; in settings_init()
250 settings.lru_segmented = true; in settings_init()
251 settings.hot_lru_pct = 20; in settings_init()
252 settings.warm_lru_pct = 40; in settings_init()
253 settings.hot_max_factor = 0.2; in settings_init()
254 settings.warm_max_factor = 2.0; in settings_init()
255 settings.temp_lru = false; in settings_init()
256 settings.temporary_ttl = 61; in settings_init()
257 settings.idle_timeout = 0; /* disabled */ in settings_init()
258 settings.hashpower_init = 0; in settings_init()
259 settings.slab_reassign = true; in settings_init()
260 settings.slab_automove = 1; in settings_init()
261 settings.slab_automove_ratio = 0.8; in settings_init()
262 settings.slab_automove_window = 30; in settings_init()
263 settings.shutdown_command = false; in settings_init()
264 settings.tail_repair_time = TAIL_REPAIR_TIME_DEFAULT; in settings_init()
265 settings.flush_enabled = true; in settings_init()
266 settings.dump_enabled = true; in settings_init()
267 settings.crawls_persleep = 1000; in settings_init()
268 settings.logger_watcher_buf_size = LOGGER_WATCHER_BUF_SIZE; in settings_init()
269 settings.logger_buf_size = LOGGER_BUF_SIZE; in settings_init()
270 settings.drop_privileges = false; in settings_init()
271 settings.watch_enabled = true; in settings_init()
272 settings.read_buf_mem_limit = 0; in settings_init()
274 settings.relaxed_privileges = false; in settings_init()
276 settings.num_napi_ids = 0; in settings_init()
277 settings.memory_file = NULL; in settings_init()
279 settings.sock_cookie_id = 0; in settings_init()
305 if (settings.verbose > 2) in conn_timeout_thread()
312 if (settings.verbose > 2) in conn_timeout_thread()
329 if ((current_time - c->last_cmd_time) > settings.idle_timeout) { in conn_timeout_thread()
338 sleep_time = settings.idle_timeout - (current_time - oldest_last_cmd) + 1; in conn_timeout_thread()
342 if (settings.verbose > 2) in conn_timeout_thread()
363 if (settings.idle_timeout == 0) in start_conn_timeout_thread()
460 max_fds = settings.maxconns + headroom + next_fd; in conn_init()
501 if (settings.idle_timeout > 0 && in conn_close_idle()
502 (current_time - c->last_cmd_time) > settings.idle_timeout) { in conn_close_idle()
504 if (settings.verbose > 1) in conn_close_idle()
510 if (settings.verbose > 1) in conn_close_idle()
683 if (!settings.socketpath) { in conn_new()
702 if (settings.verbose > 1) { in conn_new()
753 assert(settings.ssl_enabled); in conn_new()
768 if (settings.auth_file == NULL) { in conn_new()
857 assert(settings.sasl); in conn_cleanup()
900 if (settings.verbose > 1) in conn_close()
973 if (settings.verbose > 2) { in conn_set_state()
1261 if (settings.verbose > 1) in out_string()
1267 if (settings.verbose > 1) in out_string()
1633 if (settings.verbose > 1) { in do_store_item()
1801 APPEND_STAT("max_connections", "%d", settings.maxconns); in server_stats()
1804 if (settings.maxconns_fast) { in server_stats()
1817 if (settings.proxy_enabled) { in server_stats()
1858 if (settings.idle_timeout) { in server_stats()
1863 APPEND_STAT("limit_maxbytes", "%llu", (unsigned long long)settings.maxbytes); in server_stats()
1867 APPEND_STAT("threads", "%d", settings.num_threads); in server_stats()
1872 if (settings.slab_reassign) { in server_stats()
1882 if (settings.lru_crawler) { in server_stats()
1886 if (settings.lru_maintainer_thread) { in server_stats()
1901 proxy_stats(settings.proxy_ctx, add_stats, c); in server_stats()
1904 if (settings.ssl_enabled) { in server_stats()
1905 if (settings.ssl_session_cache) { in server_stats()
1910 … APPEND_STAT("time_since_server_cert_refresh", "%u", now - settings.ssl_last_cert_refresh_time); in server_stats()
1919 APPEND_STAT("maxbytes", "%llu", (unsigned long long)settings.maxbytes); in process_stat_settings()
1920 APPEND_STAT("maxconns", "%d", settings.maxconns); in process_stat_settings()
1921 APPEND_STAT("tcpport", "%d", settings.port); in process_stat_settings()
1922 APPEND_STAT("udpport", "%d", settings.udpport); in process_stat_settings()
1923 APPEND_STAT("inter", "%s", settings.inter ? settings.inter : "NULL"); in process_stat_settings()
1924 APPEND_STAT("verbosity", "%d", settings.verbose); in process_stat_settings()
1925 APPEND_STAT("oldest", "%lu", (unsigned long)settings.oldest_live); in process_stat_settings()
1926 APPEND_STAT("evictions", "%s", settings.evict_to_free ? "on" : "off"); in process_stat_settings()
1928 settings.socketpath ? settings.socketpath : "NULL"); in process_stat_settings()
1929 APPEND_STAT("umask", "%o", settings.access); in process_stat_settings()
1931 settings.shutdown_command ? "yes" : "no"); in process_stat_settings()
1932 APPEND_STAT("growth_factor", "%.2f", settings.factor); in process_stat_settings()
1933 APPEND_STAT("chunk_size", "%d", settings.chunk_size); in process_stat_settings()
1934 APPEND_STAT("num_threads", "%d", settings.num_threads); in process_stat_settings()
1935 APPEND_STAT("num_threads_per_udp", "%d", settings.num_threads_per_udp); in process_stat_settings()
1936 APPEND_STAT("stat_key_prefix", "%c", settings.prefix_delimiter); in process_stat_settings()
1938 settings.detail_enabled ? "yes" : "no"); in process_stat_settings()
1939 APPEND_STAT("reqs_per_event", "%d", settings.reqs_per_event); in process_stat_settings()
1940 APPEND_STAT("cas_enabled", "%s", settings.use_cas ? "yes" : "no"); in process_stat_settings()
1941 APPEND_STAT("tcp_backlog", "%d", settings.backlog); in process_stat_settings()
1943 prot_text(settings.binding_protocol)); in process_stat_settings()
1944 APPEND_STAT("auth_enabled_sasl", "%s", settings.sasl ? "yes" : "no"); in process_stat_settings()
1945 APPEND_STAT("auth_enabled_ascii", "%s", settings.auth_file ? settings.auth_file : "no"); in process_stat_settings()
1946 APPEND_STAT("item_size_max", "%d", settings.item_size_max); in process_stat_settings()
1947 APPEND_STAT("maxconns_fast", "%s", settings.maxconns_fast ? "yes" : "no"); in process_stat_settings()
1948 APPEND_STAT("hashpower_init", "%d", settings.hashpower_init); in process_stat_settings()
1949 APPEND_STAT("slab_reassign", "%s", settings.slab_reassign ? "yes" : "no"); in process_stat_settings()
1950 APPEND_STAT("slab_automove", "%d", settings.slab_automove); in process_stat_settings()
1951 APPEND_STAT("slab_automove_ratio", "%.2f", settings.slab_automove_ratio); in process_stat_settings()
1952 APPEND_STAT("slab_automove_window", "%u", settings.slab_automove_window); in process_stat_settings()
1953 APPEND_STAT("slab_chunk_max", "%d", settings.slab_chunk_size_max); in process_stat_settings()
1954 APPEND_STAT("lru_crawler", "%s", settings.lru_crawler ? "yes" : "no"); in process_stat_settings()
1955 APPEND_STAT("lru_crawler_sleep", "%d", settings.lru_crawler_sleep); in process_stat_settings()
1956 APPEND_STAT("lru_crawler_tocrawl", "%lu", (unsigned long)settings.lru_crawler_tocrawl); in process_stat_settings()
1957 APPEND_STAT("tail_repair_time", "%d", settings.tail_repair_time); in process_stat_settings()
1958 APPEND_STAT("flush_enabled", "%s", settings.flush_enabled ? "yes" : "no"); in process_stat_settings()
1959 APPEND_STAT("dump_enabled", "%s", settings.dump_enabled ? "yes" : "no"); in process_stat_settings()
1960 APPEND_STAT("hash_algorithm", "%s", settings.hash_algorithm); in process_stat_settings()
1961 APPEND_STAT("lru_maintainer_thread", "%s", settings.lru_maintainer_thread ? "yes" : "no"); in process_stat_settings()
1962 APPEND_STAT("lru_segmented", "%s", settings.lru_segmented ? "yes" : "no"); in process_stat_settings()
1963 APPEND_STAT("hot_lru_pct", "%d", settings.hot_lru_pct); in process_stat_settings()
1964 APPEND_STAT("warm_lru_pct", "%d", settings.warm_lru_pct); in process_stat_settings()
1965 APPEND_STAT("hot_max_factor", "%.2f", settings.hot_max_factor); in process_stat_settings()
1966 APPEND_STAT("warm_max_factor", "%.2f", settings.warm_max_factor); in process_stat_settings()
1967 APPEND_STAT("temp_lru", "%s", settings.temp_lru ? "yes" : "no"); in process_stat_settings()
1968 APPEND_STAT("temporary_ttl", "%u", settings.temporary_ttl); in process_stat_settings()
1969 APPEND_STAT("idle_timeout", "%d", settings.idle_timeout); in process_stat_settings()
1970 APPEND_STAT("watcher_logbuf_size", "%u", settings.logger_watcher_buf_size); in process_stat_settings()
1971 APPEND_STAT("worker_logbuf_size", "%u", settings.logger_buf_size); in process_stat_settings()
1972 APPEND_STAT("read_buf_mem_limit", "%u", settings.read_buf_mem_limit); in process_stat_settings()
1976 APPEND_STAT("drop_privileges", "%s", settings.drop_privileges ? "yes" : "no"); in process_stat_settings()
1979 APPEND_STAT("ext_item_size", "%u", settings.ext_item_size); in process_stat_settings()
1980 APPEND_STAT("ext_item_age", "%u", settings.ext_item_age); in process_stat_settings()
1981 APPEND_STAT("ext_low_ttl", "%u", settings.ext_low_ttl); in process_stat_settings()
1982 APPEND_STAT("ext_recache_rate", "%u", settings.ext_recache_rate); in process_stat_settings()
1983 APPEND_STAT("ext_wbuf_size", "%u", settings.ext_wbuf_size); in process_stat_settings()
1984 APPEND_STAT("ext_compact_under", "%u", settings.ext_compact_under); in process_stat_settings()
1985 APPEND_STAT("ext_drop_under", "%u", settings.ext_drop_under); in process_stat_settings()
1986 APPEND_STAT("ext_max_sleep", "%u", settings.ext_max_sleep); in process_stat_settings()
1987 APPEND_STAT("ext_max_frag", "%.2f", settings.ext_max_frag); in process_stat_settings()
1988 APPEND_STAT("slab_automove_freeratio", "%.3f", settings.slab_automove_freeratio); in process_stat_settings()
1989 APPEND_STAT("ext_drop_unread", "%s", settings.ext_drop_unread ? "yes" : "no"); in process_stat_settings()
1992 APPEND_STAT("ssl_enabled", "%s", settings.ssl_enabled ? "yes" : "no"); in process_stat_settings()
1993 APPEND_STAT("ssl_chain_cert", "%s", settings.ssl_chain_cert); in process_stat_settings()
1994 APPEND_STAT("ssl_key", "%s", settings.ssl_key); in process_stat_settings()
1995 APPEND_STAT("ssl_verify_mode", "%d", settings.ssl_verify_mode); in process_stat_settings()
1996 APPEND_STAT("ssl_keyformat", "%d", settings.ssl_keyformat); in process_stat_settings()
1997 APPEND_STAT("ssl_ciphers", "%s", settings.ssl_ciphers ? settings.ssl_ciphers : "NULL"); in process_stat_settings()
1998 APPEND_STAT("ssl_ca_cert", "%s", settings.ssl_ca_cert ? settings.ssl_ca_cert : "NULL"); in process_stat_settings()
1999 APPEND_STAT("ssl_wbuf_size", "%u", settings.ssl_wbuf_size); in process_stat_settings()
2000 APPEND_STAT("ssl_session_cache", "%s", settings.ssl_session_cache ? "yes" : "no"); in process_stat_settings()
2001 APPEND_STAT("ssl_kernel_tls", "%s", settings.ssl_kernel_tls ? "yes" : "no"); in process_stat_settings()
2002 APPEND_STAT("ssl_min_version", "%s", ssl_proto_text(settings.ssl_min_version)); in process_stat_settings()
2005 APPEND_STAT("proxy_enabled", "%s", settings.proxy_enabled ? "yes" : "no"); in process_stat_settings()
2006 APPEND_STAT("proxy_uring_enabled", "%s", settings.proxy_uring ? "yes" : "no"); in process_stat_settings()
2008 APPEND_STAT("num_napi_ids", "%s", settings.num_napi_ids); in process_stat_settings()
2009 APPEND_STAT("memory_file", "%s", settings.memory_file); in process_stat_settings()
2335 ITEM_set_cas(it, (settings.use_cas) ? get_cas_id() : 0);
2351 item_replace(it, new_it, hv, (settings.use_cas) ? get_cas_id() : 0);
2354 ITEM_set_cas(it, (settings.use_cas) ? ITEM_get_cas(new_it) : 0);
2359 if (settings.verbose) {
2393 if (settings.verbose > 1) {
2488 if (settings.verbose > 0) {
2552 if (listen(next->sfd, settings.backlog) != 0) {
2755 if (settings.verbose > 0)
2764 if (settings.verbose > 0)
2894 if (settings.verbose > 0)
2903 if (settings.verbose > 0)
2999 int nreqs = settings.reqs_per_event;
3034 if (settings.verbose > 0)
3053 if (settings.maxconns_fast) {
3054 reject = sfd >= settings.maxconns - 1;
3087 if (settings.verbose > 0)
3163 if (settings.verbose > 0)
3181 if (settings.verbose) {
3229 if (settings.verbose > 0)
3251 if (settings.verbose > 0) {
3294 if (settings.verbose > 0)
3303 if (settings.verbose > 0)
3340 if (settings.verbose > 0)
3406 if (settings.verbose > 0)
3451 if (settings.verbose > 0)
3470 if (settings.verbose > 1)
3529 if (settings.num_napi_ids) {
3550 if (settings.sock_cookie_id != 0) {
3551 …error = setsockopt(sfd, SOL_SOCKET, SOCK_COOKIE_ID, (void *)&settings.sock_cookie_id, sizeof(uint3…
3585 if (!IS_UDP(transport) && listen(sfd, settings.backlog) == -1) {
3616 for (c = 0; c < settings.num_threads_per_udp; c++) {
3669 if (settings.ssl_enabled) {
3673 if (settings.inter == NULL) {
3674 …return server_socket(settings.inter, port, transport, portnumber_file, ssl_enabled, 0, settings.bi…
3679 char *list = strdup(settings.inter);
3692 if (settings.ssl_enabled) {
3697 if (!settings.ssl_enabled) {
3705 if (!settings.ssl_enabled) {
3713 if (!settings.ssl_enabled) {
3724 enum protocol bproto = settings.binding_protocol;
3748 if (settings.proxy_enabled) {
3909 if (listen(sfd, settings.backlog) == -1) {
3916 local_transport, main_base, NULL, 0, settings.binding_protocol))) {
3966 if (settings.sig_hup) {
3967 settings.sig_hup = false;
3969 authfile_load(settings.auth_file);
3971 if (settings.proxy_ctx) {
3972 proxy_start_reload(settings.proxy_ctx);
4025 settings.port, settings.udpport);
4029 settings.access);
4053 (unsigned long) settings.maxbytes / (1 << 20),
4054 settings.maxconns, settings.factor, settings.chunk_size);
4055 verify_default("udp-port",settings.udpport == 0);
4062 settings.prefix_delimiter);
4063 …printf("-t, --threads=<num> number of threads to use (default: %d)\n", settings.num_threads);
4066 " starvation (default: %d)\n", settings.reqs_per_event);
4068 …printf("-b, --listen-backlog=<num> set the backlog queue limit (default: %d)\n", settings.backlog);
4070 prot_text(settings.binding_protocol));
4073 …settings.item_size_max/ (1 << 20), ITEM_SIZE_MAX_LOWER_LIMIT / (1 << 10), ITEM_SIZE_MAX_UPPER_LIM…
4104 flag_enabled_disabled(settings.maxconns_fast), settings.hashpower_init,
4105 settings.lru_crawler_sleep, settings.lru_crawler_tocrawl);
4109 settings.read_buf_mem_limit);
4110 verify_default("read_buf_mem_limit", settings.read_buf_mem_limit == 0);
4121 … settings.hot_lru_pct, settings.warm_lru_pct, settings.hot_max_factor, settings.warm_max_factor,
4122 settings.temporary_ttl, settings.idle_timeout);
4133 settings.slab_chunk_size_max / (1 << 10), settings.logger_watcher_buf_size / (1 << 10),
4134 settings.logger_buf_size / (1 << 10));
4135 verify_default("tail_repair_time", settings.tail_repair_time == TAIL_REPAIR_TIME_DEFAULT);
4136 verify_default("lru_crawler_tocrawl", settings.lru_crawler_tocrawl == 0);
4137 verify_default("idle_timeout", settings.idle_timeout == 0);
4143 verify_default("drop_privileges", !settings.drop_privileges);
4146 flag_enabled_disabled(settings.relaxed_privileges));
4172 …settings.ext_page_size / (1 << 20), settings.ext_wbuf_size / (1 << 20), settings.ext_io_threadcoun…
4173 settings.ext_item_size, settings.ext_low_ttl,
4174 flag_enabled_disabled(settings.ext_drop_unread), settings.ext_recache_rate,
4175 settings.ext_max_frag, settings.ext_max_sleep, settings.slab_automove_freeratio);
4176 verify_default("ext_item_age", settings.ext_item_age == UINT_MAX);
4279 settings.sig_hup = true;
4409 if (!safe_strtoul(p, &size) || size < settings.chunk_size
4410 || size > settings.slab_chunk_size_max) {
4463 restart_set_kv(ctx, "maxbytes", "%llu", (unsigned long long) settings.maxbytes);
4464 restart_set_kv(ctx, "chunk_size", "%d", settings.chunk_size);
4465 restart_set_kv(ctx, "item_size_max", "%d", settings.item_size_max);
4466 restart_set_kv(ctx, "slab_chunk_size_max", "%d", settings.slab_chunk_size_max);
4467 restart_set_kv(ctx, "slab_page_size", "%d", settings.slab_page_size);
4468 restart_set_kv(ctx, "use_cas", "%s", settings.use_cas ? "true" : "false");
4469 restart_set_kv(ctx, "slab_reassign", "%s", settings.slab_reassign ? "true" : "false");
4496 restart_set_kv(ctx, "oldest_live", "%u", settings.oldest_live);
4599 if (!safe_strtoll(val, &bigval_int) || settings.maxbytes != bigval_int) {
4604 if (!safe_strtol(val, &val_int) || settings.chunk_size != val_int) {
4609 if (!safe_strtol(val, &val_int) || settings.item_size_max != val_int) {
4614 if (!safe_strtol(val, &val_int) || settings.slab_chunk_size_max != val_int) {
4619 if (!safe_strtol(val, &val_int) || settings.slab_page_size != val_int) {
4629 if (!is_bool || settings.use_cas != val_bool) {
4634 if (!is_bool || settings.slab_reassign != val_bool) {
4650 settings.oldest_live = val_uint;
4694 settings.hashpower_init = val_uint;
4893 void *storage_cf = storage_init_config(&settings);
4997 settings.shutdown_command = true;
5002 settings.ssl_enabled = true;
5011 settings.access= strtol(optarg,NULL,8);
5018 settings.udpport = atoi(optarg);
5022 settings.port = atoi(optarg);
5027 settings.socketpath = optarg;
5034 settings.maxbytes = ((size_t)atoi(optarg)) * 1024 * 1024;
5037 settings.evict_to_free = 0;
5040 settings.maxconns = atoi(optarg);
5041 if (settings.maxconns <= 0) {
5059 settings.verbose++;
5062 if (settings.inter != NULL) {
5063 if (strstr(settings.inter, optarg) != NULL) {
5066 size_t len = strlen(settings.inter) + strlen(optarg) + 2;
5072 snprintf(p, len, "%s,%s", settings.inter, optarg);
5073 free(settings.inter);
5074 settings.inter = p;
5076 settings.inter= strdup(optarg);
5086 settings.reqs_per_event = atoi(optarg);
5087 if (settings.reqs_per_event <= 0) {
5099 settings.memory_file = optarg;
5102 settings.factor = atof(optarg);
5103 if (settings.factor <= 1.0) {
5110 settings.chunk_size = atoi(optarg);
5111 if (settings.chunk_size <= 0) {
5117 settings.num_threads = atoi(optarg);
5118 if (settings.num_threads <= 0) {
5126 if (settings.num_threads > 64) {
5138 settings.prefix_delimiter = optarg[0];
5139 settings.detail_enabled = 1;
5151 settings.use_cas = false;
5154 settings.backlog = atoi(optarg);
5159 settings.binding_protocol = negotiating_prot;
5161 settings.binding_protocol = binary_prot;
5163 settings.binding_protocol = ascii_prot;
5181 settings.item_size_max = size_max;
5183 settings.item_size_max = atoi(buf);
5192 settings.sasl = true;
5195 settings.flush_enabled = false;
5198 settings.dump_enabled = false;
5201 settings.watch_enabled = false;
5205 settings.auth_file = strdup(optarg);
5208 settings.num_napi_ids = atoi(optarg);
5209 if (settings.num_napi_ids <= 0) {
5226 settings.maxconns_fast = true;
5233 settings.hashpower_init = atoi(subopts_value);
5234 if (settings.hashpower_init < 12) {
5236 settings.hashpower_init);
5238 } else if (settings.hashpower_init > 32) {
5241 settings.hashpower_init);
5249 settings.slab_reassign = true;
5253 settings.slab_automove = 1;
5256 settings.slab_automove = atoi(subopts_value);
5257 if (settings.slab_automove < 0 || settings.slab_automove > 2) {
5267 settings.slab_automove_ratio = atof(subopts_value);
5268 if (settings.slab_automove_ratio <= 0 || settings.slab_automove_ratio > 1) {
5278 settings.slab_automove_window = atoi(subopts_value);
5279 if (settings.slab_automove_window < 3) {
5289 settings.tail_repair_time = atoi(subopts_value);
5290 if (settings.tail_repair_time < 10) {
5319 settings.lru_crawler_sleep = atoi(subopts_value);
5320 if (settings.lru_crawler_sleep > 1000000 || settings.lru_crawler_sleep < 0) {
5334 settings.lru_crawler_tocrawl = tocrawl;
5338 settings.lru_segmented = true;
5345 settings.hot_lru_pct = atoi(subopts_value);
5346 if (settings.hot_lru_pct < 1 || settings.hot_lru_pct >= 80) {
5356 settings.warm_lru_pct = atoi(subopts_value);
5357 if (settings.warm_lru_pct < 1 || settings.warm_lru_pct >= 80) {
5367 settings.hot_max_factor = atof(subopts_value);
5368 if (settings.hot_max_factor <= 0) {
5378 settings.warm_max_factor = atof(subopts_value);
5379 if (settings.warm_max_factor <= 0) {
5389 settings.temp_lru = true;
5390 settings.temporary_ttl = atoi(subopts_value);
5397 settings.idle_timeout = atoi(subopts_value);
5404 if (!safe_strtoul(subopts_value, &settings.logger_watcher_buf_size)) {
5408 settings.logger_watcher_buf_size *= 1024; /* kilobytes */
5415 if (!safe_strtoul(subopts_value, &settings.logger_buf_size)) {
5419 settings.logger_buf_size *= 1024; /* kilobytes */
5428 if (!safe_strtol(subopts_value, &settings.slab_chunk_size_max)) {
5432 if (settings.slab_chunk_size_max <= 0) {
5436 if (settings.slab_chunk_size_max > (1 << 10)) {
5440 settings.slab_chunk_size_max *= (1 << 10);
5451 settings.slab_chunk_size_max = settings.slab_page_size;
5454 settings.slab_reassign = false;
5457 settings.slab_automove = 0;
5460 settings.maxconns_fast = false;
5463 settings.lru_crawler = false;
5468 settings.lru_segmented = false;
5476 settings.ssl_chain_cert = strdup(subopts_value);
5483 settings.ssl_key = strdup(subopts_value);
5507 if (!safe_strtol(subopts_value, &settings.ssl_keyformat)) {
5517 settings.ssl_ciphers = strdup(subopts_value);
5524 settings.ssl_ca_cert = strdup(subopts_value);
5531 if (!safe_strtoul(subopts_value, &settings.ssl_wbuf_size)) {
5535 settings.ssl_wbuf_size *= 1024; /* kilobytes */
5538 settings.ssl_session_cache = true;
5541 settings.ssl_kernel_tls = true;
5565 settings.slab_chunk_size_max = settings.slab_page_size;
5567 settings.slab_reassign = false;
5568 settings.slab_automove = 0;
5569 settings.maxconns_fast = false;
5570 settings.lru_segmented = false;
5576 settings.drop_privileges = false;
5579 settings.drop_privileges = true;
5590 if (!safe_strtoul(subopts_value, &settings.read_buf_mem_limit)) {
5594 settings.read_buf_mem_limit *= 1024 * 1024; /* megabytes */
5606 settings.proxy_startfile = strdup(subopts_value);
5607 settings.proxy_enabled = true;
5608 settings.binding_protocol = proxy_prot;
5612 settings.proxy_startarg = strdup(subopts_value);
5615 settings.proxy_uring = true;
5618 settings.proxy_memprofile = true;
5623 settings.relaxed_privileges = true;
5628 (void)safe_strtoul(subopts_value, &settings.sock_cookie_id);
5655 if (settings.num_napi_ids > settings.num_threads) {
5657 settings.num_napi_ids, settings.num_threads);
5661 if (settings.item_size_max < ITEM_SIZE_MAX_LOWER_LIMIT) {
5665 if (settings.item_size_max > (settings.maxbytes / 2)) {
5669 if (settings.item_size_max > (ITEM_SIZE_MAX_UPPER_LIMIT)) {
5673 if (settings.item_size_max > 1024 * 1024) {
5676 settings.slab_chunk_size_max = settings.slab_page_size / 2;
5680 if (settings.slab_chunk_size_max > settings.item_size_max) {
5682 settings.slab_chunk_size_max, settings.item_size_max);
5686 if (settings.item_size_max % settings.slab_chunk_size_max != 0) {
5688 settings.item_size_max, settings.slab_chunk_size_max);
5692 if (settings.slab_page_size % settings.slab_chunk_size_max != 0) {
5694 settings.slab_chunk_size_max, settings.slab_page_size);
5730 if (settings.hot_lru_pct + settings.warm_lru_pct > 80) {
5735 if (settings.temp_lru && !start_lru_maintainer) {
5749 if (settings.inter != NULL && strchr(settings.inter, ',')) {
5750 settings.num_threads_per_udp = 1;
5752 settings.num_threads_per_udp = settings.num_threads;
5755 if (settings.sasl) {
5757 settings.binding_protocol = binary_prot;
5759 if (settings.binding_protocol != binary_prot) {
5765 if (settings.udpport) {
5771 if (settings.auth_file) {
5773 settings.binding_protocol = ascii_prot;
5775 if (settings.binding_protocol != ascii_prot) {
5782 if (udp_specified && settings.udpport != 0 && !tcp_specified) {
5783 settings.port = settings.udpport;
5786 if (settings.port > 65535) {
5787 fprintf(stderr, "ERROR: Invalid port number %d.\n", settings.port);
5795 if (settings.ssl_enabled) {
5796 if (!settings.port) {
5839 rlim.rlim_cur = settings.maxconns;
5840 rlim.rlim_max = settings.maxconns;
5880 if (settings.sasl) {
5887 if (daemonize(maxcore, settings.verbose) == -1) {
5920 if (settings.auth_file) {
5921 if (settings.udpport) {
5926 switch (authfile_load(settings.auth_file)) {
5928 vperror("Could not stat authfile [%s], error %s", settings.auth_file
5933 vperror("Could not open authfile [%s] for reading, error %s", settings.auth_file
5938 fprintf(stderr, "Out of memory reading password file: %s", settings.auth_file);
5942 …intf(stderr, "Authfile [%s] has a malformed entry. Should be 'user:password'", settings.auth_file);
5958 if (settings.memory_file != NULL) {
5963 reuse_mem = restart_mmap_open(settings.maxbytes,
5964 settings.memory_file,
5978 assoc_init(settings.hashpower_init);
5985 slabs_init(settings.maxbytes, settings.factor, preallocate,
5999 if (settings.drop_privileges) {
6006 if (settings.memory_file != NULL && reuse_mem) {
6028 if (settings.proxy_enabled) {
6029 settings.proxy_ctx = proxy_init(settings.proxy_uring, settings.proxy_memprofile);
6034 memcached_thread_init(settings.num_threads, storage);
6037 memcached_thread_init(settings.num_threads, NULL);
6042 if (settings.proxy_enabled) {
6043 if (proxy_first_confload(settings.proxy_ctx) != 0) {
6075 if (settings.slab_reassign &&
6080 if (settings.idle_timeout && start_conn_timeout_thread() == -1) {
6107 if (settings.socketpath != NULL) {
6109 if (server_socket_unix(settings.socketpath,settings.access)) {
6110 vperror("failed to listen on UNIX socket: %s", settings.socketpath);
6116 if (settings.socketpath == NULL) {
6141 if (settings.port && server_sockets(settings.port, tcp_transport,
6143 if (settings.inter == NULL) {
6144 vperror("failed to listen on TCP port %d", settings.port);
6146 vperror("failed to listen on one of interface(s) %s", settings.inter);
6160 if (settings.udpport && server_sockets(settings.udpport, udp_transport,
6162 if (settings.inter == NULL) {
6163 vperror("failed to listen on UDP port %d", settings.udpport);
6165 vperror("failed to listen on one of interface(s) %s", settings.inter);
6182 if (stats_state.curr_conns + stats_state.reserved_fds >= settings.maxconns - 1) {
6192 if (settings.drop_privileges) {
6215 if (settings.verbose) {
6227 if (settings.memory_file != NULL) {
6236 if (settings.inter)
6237 free(settings.inter);