[CalendarServer-changes] [907]
PyOpenDirectory/branches/users/cdaboo/new-schema-892/src/
PythonWrapper.cpp
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jan 3 19:15:42 PST 2007
Revision: 907
http://trac.macosforge.org/projects/calendarserver/changeset/907
Author: cdaboo at apple.com
Date: 2007-01-03 19:15:42 -0800 (Wed, 03 Jan 2007)
Log Message:
-----------
More use of exceptions.
Modified Paths:
--------------
PyOpenDirectory/branches/users/cdaboo/new-schema-892/src/PythonWrapper.cpp
Modified: PyOpenDirectory/branches/users/cdaboo/new-schema-892/src/PythonWrapper.cpp
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/new-schema-892/src/PythonWrapper.cpp 2007-01-03 21:09:58 UTC (rev 906)
+++ PyOpenDirectory/branches/users/cdaboo/new-schema-892/src/PythonWrapper.cpp 2007-01-04 03:15:42 UTC (rev 907)
@@ -276,24 +276,21 @@
*/
extern "C" PyObject* odInit(PyObject* self, PyObject* args)
{
- int result = 0;
-
const char* nodename;
if (!PyArg_ParseTuple(args, "s", &nodename))
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices odInit: could not parse arguments", 0));
return NULL;
-
+ }
+
CDirectoryService* ds = new CDirectoryService(nodename);
- PyObject* pyds;
if (ds != NULL)
{
- pyds = PyCObject_FromVoidPtr(ds, odDestroy);
- result = 1;
+ return PyCObject_FromVoidPtr(ds, odDestroy);
}
- if (result == 1)
- return pyds;
- else
- Py_RETURN_NONE;
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices odInit: could not initialize directory service", 0));
+ return NULL;
}
/*
@@ -314,12 +311,18 @@
const char* recordType;
PyObject* attributes;
if (!PyArg_ParseTuple(args, "OsO", &pyds, &recordType, &attributes) || !PyCObject_Check(pyds) || !PyList_Check(attributes))
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices listAllRecordsWithAttributes: could not parse arguments", 0));
return NULL;
+ }
// Convert list to CFArray of CFString
CFArrayRef cfattributes = PyListToCFArray(attributes);
if (cfattributes == NULL)
- return NULL;
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices listAllRecordsWithAttributes: could not parse attributes list", 0));
+ return NULL;
+ }
CDirectoryService* ds = static_cast<CDirectoryService*>(PyCObject_AsVoidPtr(pyds));
if (ds != NULL)
@@ -334,6 +337,8 @@
return result;
}
}
+ else
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices listAllRecordsWithAttributes: invalid directory service argument", 0));
CFRelease(cfattributes);
return NULL;
@@ -356,7 +361,10 @@
const char* user;
const char* pswd;
if (!PyArg_ParseTuple(args, "Oss", &pyds, &user, &pswd) || !PyCObject_Check(pyds))
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices authenticateUserBasic: could not parse arguments", 0));
return NULL;
+ }
CDirectoryService* ds = static_cast<CDirectoryService*>(PyCObject_AsVoidPtr(pyds));
if (ds != NULL)
@@ -370,6 +378,8 @@
Py_RETURN_FALSE;
}
}
+ else
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices authenticateUserBasic: invalid directory service argument", 0));
return NULL;
}
@@ -395,7 +405,10 @@
const char* response;
const char* method;
if (!PyArg_ParseTuple(args, "Ossss", &pyds, &user, &challenge, &response, &method) || !PyCObject_Check(pyds))
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices authenticateUserDigest: could not parse arguments", 0));
return NULL;
+ }
CDirectoryService* ds = static_cast<CDirectoryService*>(PyCObject_AsVoidPtr(pyds));
if (ds != NULL)
@@ -409,6 +422,8 @@
Py_RETURN_FALSE;
}
}
+ else
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices authenticateUserDigest: invalid directory service argument", 0));
return NULL;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070103/d2e01ebc/attachment.html
More information about the calendarserver-changes
mailing list