#define PROTO_VER 1
#ifdef NORETURN
#elif defined(__GNUC__)
# define NORETURN __attribute__((noreturn))
#elif defined(__LCLINT__)
# define NORETURN x
#else
# define NORETURN
#endif
#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) x
#else
# define UNUSED(x) x
#endif
#ifndef HAVE_SA_FAMILY_T
typedef int sa_family_t;
#endif
#ifndef TRUE
# define TRUE 1
# define FALSE 0
#endif
struct dcc_hostdef;
int str_endswith(const char *tail, const char *tiger);
int dcc_is_source(const char *sfile);
int dcc_is_preprocessed(const char *sfile);
char * dcc_find_extension(char *sfile);
int dcc_output_from_source(const char *sfile, const char *out_extn,
char **ofile);
int dcc_deepcopy_argv(char **, char ***);
int dcc_shallowcopy_argv(char **, char ***, int);
int dcc_set_action_opt(char **, const char *);
int dcc_set_output(char **, char *);
int dcc_set_input(char **, char *);
int dcc_scan_args(char *argv[], char **orig_o,
char **orig_i, char ***ret_newargv);
char *dcc_argv_tostr(char **a);
int dcc_trace_argv(const char *message, char *argv[]);
int dcc_argv_len(char **a);
extern struct dcc_allow_list *opt_allowed;
int distccd_parse_options(int argc, const char *argv[]);
int dcc_accept_job(int fd);
int dcc_show_copyright(void);
int dcc_show_version(const char *prog);
void dcc_server_child(int) NORETURN;
int dcc_refuse_root(void);
int dcc_set_lifetime(void);
void dcc_catch_signals(void);
void dcc_ignore_sighup(void);
int dcc_standalone_server(void);
void dcc_remove_pid(void);
int dcc_open_read(const char *fname, int *ifd, off_t *fsize);
int dcc_parse_hosts_env(struct dcc_hostdef **ret_list,
int *ret_nhosts);
int dcc_parse_hosts(const char *where,
struct dcc_hostdef **ret_list,
int *ret_nhosts);
int dcc_ncpus(int *);
#define DISTCC_DEFAULT_PORT 3632