From: Willy Tarreau Date: Fri, 6 Jul 2012 07:47:57 +0000 (+0200) Subject: REORG/MINOR: connection: move declaration to its own include file X-Git-Tag: v1.5-dev12~122 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56e9c5e96383e79790a453885864250fca2fb2a3;p=thirdparty%2Fhaproxy.git REORG/MINOR: connection: move declaration to its own include file This way we don't depend on stream_interface anymore. --- diff --git a/include/types/connection.h b/include/types/connection.h new file mode 100644 index 0000000000..7c88ed7d12 --- /dev/null +++ b/include/types/connection.h @@ -0,0 +1,62 @@ +/* + * include/types/connection.h + * This file describes the connection struct and associated constants. + * + * Copyright (C) 2000-2012 Willy Tarreau - w@1wt.eu + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, version 2.1 + * exclusively. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _TYPES_CONNECTION_H +#define _TYPES_CONNECTION_H + +#include +#include + +#include + +/* referenced below */ +struct sock_ops; +struct protocol; + +/* This structure describes a connection with its methods and data. + * A connection may be performed to proxy or server via a local or remote + * socket, and can also be made to an internal applet. It can support + * several data schemes (applet, raw, ssl, ...). It can support several + * connection control schemes, generally a protocol for socket-oriented + * connections, but other methods for applets. + */ +struct connection { + const struct sock_ops *data; /* operations at the data layer */ + const struct protocol *ctrl; /* operations at the control layer, generally a protocol */ + union { /* definitions which depend on connection type */ + struct { /*** information used by socket-based connections ***/ + int fd; /* file descriptor for a stream driver when known */ + } sock; + } t; + int data_st; /* data layer state, initialized to zero */ + void *data_ctx; /* general purpose pointer, initialized to NULL */ + struct sockaddr *peeraddr; /* pointer to peer's network address, or NULL if unset */ + socklen_t peerlen; /* peer's address length, or 0 if unset */ +}; + +#endif /* _TYPES_CONNECTION_H */ + +/* + * Local variables: + * c-indent-level: 8 + * c-basic-offset: 8 + * End: + */ diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h index 311cf0e7a5..88b55abbc7 100644 --- a/include/types/stream_interface.h +++ b/include/types/stream_interface.h @@ -26,6 +26,7 @@ #include #include +#include #include /* A stream interface must have its own errors independently of the buffer's, @@ -95,27 +96,6 @@ struct proxy; struct si_applet; struct stream_interface; -/* This structure describes a connection with its methods and data. - * A connection may be performed to proxy or server via a local or remote - * socket, and can also be made to an internal applet. It can support - * several data schemes (applet, raw, ssl, ...). It can support several - * connection control schemes, generally a protocol for socket-oriented - * connections, but other methods for applets. - */ -struct connection { - const struct sock_ops *data; /* operations at the data layer */ - const struct protocol *ctrl; /* operations at the control layer, generally a protocol */ - union { /* definitions which depend on connection type */ - struct { /*** information used by socket-based connections ***/ - int fd; /* file descriptor for a stream driver when known */ - } sock; - } t; - int data_st; /* data layer state, initialized to zero */ - void *data_ctx; /* general purpose pointer, initialized to NULL */ - struct sockaddr *peeraddr; /* pointer to peer's network address, or NULL if unset */ - socklen_t peerlen; /* peer's address length, or 0 if unset */ -}; - struct target { int type; union {