source: bin/varnishd/mgt/mgt.h @ d0be5a

Revision d0be5a, 3.8 KB checked in by Rogier 'DocWilco' Mulhuijzen <github@…>, 2 years ago (diff)

Add printflike and fix everything that brings to light

  • Property mode set to 100644
Line 
1/*-
2 * Copyright (c) 2006 Verdens Gang AS
3 * Copyright (c) 2006-2011 Varnish Software AS
4 * All rights reserved.
5 *
6 * Author: Poul-Henning Kamp <phk@phk.freebsd.dk>
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in the
15 *    documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 */
30
31#include <stdint.h>
32
33#include "common/common.h"
34
35struct cli;
36
37extern struct vev_base  *mgt_evb;
38extern unsigned         d_flag;
39extern int              exit_status;
40
41/* mgt_child.c */
42extern pid_t child_pid;
43void MGT_Run(void);
44void mgt_stop_child(void);
45void mgt_got_fd(int fd);
46void MGT_Child_Cli_Fail(void);
47
48/* mgt_cli.c */
49
50typedef void mgt_cli_close_f(void *priv);
51void mgt_cli_setup(int fdi, int fdo, int verbose, const char *ident,
52    mgt_cli_close_f *close_func, void *priv);
53int mgt_cli_askchild(unsigned *status, char **resp, const char *fmt, ...)
54    __printflike(3, 4);
55void mgt_cli_start_child(int fdi, int fdo);
56void mgt_cli_stop_child(void);
57void mgt_cli_telnet(const char *T_arg);
58void mgt_cli_master(const char *M_arg);
59void mgt_cli_secret(const char *S_arg);
60void mgt_cli_close_all(void);
61
62/* mgt_main.c */
63struct choice {
64        const char      *name;
65        const void      *ptr;
66};
67const void *pick(const struct choice *cp, const char *which, const char *kind);
68
69/* mgt_param.c */
70void MCF_ParamInit(struct cli *);
71void MCF_ParamSet(struct cli *, const char *param, const char *val);
72void MCF_DumpRst(void);
73extern struct params mgt_param;
74
75/* mgt_sandbox.c */
76void mgt_sandbox(void);
77
78/* mgt_sandbox_solaris.c */
79#ifdef HAVE_SETPPRIV
80void mgt_sandbox_solaris_init(void);
81void mgt_sandbox_solaris_fini(void);
82void mgt_sandbox_solaris_privsep(void);
83#endif
84
85/* mgt_shmem.c */
86void mgt_SHM_Init(void);
87void mgt_SHM_static_alloc(const void *, ssize_t size,
88    const char *class, const char *type, const char *ident);
89void mgt_SHM_Create(void);
90void mgt_SHM_Destroy(int keep);
91void mgt_SHM_Size_Adjust(void);
92
93
94/* stevedore_mgt.c */
95void STV_Config(const char *spec);
96void STV_Config_Transient(void);
97
98/* mgt_vcc.c */
99void mgt_vcc_init(void);
100int mgt_vcc_default(const char *bflag, const char *f_arg, char *vcl, int Cflag);
101int mgt_push_vcls_and_start(unsigned *status, char **p);
102int mgt_has_vcl(void);
103extern char *mgt_cc_cmd;
104extern const char *mgt_vcl_dir;
105extern const char *mgt_vmod_dir;
106extern unsigned mgt_vcc_err_unref;
107
108#define REPORT0(pri, fmt)                               \
109        do {                                            \
110                fprintf(stderr, fmt "\n");              \
111                syslog(pri, fmt);                       \
112        } while (0)
113
114#define REPORT(pri, fmt, ...)                           \
115        do {                                            \
116                fprintf(stderr, fmt "\n", __VA_ARGS__); \
117                syslog(pri, fmt, __VA_ARGS__);          \
118        } while (0)
119
120#if defined(PTHREAD_CANCELED) || defined(PTHREAD_MUTEX_DEFAULT)
121#error "Keep pthreads out of in manager process"
122#endif
Note: See TracBrowser for help on using the repository browser.