#define INDIRECT_READ_BUFSZ 1024
typedef struct _indirect {
int childWrite[2];
int parentWrite[2];
char *hostname;
int in_fd;
int out_fd;
char read_buf[INDIRECT_READ_BUFSZ];
int read_buf_pos;
int read_buf_used;
} dcc_indirection;
int dcc_prepare_indirect(dcc_indirection *);
void dcc_indirect_child(dcc_indirection *);
int dcc_indirect_parent(dcc_indirection *);
int dcc_redirect_fds(const char *stdin_file,
const char *stdout_file,
const char *stderr_file);
int dcc_spawn_child(char **argv, pid_t *pidptr,
const char *, const char *, const char *, dcc_indirection *);
int dcc_collect_child(const char *what, pid_t pid,
int *wait_status);
int dcc_critique_status(int s,
const char *,
const char *,
struct dcc_hostdef *host,
int verbose);
void dcc_note_execution(struct dcc_hostdef *host, char **argv);
int dcc_new_pgrp(void);
void dcc_reset_signal(int whichsig);
#ifndef W_EXITCODE
# define W_EXITCODE(exit, signal) ((exit)<<8 | (signal))
#endif