[master] 921f14b Split params from heritage, they have been different beasts for a long time.
Poul-Henning Kamp
phk at varnish-cache.org
Thu Nov 10 16:55:59 CET 2011
commit 921f14b2df75f9f285f24a1975d06a1876d82372
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Thu Nov 10 15:55:22 2011 +0000
Split params from heritage, they have been different beasts for a long time.
diff --git a/bin/varnishd/params.h b/bin/varnishd/params.h
new file mode 100644
index 0000000..e6e6558
--- /dev/null
+++ b/bin/varnishd/params.h
@@ -0,0 +1,228 @@
+/*-
+ * Copyright (c) 2006 Verdens Gang AS
+ * Copyright (c) 2006-2011 Varnish Software AS
+ * All rights reserved.
+ *
+ * Author: Poul-Henning Kamp <phk at phk.freebsd.dk>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * This file contains the heritage passed when mgt forks cache
+ */
+
+#include "vre.h"
+
+struct listen_sock {
+ unsigned magic;
+#define LISTEN_SOCK_MAGIC 0x999e4b57
+ VTAILQ_ENTRY(listen_sock) list;
+ int sock;
+ char *name;
+ struct vss_addr *addr;
+};
+
+VTAILQ_HEAD(listen_sock_head, listen_sock);
+
+struct heritage {
+
+ /* Two pipe(2)'s for CLI connection between cache and mgt. */
+ int cli_in;
+ int cli_out;
+
+ /* File descriptor for stdout/stderr */
+ int std_fd;
+
+ /* Sockets from which to accept connections */
+ struct listen_sock_head socks;
+ unsigned nsocks;
+
+ /* Hash method */
+ const struct hash_slinger *hash;
+
+ char *name;
+ char identity[1024];
+};
+
+struct params {
+
+ /* Unprivileged user / group */
+ char *user;
+ uid_t uid;
+ char *group;
+ gid_t gid;
+
+ /* TTL used for lack of anything better */
+ double default_ttl;
+
+ /* Default grace period */
+ double default_grace;
+
+ /* Default keep period */
+ double default_keep;
+
+ /* Maximum concurrent sessions */
+ unsigned max_sess;
+
+ /* Worker threads and pool */
+ unsigned wthread_min;
+ unsigned wthread_max;
+ unsigned wthread_timeout;
+ unsigned wthread_pools;
+ unsigned wthread_add_threshold;
+ unsigned wthread_add_delay;
+ unsigned wthread_fail_delay;
+ unsigned wthread_purge_delay;
+ unsigned wthread_stats_rate;
+ unsigned wthread_stacksize;
+ unsigned wthread_workspace;
+
+ unsigned queue_max;
+
+ /* Memory allocation hints */
+ unsigned sess_workspace;
+ unsigned shm_workspace;
+ unsigned http_req_size;
+ unsigned http_req_hdr_len;
+ unsigned http_resp_size;
+ unsigned http_resp_hdr_len;
+ unsigned http_max_hdr;
+
+ unsigned shm_reclen;
+
+ /* Acceptor hints */
+ unsigned sess_timeout;
+ unsigned pipe_timeout;
+ unsigned send_timeout;
+ unsigned idle_send_timeout;
+
+ /* Management hints */
+ unsigned auto_restart;
+
+ /* Fetcher hints */
+ unsigned fetch_chunksize;
+ unsigned fetch_maxchunksize;
+ unsigned nuke_limit;
+
+#ifdef SENDFILE_WORKS
+ /* Sendfile object minimum size */
+ unsigned sendfile_threshold;
+#endif
+
+ /* VCL traces */
+ unsigned vcl_trace;
+
+ /* Listen address */
+ char *listen_address;
+
+ /* Listen depth */
+ unsigned listen_depth;
+
+ /* CLI related */
+ unsigned cli_timeout;
+ unsigned ping_interval;
+
+ /* LRU list ordering interval */
+ unsigned lru_timeout;
+
+ /* Maximum restarts allowed */
+ unsigned max_restarts;
+
+ /* Maximum esi:include depth allowed */
+ unsigned max_esi_depth;
+
+ /* ESI parser hints */
+ unsigned esi_syntax;
+
+ /* Rush exponent */
+ unsigned rush_exponent;
+
+ /* Default connection_timeout */
+ double connect_timeout;
+
+ /* Read timeouts for backend */
+ double first_byte_timeout;
+ double between_bytes_timeout;
+
+ /* How long to linger on sessions */
+ unsigned session_linger;
+
+ /* CLI buffer size */
+ unsigned cli_buffer;
+
+ /* Control diagnostic code */
+ unsigned diag_bitmap;
+
+ /* Log hash string to shm */
+ unsigned log_hash;
+
+ /* Log local socket address to shm */
+ unsigned log_local_addr;
+
+ /* Prefer IPv6 connections to backend*/
+ unsigned prefer_ipv6;
+
+ /* Acceptable clockskew with backends */
+ unsigned clock_skew;
+
+ /* Expiry pacer parameters */
+ double expiry_sleep;
+
+ /* Acceptor pacer parameters */
+ double acceptor_sleep_max;
+ double acceptor_sleep_incr;
+ double acceptor_sleep_decay;
+
+ /* Get rid of duplicate bans */
+ unsigned ban_dups;
+
+ /* How long time does the ban lurker sleep */
+ double ban_lurker_sleep;
+
+ /* Max size of the saintmode list. 0 == no saint mode. */
+ unsigned saintmode_threshold;
+
+ unsigned syslog_cli_traffic;
+
+ unsigned http_range_support;
+
+ unsigned http_gzip_support;
+ unsigned gzip_stack_buffer;
+ unsigned gzip_tmp_space;
+ unsigned gzip_level;
+ unsigned gzip_window;
+ unsigned gzip_memlevel;
+
+ double critbit_cooloff;
+
+ double shortlived;
+
+ struct vre_limits vre_limits;
+};
+
+/*
+ * We declare this a volatile pointer, so that reads of parameters
+ * become atomic, leaving the CLI thread lattitude to change the values
+ */
+extern volatile struct params * cache_param;
+extern struct heritage heritage;
+
+void child_main(void);
More information about the varnish-commit
mailing list