From 0ac3526b3e97ec71e7ed9bd89d42b688646a0220 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 6 Apr 2016 09:06:19 +0100 Subject: [PATCH 1/1] Fix duplicate definition of typedef 'bufchain'. This was defined in misc.h, and also in network.h (because one function prototype needed to refer to it in the latter), leading to a build failure if any source file inconveniently included both those headers. Fixed by guarding each copy of the typedef with a #ifdef. --- misc.h | 8 ++++++-- network.h | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/misc.h b/misc.h index d5999cbe..ce927ec5 100644 --- a/misc.h +++ b/misc.h @@ -59,10 +59,14 @@ void base64_encode_atom(const unsigned char *data, int n, char *out); int base64_decode_atom(const char *atom, unsigned char *out); struct bufchain_granule; -typedef struct bufchain_tag { +struct bufchain_tag { struct bufchain_granule *head, *tail; int buffersize; /* current amount of buffered data */ -} bufchain; +}; +#ifndef BUFCHAIN_TYPEDEF +typedef struct bufchain_tag bufchain; /* rest of declaration in misc.c */ +#define BUFCHAIN_TYPEDEF +#endif void bufchain_init(bufchain *ch); void bufchain_clear(bufchain *ch); diff --git a/network.h b/network.h index 10be046f..d58635b6 100644 --- a/network.h +++ b/network.h @@ -229,7 +229,10 @@ Socket new_error_socket(const char *errmsg, Plug plug); void backend_socket_log(void *frontend, int type, SockAddr addr, int port, const char *error_msg, int error_code, Conf *conf, int session_started); +#ifndef BUFCHAIN_TYPEDEF typedef struct bufchain_tag bufchain; /* rest of declaration in misc.c */ +#define BUFCHAIN_TYPEDEF +#endif void log_proxy_stderr(Plug plug, bufchain *buf, const void *vdata, int len); #endif -- 2.45.2