diff options
author | ale <ale@FreeBSD.org> | 2008-01-21 15:15:53 +0800 |
---|---|---|
committer | ale <ale@FreeBSD.org> | 2008-01-21 15:15:53 +0800 |
commit | d29af1103a41e321987e8601b67e2775060165e9 (patch) | |
tree | 1758960f7c0fd7a5a1e0a664299a13f369cd2012 | |
parent | b6d3fe05757ce53682744ff480441cd08f3121e8 (diff) | |
download | freebsd-ports-graphics-d29af1103a41e321987e8601b67e2775060165e9.tar.gz freebsd-ports-graphics-d29af1103a41e321987e8601b67e2775060165e9.tar.zst freebsd-ports-graphics-d29af1103a41e321987e8601b67e2775060165e9.zip |
Fix SSL connections.
Reported by: many
-rw-r--r-- | databases/mysql50-server/files/patch-vio_viossl.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/databases/mysql50-server/files/patch-vio_viossl.c b/databases/mysql50-server/files/patch-vio_viossl.c new file mode 100644 index 00000000000..7614326aeaa --- /dev/null +++ b/databases/mysql50-server/files/patch-vio_viossl.c @@ -0,0 +1,57 @@ +--- vio/viossl.c.orig 2007-11-15 15:07:13.000000000 +0100 ++++ vio/viossl.c 2008-01-21 08:02:45.000000000 +0100 +@@ -172,20 +172,14 @@ + vio_delete(vio); + } + +-int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) +-{ +- DBUG_ENTER("sslaccept"); +- DBUG_RETURN(sslconnect(ptr, vio, timeout)); +-} +- +- +-int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) ++static ++int sslprocess(struct st_VioSSLFd *ptr, Vio *vio, long timeout, my_bool accept) + { + SSL *ssl; + my_bool unused; + my_bool was_blocking; + +- DBUG_ENTER("sslconnect"); ++ DBUG_ENTER("sslprocess"); + DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx", + (long) ptr, vio->sd, (long) ptr->ssl_context)); + +@@ -201,6 +195,12 @@ + } + DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout)); + SSL_clear(ssl); ++ ++ if (accept) ++ SSL_set_accept_state(ssl); ++ else ++ SSL_set_connect_state(ssl); ++ + SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); + SSL_set_fd(ssl, vio->sd); + +@@ -258,6 +258,17 @@ + DBUG_RETURN(0); + } + ++int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) ++{ ++ DBUG_ENTER("sslaccept"); ++ DBUG_RETURN(sslprocess(ptr, vio, timeout, TRUE)); ++} ++ ++int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) ++{ ++ DBUG_ENTER("sslconnect"); ++ DBUG_RETURN(sslprocess(ptr, vio, timeout, FALSE)); ++} + + int vio_ssl_blocking(Vio *vio __attribute__((unused)), + my_bool set_blocking_mode, |