commit f3ebd94c1caa33f52775a585482431faadcb391d Author: Zack Weinberg zackw@panix.com Date: Fri Jul 8 12:03:06 2011 -0700
Aggressive removal of nested includes from header files. Potential not to compile on Windows. --- src/network.c | 9 ++++++--- src/network.h | 17 ++++------------- src/protocol.h | 20 ++++++++++---------- src/socks.h | 25 ++++++++++++------------- src/util.h | 4 ++-- 5 files changed, 34 insertions(+), 41 deletions(-)
diff --git a/src/network.c b/src/network.c index ed78104..0faf136 100644 --- a/src/network.c +++ b/src/network.c @@ -10,10 +10,13 @@ #include "socks.h"
#include <assert.h> +#include <errno.h> #include <stdlib.h> #include <string.h>
-#include <errno.h> +#include <event2/buffer.h> +#include <event2/bufferevent.h> +#include <event2/listener.h> #include <event2/util.h>
#ifdef _WIN32 @@ -43,7 +46,7 @@ static void output_event_cb(struct bufferevent *bev, short what, void *arg); This function sets up the protocol defined by 'options' and attempts to bind a new listener for it.
- Returns the listener on success, NULL on fail. + Returns the listener on success, NULL on fail. */ listener_t * listener_new(struct event_base *base, @@ -60,7 +63,7 @@ listener_new(struct event_base *base, }
lsn->proto_params = proto_params; - + lsn->listener = evconnlistener_new_bind(base, simple_listener_cb, lsn, flags, -1, diff --git a/src/network.h b/src/network.h index 2a1daeb..7bc4811 100644 --- a/src/network.h +++ b/src/network.h @@ -5,19 +5,7 @@ #ifndef NETWORK_H #define NETWORK_H
-#include <stdlib.h> - -#include <event2/buffer.h> -#include <event2/bufferevent.h> -#include <event2/listener.h> -#include <event2/event.h> - - -typedef struct listener_t *listener; - -struct sockaddr; struct event_base; -struct socks_state_t; struct protocol_params_t;
#define LSN_SIMPLE_CLIENT 1 @@ -41,13 +29,16 @@ enum recv_ret { };
typedef struct listener_t listener_t; -struct addrinfo;
listener_t *listener_new(struct event_base *base, struct protocol_params_t *params); void listener_free(listener_t *listener);
#ifdef NETWORK_PRIVATE +struct bufferevent; +struct socks_state_t; +struct protocol_t; + typedef struct conn_t { struct socks_state_t *socks_state; struct protocol_t *proto; /* ASN Do we like this here? We probably don't. diff --git a/src/protocol.h b/src/protocol.h index ceae438..483bae2 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -2,11 +2,11 @@ See LICENSE for other credits and copying information */
-#include <event2/buffer.h> - #ifndef PROTOCOL_H #define PROTOCOL_H
+#include <sys/socket.h> /* for sockaddr & sockaddr_storage - FIXME */ + struct evbuffer; struct listener_t;
@@ -15,7 +15,7 @@ struct listener_t;
/** This struct defines parameters of the protocol per-listener basis. - + By 'per-listener basis' I mean that the parameters defined here will be inherited by *all* connections opened from the listener_t that owns this protocol_params_t. @@ -35,7 +35,7 @@ typedef struct protocol_params_t { struct protocol_t { /* protocol vtable */ struct protocol_vtable *vtable; - + /* This protocol specific struct defines the state of the protocol per-connection basis.
@@ -48,7 +48,7 @@ struct protocol_t { */ void *state; }; -int set_up_protocol(int n_options, char **options, +int set_up_protocol(int n_options, char **options, struct protocol_params_t *params); struct protocol_t *proto_new(struct protocol_params_t *params); void proto_destroy(struct protocol_t *proto); @@ -58,16 +58,16 @@ enum recv_ret proto_recv(struct protocol_t *proto, void *source, void *dest);
void proto_params_free(protocol_params_t *params);
- typedef struct protocol_vtable { /* Initialization function: Fills in the protocol vtable. */ - int (*init)(int n_options, char **options, + int (*init)(int n_options, char **options, struct protocol_params_t *params); + /* Destructor: Destroys the protocol state. */ void (*destroy)(void *state);
/* Constructor: Creates a protocol object. */ - void *(*create)(struct protocol_t *proto_params, + void *(*create)(struct protocol_t *proto_params, struct protocol_params_t *parameters);
/* does handshake. Not all protocols have a handshake. */ @@ -75,12 +75,12 @@ typedef struct protocol_vtable { struct evbuffer *buf);
/* send data function */ - int (*send)(void *state, + int (*send)(void *state, struct evbuffer *source, struct evbuffer *dest);
/* receive data function */ - enum recv_ret (*recv)(void *state, + enum recv_ret (*recv)(void *state, struct evbuffer *source, struct evbuffer *dest);
diff --git a/src/socks.h b/src/socks.h index 2f1e44b..ef7b953 100644 --- a/src/socks.h +++ b/src/socks.h @@ -5,14 +5,9 @@ #ifndef SOCKS_H #define SOCKS_H
-#ifdef _WIN32 -#include <Winsock2.h> -#else -#include <netdb.h> -#endif - typedef struct socks_state_t socks_state_t; struct evbuffer; +struct sockaddr;
enum socks_status_t { /* Waiting for initial socks4 or socks5 message */ @@ -33,7 +28,8 @@ enum socks_ret { };
enum socks_ret handle_socks(struct evbuffer *source, - struct evbuffer *dest, socks_state_t *socks_state); + struct evbuffer *dest, + socks_state_t *socks_state); socks_state_t *socks_state_new(void); void socks_state_free(socks_state_t *s);
@@ -44,7 +40,7 @@ int socks_state_get_address(const socks_state_t *state, int *port_out); int socks_state_set_address(socks_state_t *state, const struct sockaddr *sa); int socks_send_reply(socks_state_t *state, struct evbuffer *dest, int error); -int socks5_send_reply(struct evbuffer *reply_dest, +int socks5_send_reply(struct evbuffer *reply_dest, socks_state_t *state, int status);
@@ -108,11 +104,14 @@ enum socks_ret socks5_handle_negotiation(struct evbuffer *source, struct evbuffer *dest, socks_state_t *state); int socks5_send_reply(struct evbuffer *reply_dest, socks_state_t *state, int status); -enum socks_ret socks5_handle_request(struct evbuffer *source, struct parsereq *parsereq); +enum socks_ret socks5_handle_request(struct evbuffer *source, + struct parsereq *parsereq);
-enum socks_ret socks4_read_request(struct evbuffer *source, socks_state_t *state); -int socks4_send_reply(struct evbuffer *dest, +enum socks_ret socks4_read_request(struct evbuffer *source, + socks_state_t *state); +int socks4_send_reply(struct evbuffer *dest, socks_state_t *state, int status); -#endif
-#endif +#endif /* SOCKS_PRIVATE */ + +#endif /* socks.h */ diff --git a/src/util.h b/src/util.h index ee04c85..90c55c2 100644 --- a/src/util.h +++ b/src/util.h @@ -5,8 +5,8 @@ #ifndef UTIL_H #define UTIL_H
-/* va_list definition */ -#include <stdarg.h> +#include <stdarg.h> /* for va_list */ +#include <stddef.h> /* for size_t etc */
struct sockaddr_storage; struct event_base;