svn commit: samba r2358 - in branches/SAMBA_4_0/source: build/pidl scripting/swig

tpot at samba.org tpot at samba.org
Wed Sep 15 22:03:53 GMT 2004


Author: tpot
Date: 2004-09-15 22:03:53 +0000 (Wed, 15 Sep 2004)
New Revision: 2358

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=2358&nolog=1

Log:
More renaming of functions to keep things consistent.

Modified:
   branches/SAMBA_4_0/source/build/pidl/swig.pm
   branches/SAMBA_4_0/source/scripting/swig/dcerpc.i


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/swig.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/swig.pm	2004-09-15 21:17:26 UTC (rev 2357)
+++ branches/SAMBA_4_0/source/build/pidl/swig.pm	2004-09-15 22:03:53 UTC (rev 2358)
@@ -47,12 +47,12 @@
     # Special cases
 
     if (($e->{TYPE} eq "policy_handle" || $e->{TYPE} eq "string") && $e->{POINTERS} == 1) {
-	$result .= "\ts->$prefix$e->{NAME} = $e->{TYPE}_from_python($obj);\n";
+	$result .= "\ts->$prefix$e->{NAME} = $e->{TYPE}_ptr_from_python($obj);\n";
 	return $result;
     }
 
     if ($e->{TYPE} eq "string" && $e->{POINTERS} == 1) {
-	$result .= "\ts->$prefix$e->{NAME} = policy_handle_from_python($obj);\n";
+	$result .= "\ts->$prefix$e->{NAME} = policy_handle_ptr_from_python($obj);\n";
 	return $result;
     }
 
@@ -94,12 +94,12 @@
     # Special cases
 
     if ($e->{TYPE} eq "policy_handle" && $e->{POINTERS} == 1) {
-	$result .= "\tPyDict_SetItem(obj, PyString_FromString(\"$e->{NAME}\"), policy_handle_to_python(s->$prefix$e->{NAME}));\n";
+	$result .= "\tPyDict_SetItem(obj, PyString_FromString(\"$e->{NAME}\"), policy_handle_ptr_to_python(s->$prefix$e->{NAME}));\n";
 	return $result;
     }
 
     if ($e->{TYPE} eq "string" && $e->{POINTERS} == 1) {
-	$result .= "\tPyDict_SetItem(obj, PyString_FromString(\"$e->{NAME}\"), string_to_python(s->$prefix$e->{NAME}));\n";
+	$result .= "\tPyDict_SetItem(obj, PyString_FromString(\"$e->{NAME}\"), string_ptr_to_python(s->$prefix$e->{NAME}));\n";
 	return $result;
     }
 
@@ -122,7 +122,7 @@
 	    # Non-scalar type, no pointer
 	    $result .= DebugElement($e);
 	} elsif ($e->{POINTERS} == 1) {
-	    $result .= "\ts->$prefix$e->{NAME} = $e->{TYPE}_ptr_from_python(mem_ctx, obj);\n";
+	    $result .= "\tPyDict_SetItem(obj, PyString_FromString(\"$e->{NAME}\"), $e->{TYPE}_ptr_to_python(mem_ctx, s->$prefix$e->{NAME}));\n";
 	} else {
 	    # Non-scalar type, multiple pointers
 	    $result .= DebugElement($e);
@@ -158,7 +158,7 @@
 
     $res .= "/* Convert struct $fn->{NAME}.out to Python dict */\n\n";
 
-    $res .= "PyObject *$fn->{NAME}_to_python(TALLOC_CTX *mem_ctx, struct $fn->{NAME} *s)\n";
+    $res .= "PyObject *$fn->{NAME}_ptr_to_python(TALLOC_CTX *mem_ctx, struct $fn->{NAME} *s)\n";
     $res .= "{\n";
 
     $res .= "\tPyObject *obj = PyDict_New();\n\n";
@@ -192,7 +192,7 @@
     $res .= "\t\treturn NULL;\n";
     $res .= "\t}\n";
     $res .= "\n";
-    $res .= "\tdict = $fn->{NAME}_to_python(mem_ctx, \$1);\n";
+    $res .= "\tdict = $fn->{NAME}_ptr_to_python(mem_ctx, \$1);\n";
 
     $res .= "\tresultobj = dict;\n";
     $res .= "}\n\n";
@@ -235,7 +235,7 @@
 
     $res .= "/* Convert struct $s->{NAME} to Python dict */\n\n";
 
-    $res .= "PyObject *$s->{NAME}_to_python(TALLOC_CTX *mem_ctx, struct $s->{NAME} *s)\n";
+    $res .= "PyObject *$s->{NAME}_ptr_to_python(TALLOC_CTX *mem_ctx, struct $s->{NAME} *s)\n";
     $res .= "{\n";
     
     $res .= "\tPyObject *obj = PyDict_New();\n\n";
@@ -284,9 +284,9 @@
 
     $res .= "/* Convert union $u->{NAME} to Python dict */\n\n";
 
-    $res .= "PyObject *$u->{NAME}_to_python(TALLOC_CTX *mem_ctx, union $u->{NAME} *u)\n";
+    $res .= "PyObject *$u->{NAME}_ptr_to_python(TALLOC_CTX *mem_ctx, union $u->{NAME} *u)\n";
     $res .= "{\n";
-    $res .= "\treturn NULL;\n";
+    $res .= "\treturn PyDict_New();\n";
     $res .= "}\n\n";
 
     $res .= "\n%}\n\n";    

Modified: branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2004-09-15 21:17:26 UTC (rev 2357)
+++ branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2004-09-15 22:03:53 UTC (rev 2358)
@@ -47,6 +47,8 @@
 	PyErr_SetObject(ntstatus_exception, obj);
 }
 
