r6592: Throw an IOError exception if tdb_open() or tdb_open_Ex() returns NULL.
authorTim Potter <tpot@samba.org>
Tue, 3 May 2005 07:10:46 +0000 (07:10 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:16:29 +0000 (13:16 -0500)
source/scripting/swig/tdb.i

index b381487ebc4cc0ee03b22fbb008011edd7b86a6e..6c6c4af8cdcca0385fd5e9c4cce2ae943ec7b305 100644 (file)
@@ -103,6 +103,16 @@ typedef int mode_t;
 #define TDB_CONVERT 16 /* convert endian (internal use) */
 #define TDB_BIGENDIAN 32 /* header is big-endian (internal use) */
 
+/* Throw an IOError exception if tdb_open() or tdb_open_ex() returns NULL */
+
+%exception {
+       $action
+       if (result == NULL) {
+               PyErr_SetFromErrno(PyExc_IOError);
+               SWIG_fail;
+       }
+}
+
 %rename tdb_open open;
 TDB_CONTEXT *tdb_open(const char *name, int hash_size, int tdb_flags,
                      int open_flags, mode_t mode);
@@ -113,6 +123,8 @@ TDB_CONTEXT *tdb_open_ex(const char *name, int hash_size, int tdb_flags,
                         tdb_log_func log_fn,
                         tdb_hash_func hash_fn);
 
+%exception;
+
 %rename tdb_reopen reopen;
 int tdb_reopen(TDB_CONTEXT *tdb);