From 8944a5f52d6d49ad646837e4595132500ddaccfe Mon Sep 17 00:00:00 2001 From: Valery Febvre Date: Mon, 2 Aug 2004 23:59:26 +0000 Subject: - Replaced some charPtrConst_wrap() calls by charPtr_wrap() - Added GPtrArray_wrap() function to wrap GPtrArray into Python list. - Added session_getattr() function, we can get now providerIDs and is_dirty properties of Session objects. --- python/environs/py_session.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'python/environs/py_session.c') diff --git a/python/environs/py_session.c b/python/environs/py_session.c index cbe396ae..1a7040db 100644 --- a/python/environs/py_session.c +++ b/python/environs/py_session.c @@ -42,6 +42,35 @@ PyObject *LassoSession_wrap(LassoSession *session) { /******************************************************************************/ +PyObject *session_getattr(PyObject *self, PyObject *args) { + PyObject *session_obj; + LassoSession *session; + const char *attr; + + if (CheckArgs(args, "OS:session_get_attr")) { + if (!PyArg_ParseTuple(args, "Os:session_get_attr", &session_obj, &attr)) + return NULL; + } + else return NULL; + + session = LassoSession_get(session_obj); + + if (!strcmp(attr, "__members__")) { + return Py_BuildValue("[ss]", "providerIDs", "is_dirty"); + } + if (!strcmp(attr, "providerIDs")) { + return (GPtrArray_wrap(session->providerIDs)); + } + if (!strcmp(attr, "is_dirty")) { + return (int_wrap(session->is_dirty)); + } + + Py_INCREF(Py_None); + return (Py_None); +} + +/******************************************************************************/ + PyObject *session_new(PyObject *self, PyObject *args) { return (LassoSession_wrap(lasso_session_new())); } @@ -107,7 +136,7 @@ PyObject *session_dump(PyObject *self, PyObject *args) { dump = lasso_session_dump(LassoSession_get(session_obj)); - return (charPtrConst_wrap(dump)); + return (charPtr_wrap(dump)); } PyObject *session_get_assertion(PyObject *self, PyObject *args) { @@ -143,7 +172,7 @@ PyObject *session_get_authentication_method(PyObject *self, PyObject *args) { authentication_method = lasso_session_get_authentication_method(LassoSession_get(session_obj), remote_providerID); - return (charPtrConst_wrap(authentication_method)); + return (charPtr_wrap(authentication_method)); } PyObject *session_get_next_assertion_remote_providerID(PyObject *self, PyObject *args) { @@ -159,7 +188,7 @@ PyObject *session_get_next_assertion_remote_providerID(PyObject *self, PyObject remote_providerID = lasso_session_get_next_assertion_remote_providerID(LassoSession_get(session_obj)); - return (charPtrConst_wrap(remote_providerID)); + return (charPtr_wrap(remote_providerID)); } PyObject *session_remove_assertion(PyObject *self, PyObject *args) { -- cgit