summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bindings/bindings.py1
-rw-r--r--bindings/lang_python.py21
-rw-r--r--bindings/lang_python_wrapper_top.c1
-rw-r--r--bindings/overrides.xml4
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"/>