aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorale <ale@FreeBSD.org>2008-01-21 15:15:53 +0800
committerale <ale@FreeBSD.org>2008-01-21 15:15:53 +0800
commitd29af1103a41e321987e8601b67e2775060165e9 (patch)
tree1758960f7c0fd7a5a1e0a664299a13f369cd2012
parentb6d3fe05757ce53682744ff480441cd08f3121e8 (diff)
downloadfreebsd-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.c57
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,