diff options
author | Jean-Paul Calderone <exarkun@divmod.com> | 2011-05-26 19:24:02 -0400 |
---|---|---|
committer | Jean-Paul Calderone <exarkun@divmod.com> | 2011-05-26 19:24:02 -0400 |
commit | 871a4d81052e6b6a942f0a66213ed04f8a6054e5 (patch) | |
tree | 1b25b47248478198f0bf37f02d3470af507c91ea | |
parent | c4cb658c516e20cad3e8707ba66dab78ce0bd1e8 (diff) | |
download | pyopenssl-871a4d81052e6b6a942f0a66213ed04f8a6054e5.tar.gz |
"Parse" "arguments" to get_servername
-rwxr-xr-x | OpenSSL/ssl/connection.c | 4 | ||||
-rw-r--r-- | OpenSSL/test/test_ssl.py | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/OpenSSL/ssl/connection.c b/OpenSSL/ssl/connection.c index 68dbe7e..9e9794b 100755 --- a/OpenSSL/ssl/connection.c +++ b/OpenSSL/ssl/connection.c @@ -313,7 +313,9 @@ ssl_Connection_get_servername(ssl_ConnectionObj *self, PyObject *args) { int type = TLSEXT_NAMETYPE_host_name; const char *name; - /* XXX Argument parsing */ + if (!PyArg_ParseTuple(args, ":get_servername")) { + return NULL; + } name = SSL_get_servername(self->ssl, type); diff --git a/OpenSSL/test/test_ssl.py b/OpenSSL/test/test_ssl.py index 52ff818..2ab67fd 100644 --- a/OpenSSL/test/test_ssl.py +++ b/OpenSSL/test/test_ssl.py @@ -1080,6 +1080,17 @@ class ConnectionTests(TestCase, _LoopbackMixin): conn.set_tlsext_host_name, b("example.com").decode("ascii")) + def test_get_servername_wrong_args(self): + """ + L{Connection.get_servername} raises L{TypeError} if called with any + arguments. + """ + connection = Connection(Context(TLSv1_METHOD), None) + self.assertRaises(TypeError, connection.get_servername, object()) + self.assertRaises(TypeError, connection.get_servername, 1) + self.assertRaises(TypeError, connection.get_servername, "hello") + + def test_pending(self): """ L{Connection.pending} returns the number of bytes available for |