+/* Conversion functions for scalar types */
+
 uint8 uint8_from_python(PyObject *obj)
 {
 	return (uint8)PyInt_AsLong(obj);
@@ -117,12 +119,33 @@
 	return PyLong_FromLong(obj);
 }
 
-struct policy_handle *policy_handle_from_python(PyObject *obj)
+/* Conversion functions for types that we don't want generated automatically.
+   This is mostly security realted stuff in misc.idl */
+
+char *string_ptr_from_python(PyObject *obj)
 {
+	if (obj == Py_None)
+		return NULL;
+
+	return PyString_AsString(obj);
+}
+
+PyObject *string_ptr_to_python(char *obj)
+{
+	if (obj == NULL) {
+		Py_INCREF(Py_None);
+		return Py_None;
+	}
+
+	return PyString_FromString(obj);
+}
+
+struct policy_handle *policy_handle_ptr_from_python(PyObject *obj)
+{
 	return (struct policy_handle *)PyString_AsString(obj);
 }
 
-PyObject *policy_handle_to_python(struct policy_handle *handle)
+PyObject *policy_handle_ptr_to_python(struct policy_handle *handle)
 {
 	return PyString_FromStringAndSize((char *)handle, sizeof(*handle));
 }
@@ -132,12 +155,12 @@
 	return NULL;
 }
 
-PyObject *dom_sid_to_python(struct dom_sid *obj)
+PyObject *dom_sid_ptr_to_python(struct dom_sid *obj)
 {
 	return PyString_FromString("<sid>");
 }
 
-PyObject *security_acl_to_python(struct security_acl *obj)
+PyObject *security_acl_ptr_to_python(struct security_acl *obj)
 {
 	PyObject *result = PyDict_New();
 	PyObject *ace_list;
@@ -159,7 +182,7 @@
 		PyDict_SetItem(ace, PyString_FromString("type"), PyInt_FromLong(obj->aces[i].type));
 		PyDict_SetItem(ace, PyString_FromString("flags"), PyInt_FromLong(obj->aces[i].flags));
 		PyDict_SetItem(ace, PyString_FromString("access_mask"), PyInt_FromLong(obj->aces[i].access_mask));
-		PyDict_SetItem(ace, PyString_FromString("trustee"), dom_sid_to_python(&obj->aces[i].trustee));
+		PyDict_SetItem(ace, PyString_FromString("trustee"), dom_sid_ptr_to_python(&obj->aces[i].trustee));
 
 		PyList_SetItem(ace_list, i, ace);
 	}
@@ -169,7 +192,7 @@
 	return result;
 }
 
-PyObject *security_descriptor_to_python(TALLOC_CTX *mem_ctx, struct security_descriptor *obj)
+PyObject *security_descriptor_ptr_to_python(TALLOC_CTX *mem_ctx, struct security_descriptor *obj)
 {
 	PyObject *result = PyDict_New();
 
@@ -181,11 +204,11 @@
 	PyDict_SetItem(result, PyString_FromString("revision"), PyInt_FromLong(obj->revision));
 	PyDict_SetItem(result, PyString_FromString("type"), PyInt_FromLong(obj->type));
 
-	PyDict_SetItem(result, PyString_FromString("owner_sid"), dom_sid_to_python(obj->owner_sid));
-	PyDict_SetItem(result, PyString_FromString("group_sid"), dom_sid_to_python(obj->group_sid));
+	PyDict_SetItem(result, PyString_FromString("owner_sid"), dom_sid_ptr_to_python(obj->owner_sid));
+	PyDict_SetItem(result, PyString_FromString("group_sid"), dom_sid_ptr_to_python(obj->group_sid));
 
-	PyDict_SetItem(result, PyString_FromString("sacl"), security_acl_to_python(obj->sacl));
-	PyDict_SetItem(result, PyString_FromString("dacl"), security_acl_to_python(obj->dacl));
+	PyDict_SetItem(result, PyString_FromString("sacl"), security_acl_ptr_to_python(obj->sacl));
+	PyDict_SetItem(result, PyString_FromString("dacl"), security_acl_ptr_to_python(obj->dacl));
 
 	return result;
 }
@@ -195,35 +218,21 @@
 	return NULL;
 }
 
-PyObject *dom_sid2_to_python(TALLOC_CTX *mem_ctx, struct dom_sid2 *obj)
+PyObject *dom_sid2_ptr_to_python(TALLOC_CTX *mem_ctx, struct dom_sid2 *obj)
 {
-	return PyDict_New();
+	Py_INCREF(Py_None);
+	return Py_None;
 }
 
-char *string_from_python(PyObject *obj)
-{
-	if (obj == Py_None)
-		return NULL;
-
-	return PyString_AsString(obj);
-}
-
-PyObject *string_to_python(char *obj)
-{
-	if (obj == NULL)
-		return Py_None;
-
-	return PyString_FromString(obj);
-}
-
 struct samr_Password *samr_Password_ptr_from_python(TALLOC_CTX *mem_ctx, PyObject *obj)
 {
 	return NULL;
 }
 
-PyObject *samr_Password_to_python(struct samr_Password *obj)
+PyObject *samr_Password_ptr_to_python(struct samr_Password *obj)
 {
-	return NULL;
+	Py_INCREF(Py_None);
+	return Py_None;
 }
 
 %}



More information about the samba-cvs mailing list