diff options
-rw-r--r-- | bindings/bindings.py | 1 | ||||
-rw-r--r-- | bindings/lang_python.py | 21 | ||||
-rw-r--r-- | bindings/lang_python_wrapper_top.c | 1 | ||||
-rw-r--r-- | bindings/overrides.xml | 4 |
4 files changed, 26 insertions, 1 deletions
diff --git a/bindings/bindings.py b/bindings/bindings.py index 52597e45..8a0e4945 100644 --- a/bindings/bindings.py +++ b/bindings/bindings.py @@ -307,6 +307,7 @@ def parse_headers(srcdir, enable_idwsf): binding.headers.append(os.path.join(base, filename)[3:]) parse_header(os.path.join(base, filename)) binding.headers.insert(0, 'lasso/xml/saml-2.0/saml2_assertion.h') + binding.constants.append(('b', 'LASSO_WSF_ENABLED')) def main(): diff --git a/bindings/lang_python.py b/bindings/lang_python.py index 8dba3eb2..5e4dc4ae 100644 --- a/bindings/lang_python.py +++ b/bindings/lang_python.py @@ -163,6 +163,9 @@ class %sError(%sError): def generate_footer(self, fd): print >> fd, ''' + +WSF_SUPPORT = WSF_ENABLED # compatibility + import lasso ''' @@ -170,6 +173,15 @@ import lasso print >> fd, '### Constants (both enums and defines)' for c in self.binding_data.constants: print >> fd, '%s = _lasso.%s' % (c[1][6:], c[1][6:]) + for c in self.binding_data.overrides.findall('constant'): + name = c.attrib.get('name') + if c.attrib.get('value'): + name = name[6:] # dropping LASSO_ + value = c.attrib.get('value') + if value == 'True': + print >> fd, '%s = True' % name + else: + print >> sys.stderr, 'E: unknown value for constant: %r' % value print >> fd, '' def generate_class(self, clss, fd): @@ -445,6 +457,15 @@ register_constants(PyObject *d) print >> fd, ' obj = PyInt_FromLong(%s);' % c[1] elif c[0] == 's': print >> fd, ' obj = PyString_FromString(%s);' % c[1] + elif c[0] == 'b': + print >> fd, '''\ +#ifdef %s + obj = Py_True; +#else + obj = Py_False; +#endif''' % c[1] + else: + print >> sys.stderr, 'E: unknown constant type: %r' % c[0] print >> fd, ' PyDict_SetItemString(d, "%s", obj);' % c[1][6:] print >> fd, ' Py_DECREF(obj);' print >> fd, '}' diff --git a/bindings/lang_python_wrapper_top.c b/bindings/lang_python_wrapper_top.c index 1f70ecea..a80bbde3 100644 --- a/bindings/lang_python_wrapper_top.c +++ b/bindings/lang_python_wrapper_top.c @@ -1,6 +1,7 @@ #include <Python.h> #include <structmember.h> #include <lasso/lasso.h> +#include <lasso_config.h> GQuark lasso_wrapper_key; diff --git a/bindings/overrides.xml b/bindings/overrides.xml index 331eea91..7616ebf6 100644 --- a/bindings/overrides.xml +++ b/bindings/overrides.xml @@ -1,6 +1,8 @@ <?xml version="1.0"?> <overrides> - <!-- functions --> + <!-- Constants --> + <constant name="LASSO_SAML2_SUPPORT" value="True"/> + <!-- Functions --> <func name="lasso_strerror" rename="strError"/> <func name="lasso_profile_is_liberty_query" rename="isLibertyQuery"/> <func name="lasso_profile_is_saml_query" rename="isSamlQuery"/> |