diff options
author | Jean-Paul Calderone <exarkun@twistedmatrix.com> | 2012-02-08 13:02:49 -0500 |
---|---|---|
committer | Jean-Paul Calderone <exarkun@twistedmatrix.com> | 2012-02-08 13:02:49 -0500 |
commit | 313bf01183d9831e59a9310610acf5a35621c7aa (patch) | |
tree | bb20ba446ee61bf16f14a33378fdce96ea37e57a /OpenSSL/ssl/context.c | |
parent | d59d3bc2a2ec62561359e6aa0ff25b8f03f96dd7 (diff) | |
download | pyopenssl-313bf01183d9831e59a9310610acf5a35621c7aa.tar.gz |
Grab Context.{set,get}_session_cache_mode from the sessions branch, plus the unit tests.
Diffstat (limited to 'OpenSSL/ssl/context.c')
-rw-r--r-- | OpenSSL/ssl/context.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/OpenSSL/ssl/context.c b/OpenSSL/ssl/context.c index aa4976d..a92a476 100644 --- a/OpenSSL/ssl/context.c +++ b/OpenSSL/ssl/context.c @@ -717,6 +717,38 @@ ssl_Context_set_session_id(ssl_ContextObj *self, PyObject *args) } } +static char ssl_Context_set_session_cache_mode_doc[] = "\n\ +Enable/disable session caching and the mode used.\n\ +\n\ +@param mode: One or more of the SESS_CACHE_* flags (combine using bitwise or)\n\ +@return: The previously set caching mode.n\ +"; +static PyObject * +ssl_Context_set_session_cache_mode(ssl_ContextObj *self, PyObject *args) +{ + long mode, result; + + if (!PyArg_ParseTuple(args, "l:set_session_cache_mode", &mode)) + return NULL; + + result = SSL_CTX_set_session_cache_mode(self->ctx, mode); + return PyLong_FromLong(result); + +} + +static char ssl_Context_get_session_cache_mode_doc[] = "\n\ +Returns the currently used cache mode.\n\ +\n\ +@return: The currently used cache mode.\n\ +"; +static PyObject * +ssl_Context_get_session_cache_mode(ssl_ContextObj *self, PyObject *args) +{ + if (!PyArg_ParseTuple(args, ":get_session_cache_mode")) + return NULL; + return PyLong_FromLong((long)SSL_CTX_get_session_cache_mode(self->ctx)); +} + static char ssl_Context_set_verify_doc[] = "\n\ Set the verify mode and verify callback\n\ \n\ @@ -1176,6 +1208,8 @@ static PyMethodDef ssl_Context_methods[] = { ADD_METHOD(check_privatekey), ADD_METHOD(load_client_ca), ADD_METHOD(set_session_id), + ADD_METHOD(set_session_cache_mode), + ADD_METHOD(get_session_cache_mode), ADD_METHOD(set_verify), ADD_METHOD(set_verify_depth), ADD_METHOD(get_verify_mode), |