]>
Commit | Line | Data |
---|---|---|
94d67168 | 1 | diff -urN mysql-5.0.51.org/vio/viossl.c mysql-5.0.51/vio/viossl.c |
10474203 | 2 | --- mysql-5.0.51.org/vio/viossl.c 2007-11-15 15:07:13.000000000 +0100 |
94d67168 AM |
3 | +++ mysql-5.0.51/vio/viossl.c 2007-12-20 22:56:38.660942731 +0100 |
4 | @@ -172,20 +172,14 @@ | |
5 | vio_delete(vio); | |
6 | } | |
7 | ||
8 | -int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) | |
9 | -{ | |
10 | - DBUG_ENTER("sslaccept"); | |
11 | - DBUG_RETURN(sslconnect(ptr, vio, timeout)); | |
12 | -} | |
13 | - | |
14 | - | |
15 | -int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) | |
16 | +static | |
17 | +int sslprocess(struct st_VioSSLFd *ptr, Vio *vio, long timeout, my_bool accept) | |
18 | { | |
19 | SSL *ssl; | |
20 | my_bool unused; | |
21 | my_bool was_blocking; | |
22 | ||
23 | - DBUG_ENTER("sslconnect"); | |
24 | + DBUG_ENTER("sslprocess"); | |
25 | DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx", | |
26 | (long) ptr, vio->sd, (long) ptr->ssl_context)); | |
27 | ||
28 | @@ -201,6 +195,12 @@ | |
10474203 | 29 | } |
10474203 AM |
30 | DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout)); |
31 | SSL_clear(ssl); | |
94d67168 AM |
32 | + |
33 | + if (accept) | |
34 | + SSL_set_accept_state(ssl); | |
35 | + else | |
36 | + SSL_set_connect_state(ssl); | |
37 | + | |
10474203 | 38 | SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); |
94d67168 AM |
39 | SSL_set_fd(ssl, vio->sd); |
40 | ||
41 | @@ -258,6 +258,17 @@ | |
42 | DBUG_RETURN(0); | |
43 | } | |
44 | ||
45 | +int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) | |
46 | +{ | |
47 | + DBUG_ENTER("sslaccept"); | |
48 | + DBUG_RETURN(sslprocess(ptr, vio, timeout, TRUE)); | |
49 | +} | |
50 | + | |
51 | +int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) | |
52 | +{ | |
53 | + DBUG_ENTER("sslconnect"); | |
54 | + DBUG_RETURN(sslprocess(ptr, vio, timeout, FALSE)); | |
55 | +} | |
56 | ||
57 | int vio_ssl_blocking(Vio *vio __attribute__((unused)), | |
58 | my_bool set_blocking_mode, |