diff options
author | demon <demon@FreeBSD.org> | 2017-03-28 17:01:22 +0800 |
---|---|---|
committer | demon <demon@FreeBSD.org> | 2017-03-28 17:01:22 +0800 |
commit | f99bcc58b506d0bb9b48575c0bf9cc14c642dc33 (patch) | |
tree | f909288fe22bc825883adbe5cd2386748f0f404f /net/haproxy | |
parent | 32a551205b2e3decc7e2e9d68c293127999322d7 (diff) | |
download | freebsd-ports-gnome-f99bcc58b506d0bb9b48575c0bf9cc14c642dc33.tar.gz freebsd-ports-gnome-f99bcc58b506d0bb9b48575c0bf9cc14c642dc33.tar.zst freebsd-ports-gnome-f99bcc58b506d0bb9b48575c0bf9cc14c642dc33.zip |
Update to version 1.7.4.
Diffstat (limited to 'net/haproxy')
-rw-r--r-- | net/haproxy/Makefile | 3 | ||||
-rw-r--r-- | net/haproxy/distinfo | 8 | ||||
-rw-r--r-- | net/haproxy/files/patch-src-proto_tcp.c | 134 |
3 files changed, 4 insertions, 141 deletions
diff --git a/net/haproxy/Makefile b/net/haproxy/Makefile index dccf4387b66b..2a96a8ef67c0 100644 --- a/net/haproxy/Makefile +++ b/net/haproxy/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= haproxy -PORTVERSION= 1.7.3 -PORTREVISION= 4 +PORTVERSION= 1.7.4 CATEGORIES= net www MASTER_SITES= http://www.haproxy.org/download/1.7/src/ DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} diff --git a/net/haproxy/distinfo b/net/haproxy/distinfo index 696e9e3a52d0..af195170168d 100644 --- a/net/haproxy/distinfo +++ b/net/haproxy/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1490279135 -SHA256 (haproxy-1.7.3.tar.gz) = ebb31550a5261091034f1b6ac7f4a8b9d79a8ce2a3ddcd7be5b5eb355c35ba65 -SIZE (haproxy-1.7.3.tar.gz) = 1737006 -SHA256 (deviceatlas-enterprise-c-2.1.2_1.tgz) = 984e1ae3147459a4ed0a8d5053d83dd05ce8c5127cd3cb055be35a74e9217372 -SIZE (deviceatlas-enterprise-c-2.1.2_1.tgz) = 184432 +TIMESTAMP = 1490691625 +SHA256 (haproxy-1.7.4.tar.gz) = dc1e7621fd41a1c3ca5621975ca5ed4191469a144108f6c47d630ca8da835dbe +SIZE (haproxy-1.7.4.tar.gz) = 1741637 diff --git a/net/haproxy/files/patch-src-proto_tcp.c b/net/haproxy/files/patch-src-proto_tcp.c deleted file mode 100644 index d6cf11137c58..000000000000 --- a/net/haproxy/files/patch-src-proto_tcp.c +++ /dev/null @@ -1,134 +0,0 @@ ---- src/connection.c -+++ src/connection.c -@@ -131,6 +131,13 @@ void conn_fd_handler(int fd) - } - - leave: -+ /* Verify if the connection just established. The CO_FL_CONNECTED flag -+ * being included in CO_FL_CONN_STATE, its change will be noticed by -+ * the next block and be used to wake up the data layer. -+ */ -+ if (unlikely(!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN | CO_FL_CONNECTED)))) -+ conn->flags |= CO_FL_CONNECTED; -+ - /* The wake callback may be used to process a critical error and abort the - * connection. If so, we don't want to go further as the connection will - * have been released and the FD destroyed. -@@ -140,10 +147,6 @@ void conn_fd_handler(int fd) - conn->data->wake(conn) < 0) - return; - -- /* Last check, verify if the connection just established */ -- if (unlikely(!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN | CO_FL_CONNECTED)))) -- conn->flags |= CO_FL_CONNECTED; -- - /* remove the events before leaving */ - fdtab[fd].ev &= FD_POLL_STICKY; - ---- src/stream_interface.c -+++ src/stream_interface.c -@@ -563,7 +563,8 @@ static int si_conn_wake_cb(struct connection *conn) - if (conn->flags & CO_FL_ERROR) - si->flags |= SI_FL_ERR; - -- if (unlikely(!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN | CO_FL_CONNECTED)))) { -+ if ((si->state < SI_ST_EST) && -+ (conn->flags & (CO_FL_CONNECTED | CO_FL_HANDSHAKE)) == CO_FL_CONNECTED) { - si->exp = TICK_ETERNITY; - oc->flags |= CF_WRITE_NULL; - } ---- include/types/connection.h -+++ include/types/connection.h -@@ -95,15 +95,15 @@ enum { - CO_FL_SOCK_RD_SH = 0x00040000, /* SOCK layer was notified about shutr/read0 */ - CO_FL_SOCK_WR_SH = 0x00080000, /* SOCK layer asked for shutw */ - -- /* flags used to report connection status and errors */ -+ /* flags used to report connection errors or other closing conditions */ - CO_FL_ERROR = 0x00100000, /* a fatal error was reported */ -- CO_FL_CONNECTED = 0x00200000, /* the connection is now established */ -+ CO_FL_NOTIFY_DATA = 0x001F0000, /* any shut/error flags above needs to be reported */ -+ -+ /* flags used to report connection status updates */ -+ CO_FL_CONNECTED = 0x00200000, /* L4+L6 now ready ; extra handshakes may or may not exist */ - CO_FL_WAIT_L4_CONN = 0x00400000, /* waiting for L4 to be connected */ - CO_FL_WAIT_L6_CONN = 0x00800000, /* waiting for L6 to be connected (eg: SSL) */ - -- /* synthesis of the flags above */ -- CO_FL_CONN_STATE = 0x00FF0000, /* all shut/connected flags */ -- - /*** All the flags below are used for connection handshakes. Any new - * handshake should be added after this point, and CO_FL_HANDSHAKE - * should be updated. -diff --git a/src/connection.c b/src/connection.c -index 1e4c9aa..3629094 100644 ---- src/connection.c -+++ src/connection.c -@@ -99,19 +99,21 @@ void conn_fd_handler(int fd) - */ - if (conn->xprt && fd_recv_ready(fd) && - ((conn->flags & (CO_FL_DATA_RD_ENA|CO_FL_WAIT_ROOM|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_RD_ENA)) { -- /* force detection of a flag change : it's impossible to have both -- * CONNECTED and WAIT_CONN so we're certain to trigger a change. -+ /* force reporting of activity by clearing the previous flags : -+ * we'll have at least ERROR or CONNECTED at the end of an I/O, -+ * both of which will be detected below. - */ -- flags = CO_FL_WAIT_L4_CONN | CO_FL_CONNECTED; -+ flags = 0; - conn->data->recv(conn); - } - - if (conn->xprt && fd_send_ready(fd) && - ((conn->flags & (CO_FL_DATA_WR_ENA|CO_FL_WAIT_DATA|CO_FL_ERROR|CO_FL_HANDSHAKE)) == CO_FL_DATA_WR_ENA)) { -- /* force detection of a flag change : it's impossible to have both -- * CONNECTED and WAIT_CONN so we're certain to trigger a change. -+ /* force reporting of activity by clearing the previous flags : -+ * we'll have at least ERROR or CONNECTED at the end of an I/O, -+ * both of which will be detected below. - */ -- flags = CO_FL_WAIT_L4_CONN | CO_FL_CONNECTED; -+ flags = 0; - conn->data->send(conn); - } - -@@ -129,21 +131,30 @@ void conn_fd_handler(int fd) - if (!tcp_connect_probe(conn)) - goto leave; - } -- - leave: -- /* Verify if the connection just established. The CO_FL_CONNECTED flag -- * being included in CO_FL_CONN_STATE, its change will be noticed by -- * the next block and be used to wake up the data layer. -- */ -+ /* Verify if the connection just established. */ - if (unlikely(!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN | CO_FL_CONNECTED)))) - conn->flags |= CO_FL_CONNECTED; - -- /* The wake callback may be used to process a critical error and abort the -- * connection. If so, we don't want to go further as the connection will -- * have been released and the FD destroyed. -+ /* The wake callback is normally used to notify the data layer about -+ * data layer activity (successful send/recv), connection establishment, -+ * shutdown and fatal errors. We need to consider the following -+ * situations to wake up the data layer : -+ * - change among the CO_FL_NOTIFY_DATA flags : -+ * {DATA,SOCK}_{RD,WR}_SH, ERROR, -+ * - absence of any of {L4,L6}_CONN and CONNECTED, indicating the -+ * end of handshake and transition to CONNECTED -+ * - raise of CONNECTED with HANDSHAKE down -+ * - end of HANDSHAKE with CONNECTED set -+ * - regular data layer activity -+ * -+ * Note that the wake callback is allowed to release the connection and -+ * the fd (and return < 0 in this case). - */ - if ((conn->flags & CO_FL_WAKE_DATA) && -- ((conn->flags ^ flags) & CO_FL_CONN_STATE) && -+ (((conn->flags ^ flags) & CO_FL_NOTIFY_DATA) || -+ ((flags & (CO_FL_CONNECTED|CO_FL_HANDSHAKE)) != CO_FL_CONNECTED && -+ (conn->flags & (CO_FL_CONNECTED|CO_FL_HANDSHAKE)) == CO_FL_CONNECTED)) && - conn->data->wake(conn) < 0) - return; - |