summaryrefslogtreecommitdiff
path: root/OpenSSL/ssl/context.c
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSSL/ssl/context.c')
-rw-r--r--OpenSSL/ssl/context.c39
1 files changed, 37 insertions, 2 deletions
diff --git a/OpenSSL/ssl/context.c b/OpenSSL/ssl/context.c
index aa4976d..0b9f4b6 100644
--- a/OpenSSL/ssl/context.c
+++ b/OpenSSL/ssl/context.c
@@ -690,8 +690,8 @@ ssl_Context_load_client_ca(ssl_ContextObj *self, PyObject *args)
}
static char ssl_Context_set_session_id_doc[] = "\n\
-Set the session identifier, this is needed if you want to do session\n\
-resumption (which, ironically, isn't implemented yet)\n\
+Set the session identifier. This is needed if you want to do session\n\
+resumption.\n\
\n\
:param buf: A Python object that can be safely converted to a string\n\
:returns: None\n\
@@ -717,6 +717,39 @@ 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 specify the mode used.\n\
+\n\
+:param mode: One or more of the SESS_CACHE_* flags (combine using bitwise or)\n\
+:returns: 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\
+";
+static PyObject *
+ssl_Context_get_session_cache_mode(ssl_ContextObj *self, PyObject *args) {
+ long result;
+
+ if (!PyArg_ParseTuple(args, ":get_session_cache_mode")) {
+ return NULL;
+ }
+ result = SSL_CTX_get_session_cache_mode(self->ctx);
+ return PyLong_FromLong(result);
+}
+
static char ssl_Context_set_verify_doc[] = "\n\
Set the verify mode and verify callback\n\
\n\
@@ -1176,6 +1209,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),