Merge v4.0-test
[metze/samba/wip.git] / source / lib / ldb / ldb_wrap.c
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 1.3.33
4  * 
5  * This file is not intended to be easily readable and contains a number of 
6  * coding conventions designed to improve portability and efficiency. Do not make
7  * changes to this file unless you know what you are doing--modify the SWIG 
8  * interface file instead. 
9  * ----------------------------------------------------------------------------- */
10
11 #define SWIGPYTHON
12 #define SWIG_PYTHON_NO_BUILD_NONE
13 /* -----------------------------------------------------------------------------
14  *  This section contains generic SWIG labels for method/variable
15  *  declarations/attributes, and other compiler dependent labels.
16  * ----------------------------------------------------------------------------- */
17
18 /* template workaround for compilers that cannot correctly implement the C++ standard */
19 #ifndef SWIGTEMPLATEDISAMBIGUATOR
20 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
21 #  define SWIGTEMPLATEDISAMBIGUATOR template
22 # elif defined(__HP_aCC)
23 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
24 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
25 #  define SWIGTEMPLATEDISAMBIGUATOR template
26 # else
27 #  define SWIGTEMPLATEDISAMBIGUATOR
28 # endif
29 #endif
30
31 /* inline attribute */
32 #ifndef SWIGINLINE
33 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
34 #   define SWIGINLINE inline
35 # else
36 #   define SWIGINLINE
37 # endif
38 #endif
39
40 /* attribute recognised by some compilers to avoid 'unused' warnings */
41 #ifndef SWIGUNUSED
42 # if defined(__GNUC__)
43 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
44 #     define SWIGUNUSED __attribute__ ((__unused__)) 
45 #   else
46 #     define SWIGUNUSED
47 #   endif
48 # elif defined(__ICC)
49 #   define SWIGUNUSED __attribute__ ((__unused__)) 
50 # else
51 #   define SWIGUNUSED 
52 # endif
53 #endif
54
55 #ifndef SWIGUNUSEDPARM
56 # ifdef __cplusplus
57 #   define SWIGUNUSEDPARM(p)
58 # else
59 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
60 # endif
61 #endif
62
63 /* internal SWIG method */
64 #ifndef SWIGINTERN
65 # define SWIGINTERN static SWIGUNUSED
66 #endif
67
68 /* internal inline SWIG method */
69 #ifndef SWIGINTERNINLINE
70 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
71 #endif
72
73 /* exporting methods */
74 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
75 #  ifndef GCC_HASCLASSVISIBILITY
76 #    define GCC_HASCLASSVISIBILITY
77 #  endif
78 #endif
79
80 #ifndef SWIGEXPORT
81 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
82 #   if defined(STATIC_LINKED)
83 #     define SWIGEXPORT
84 #   else
85 #     define SWIGEXPORT __declspec(dllexport)
86 #   endif
87 # else
88 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
89 #     define SWIGEXPORT __attribute__ ((visibility("default")))
90 #   else
91 #     define SWIGEXPORT
92 #   endif
93 # endif
94 #endif
95
96 /* calling conventions for Windows */
97 #ifndef SWIGSTDCALL
98 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
99 #   define SWIGSTDCALL __stdcall
100 # else
101 #   define SWIGSTDCALL
102 # endif 
103 #endif
104
105 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
106 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
107 # define _CRT_SECURE_NO_DEPRECATE
108 #endif
109
110 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
111 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
112 # define _SCL_SECURE_NO_DEPRECATE
113 #endif
114
115
116
117 /* Python.h has to appear first */
118 #include <Python.h>
119
120 /* -----------------------------------------------------------------------------
121  * swigrun.swg
122  *
123  * This file contains generic CAPI SWIG runtime support for pointer
124  * type checking.
125  * ----------------------------------------------------------------------------- */
126
127 /* This should only be incremented when either the layout of swig_type_info changes,
128    or for whatever reason, the runtime changes incompatibly */
129 #define SWIG_RUNTIME_VERSION "3"
130
131 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
132 #ifdef SWIG_TYPE_TABLE
133 # define SWIG_QUOTE_STRING(x) #x
134 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
135 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
136 #else
137 # define SWIG_TYPE_TABLE_NAME
138 #endif
139
140 /*
141   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
142   creating a static or dynamic library from the swig runtime code.
143   In 99.9% of the cases, swig just needs to declare them as 'static'.
144   
145   But only do this if is strictly necessary, ie, if you have problems
146   with your compiler or so.
147 */
148
149 #ifndef SWIGRUNTIME
150 # define SWIGRUNTIME SWIGINTERN
151 #endif
152
153 #ifndef SWIGRUNTIMEINLINE
154 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
155 #endif
156
157 /*  Generic buffer size */
158 #ifndef SWIG_BUFFER_SIZE
159 # define SWIG_BUFFER_SIZE 1024
160 #endif
161
162 /* Flags for pointer conversions */
163 #define SWIG_POINTER_DISOWN        0x1
164
165 /* Flags for new pointer objects */
166 #define SWIG_POINTER_OWN           0x1
167
168
169 /* 
170    Flags/methods for returning states.
171    
172    The swig conversion methods, as ConvertPtr, return and integer 
173    that tells if the conversion was successful or not. And if not,
174    an error code can be returned (see swigerrors.swg for the codes).
175    
176    Use the following macros/flags to set or process the returning
177    states.
178    
179    In old swig versions, you usually write code as:
180
181      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
182        // success code
183      } else {
184        //fail code
185      }
186
187    Now you can be more explicit as:
188
189     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
190     if (SWIG_IsOK(res)) {
191       // success code
192     } else {
193       // fail code
194     }
195
196    that seems to be the same, but now you can also do
197
198     Type *ptr;
199     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
200     if (SWIG_IsOK(res)) {
201       // success code
202       if (SWIG_IsNewObj(res) {
203         ...
204         delete *ptr;
205       } else {
206         ...
207       }
208     } else {
209       // fail code
210     }
211     
212    I.e., now SWIG_ConvertPtr can return new objects and you can
213    identify the case and take care of the deallocation. Of course that
214    requires also to SWIG_ConvertPtr to return new result values, as
215
216       int SWIG_ConvertPtr(obj, ptr,...) {         
217         if (<obj is ok>) {                             
218           if (<need new object>) {                     
219             *ptr = <ptr to new allocated object>; 
220             return SWIG_NEWOBJ;                
221           } else {                                     
222             *ptr = <ptr to old object>;        
223             return SWIG_OLDOBJ;                
224           }                                    
225         } else {                                       
226           return SWIG_BADOBJ;                  
227         }                                              
228       }
229
230    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
231    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
232    swig errors code.
233
234    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
235    allows to return the 'cast rank', for example, if you have this
236
237        int food(double)
238        int fooi(int);
239
240    and you call
241  
242       food(1)   // cast rank '1'  (1 -> 1.0)
243       fooi(1)   // cast rank '0'
244
245    just use the SWIG_AddCast()/SWIG_CheckState()
246
247
248  */
249 #define SWIG_OK                    (0) 
250 #define SWIG_ERROR                 (-1)
251 #define SWIG_IsOK(r)               (r >= 0)
252 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
253
254 /* The CastRankLimit says how many bits are used for the cast rank */
255 #define SWIG_CASTRANKLIMIT         (1 << 8)
256 /* The NewMask denotes the object was created (using new/malloc) */
257 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
258 /* The TmpMask is for in/out typemaps that use temporal objects */
259 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
260 /* Simple returning values */
261 #define SWIG_BADOBJ                (SWIG_ERROR)
262 #define SWIG_OLDOBJ                (SWIG_OK)
263 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
264 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
265 /* Check, add and del mask methods */
266 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
267 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
268 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
269 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
270 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
271 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
272
273
274 /* Cast-Rank Mode */
275 #if defined(SWIG_CASTRANK_MODE)
276 #  ifndef SWIG_TypeRank
277 #    define SWIG_TypeRank             unsigned long
278 #  endif
279 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
280 #    define SWIG_MAXCASTRANK          (2)
281 #  endif
282 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
283 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
284 SWIGINTERNINLINE int SWIG_AddCast(int r) { 
285   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
286 }
287 SWIGINTERNINLINE int SWIG_CheckState(int r) { 
288   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
289 }
290 #else /* no cast-rank mode */
291 #  define SWIG_AddCast
292 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
293 #endif
294
295
296
297
298 #include <string.h>
299
300 #ifdef __cplusplus
301 extern "C" {
302 #endif
303
304 typedef void *(*swig_converter_func)(void *);
305 typedef struct swig_type_info *(*swig_dycast_func)(void **);
306
307 /* Structure to store inforomation on one type */
308 typedef struct swig_type_info {
309   const char             *name;                 /* mangled name of this type */
310   const char             *str;                  /* human readable name of this type */
311   swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
312   struct swig_cast_info  *cast;                 /* linked list of types that can cast into this type */
313   void                   *clientdata;           /* language specific type data */
314   int                    owndata;               /* flag if the structure owns the clientdata */
315 } swig_type_info;
316
317 /* Structure to store a type and conversion function used for casting */
318 typedef struct swig_cast_info {
319   swig_type_info         *type;                 /* pointer to type that is equivalent to this type */
320   swig_converter_func     converter;            /* function to cast the void pointers */
321   struct swig_cast_info  *next;                 /* pointer to next cast in linked list */
322   struct swig_cast_info  *prev;                 /* pointer to the previous cast */
323 } swig_cast_info;
324
325 /* Structure used to store module information
326  * Each module generates one structure like this, and the runtime collects
327  * all of these structures and stores them in a circularly linked list.*/
328 typedef struct swig_module_info {
329   swig_type_info         **types;               /* Array of pointers to swig_type_info structures that are in this module */
330   size_t                 size;                  /* Number of types in this module */
331   struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
332   swig_type_info         **type_initial;        /* Array of initially generated type structures */
333   swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
334   void                    *clientdata;          /* Language specific module data */
335 } swig_module_info;
336
337 /* 
338   Compare two type names skipping the space characters, therefore
339   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
340
341   Return 0 when the two name types are equivalent, as in
342   strncmp, but skipping ' '.
343 */
344 SWIGRUNTIME int
345 SWIG_TypeNameComp(const char *f1, const char *l1,
346                   const char *f2, const char *l2) {
347   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
348     while ((*f1 == ' ') && (f1 != l1)) ++f1;
349     while ((*f2 == ' ') && (f2 != l2)) ++f2;
350     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
351   }
352   return (int)((l1 - f1) - (l2 - f2));
353 }
354
355 /*
356   Check type equivalence in a name list like <name1>|<name2>|...
357   Return 0 if not equal, 1 if equal
358 */
359 SWIGRUNTIME int
360 SWIG_TypeEquiv(const char *nb, const char *tb) {
361   int equiv = 0;
362   const char* te = tb + strlen(tb);
363   const char* ne = nb;
364   while (!equiv && *ne) {
365     for (nb = ne; *ne; ++ne) {
366       if (*ne == '|') break;
367     }
368     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
369     if (*ne) ++ne;
370   }
371   return equiv;
372 }
373
374 /*
375   Check type equivalence in a name list like <name1>|<name2>|...
376   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
377 */
378 SWIGRUNTIME int
379 SWIG_TypeCompare(const char *nb, const char *tb) {
380   int equiv = 0;
381   const char* te = tb + strlen(tb);
382   const char* ne = nb;
383   while (!equiv && *ne) {
384     for (nb = ne; *ne; ++ne) {
385       if (*ne == '|') break;
386     }
387     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
388     if (*ne) ++ne;
389   }
390   return equiv;
391 }
392
393
394 /* think of this as a c++ template<> or a scheme macro */
395 #define SWIG_TypeCheck_Template(comparison, ty)         \
396   if (ty) {                                             \
397     swig_cast_info *iter = ty->cast;                    \
398     while (iter) {                                      \
399       if (comparison) {                                 \
400         if (iter == ty->cast) return iter;              \
401         /* Move iter to the top of the linked list */   \
402         iter->prev->next = iter->next;                  \
403         if (iter->next)                                 \
404           iter->next->prev = iter->prev;                \
405         iter->next = ty->cast;                          \
406         iter->prev = 0;                                 \
407         if (ty->cast) ty->cast->prev = iter;            \
408         ty->cast = iter;                                \
409         return iter;                                    \
410       }                                                 \
411       iter = iter->next;                                \
412     }                                                   \
413   }                                                     \
414   return 0
415
416 /*
417   Check the typename
418 */
419 SWIGRUNTIME swig_cast_info *
420 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
421   SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
422 }
423
424 /* Same as previous function, except strcmp is replaced with a pointer comparison */
425 SWIGRUNTIME swig_cast_info *
426 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
427   SWIG_TypeCheck_Template(iter->type == from, into);
428 }
429
430 /*
431   Cast a pointer up an inheritance hierarchy
432 */
433 SWIGRUNTIMEINLINE void *
434 SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
435   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
436 }
437
438 /* 
439    Dynamic pointer casting. Down an inheritance hierarchy
440 */
441 SWIGRUNTIME swig_type_info *
442 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
443   swig_type_info *lastty = ty;
444   if (!ty || !ty->dcast) return ty;
445   while (ty && (ty->dcast)) {
446     ty = (*ty->dcast)(ptr);
447     if (ty) lastty = ty;
448   }
449   return lastty;
450 }
451
452 /*
453   Return the name associated with this type
454 */
455 SWIGRUNTIMEINLINE const char *
456 SWIG_TypeName(const swig_type_info *ty) {
457   return ty->name;
458 }
459
460 /*
461   Return the pretty name associated with this type,
462   that is an unmangled type name in a form presentable to the user.
463 */
464 SWIGRUNTIME const char *
465 SWIG_TypePrettyName(const swig_type_info *type) {
466   /* The "str" field contains the equivalent pretty names of the
467      type, separated by vertical-bar characters.  We choose
468      to print the last name, as it is often (?) the most
469      specific. */
470   if (!type) return NULL;
471   if (type->str != NULL) {
472     const char *last_name = type->str;
473     const char *s;
474     for (s = type->str; *s; s++)
475       if (*s == '|') last_name = s+1;
476     return last_name;
477   }
478   else
479     return type->name;
480 }
481
482 /* 
483    Set the clientdata field for a type
484 */
485 SWIGRUNTIME void
486 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
487   swig_cast_info *cast = ti->cast;
488   /* if (ti->clientdata == clientdata) return; */
489   ti->clientdata = clientdata;
490   
491   while (cast) {
492     if (!cast->converter) {
493       swig_type_info *tc = cast->type;
494       if (!tc->clientdata) {
495         SWIG_TypeClientData(tc, clientdata);
496       }
497     }    
498     cast = cast->next;
499   }
500 }
501 SWIGRUNTIME void
502 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
503   SWIG_TypeClientData(ti, clientdata);
504   ti->owndata = 1;
505 }
506   
507 /*
508   Search for a swig_type_info structure only by mangled name
509   Search is a O(log #types)
510   
511   We start searching at module start, and finish searching when start == end.  
512   Note: if start == end at the beginning of the function, we go all the way around
513   the circular list.
514 */
515 SWIGRUNTIME swig_type_info *
516 SWIG_MangledTypeQueryModule(swig_module_info *start, 
517                             swig_module_info *end, 
518                             const char *name) {
519   swig_module_info *iter = start;
520   do {
521     if (iter->size) {
522       register size_t l = 0;
523       register size_t r = iter->size - 1;
524       do {
525         /* since l+r >= 0, we can (>> 1) instead (/ 2) */
526         register size_t i = (l + r) >> 1; 
527         const char *iname = iter->types[i]->name;
528         if (iname) {
529           register int compare = strcmp(name, iname);
530           if (compare == 0) {       
531             return iter->types[i];
532           } else if (compare < 0) {
533             if (i) {
534               r = i - 1;
535             } else {
536               break;
537             }
538           } else if (compare > 0) {
539             l = i + 1;
540           }
541         } else {
542           break; /* should never happen */
543         }
544       } while (l <= r);
545     }
546     iter = iter->next;
547   } while (iter != end);
548   return 0;
549 }
550
551 /*
552   Search for a swig_type_info structure for either a mangled name or a human readable name.
553   It first searches the mangled names of the types, which is a O(log #types)
554   If a type is not found it then searches the human readable names, which is O(#types).
555   
556   We start searching at module start, and finish searching when start == end.  
557   Note: if start == end at the beginning of the function, we go all the way around
558   the circular list.
559 */
560 SWIGRUNTIME swig_type_info *
561 SWIG_TypeQueryModule(swig_module_info *start, 
562                      swig_module_info *end, 
563                      const char *name) {
564   /* STEP 1: Search the name field using binary search */
565   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
566   if (ret) {
567     return ret;
568   } else {
569     /* STEP 2: If the type hasn't been found, do a complete search
570        of the str field (the human readable name) */
571     swig_module_info *iter = start;
572     do {
573       register size_t i = 0;
574       for (; i < iter->size; ++i) {
575         if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
576           return iter->types[i];
577       }
578       iter = iter->next;
579     } while (iter != end);
580   }
581   
582   /* neither found a match */
583   return 0;
584 }
585
586 /* 
587    Pack binary data into a string
588 */
589 SWIGRUNTIME char *
590 SWIG_PackData(char *c, void *ptr, size_t sz) {
591   static const char hex[17] = "0123456789abcdef";
592   register const unsigned char *u = (unsigned char *) ptr;
593   register const unsigned char *eu =  u + sz;
594   for (; u != eu; ++u) {
595     register unsigned char uu = *u;
596     *(c++) = hex[(uu & 0xf0) >> 4];
597     *(c++) = hex[uu & 0xf];
598   }
599   return c;
600 }
601
602 /* 
603    Unpack binary data from a string
604 */
605 SWIGRUNTIME const char *
606 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
607   register unsigned char *u = (unsigned char *) ptr;
608   register const unsigned char *eu = u + sz;
609   for (; u != eu; ++u) {
610     register char d = *(c++);
611     register unsigned char uu;
612     if ((d >= '0') && (d <= '9'))
613       uu = ((d - '0') << 4);
614     else if ((d >= 'a') && (d <= 'f'))
615       uu = ((d - ('a'-10)) << 4);
616     else 
617       return (char *) 0;
618     d = *(c++);
619     if ((d >= '0') && (d <= '9'))
620       uu |= (d - '0');
621     else if ((d >= 'a') && (d <= 'f'))
622       uu |= (d - ('a'-10));
623     else 
624       return (char *) 0;
625     *u = uu;
626   }
627   return c;
628 }
629
630 /* 
631    Pack 'void *' into a string buffer.
632 */
633 SWIGRUNTIME char *
634 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
635   char *r = buff;
636   if ((2*sizeof(void *) + 2) > bsz) return 0;
637   *(r++) = '_';
638   r = SWIG_PackData(r,&ptr,sizeof(void *));
639   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
640   strcpy(r,name);
641   return buff;
642 }
643
644 SWIGRUNTIME const char *
645 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
646   if (*c != '_') {
647     if (strcmp(c,"NULL") == 0) {
648       *ptr = (void *) 0;
649       return name;
650     } else {
651       return 0;
652     }
653   }
654   return SWIG_UnpackData(++c,ptr,sizeof(void *));
655 }
656
657 SWIGRUNTIME char *
658 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
659   char *r = buff;
660   size_t lname = (name ? strlen(name) : 0);
661   if ((2*sz + 2 + lname) > bsz) return 0;
662   *(r++) = '_';
663   r = SWIG_PackData(r,ptr,sz);
664   if (lname) {
665     strncpy(r,name,lname+1);
666   } else {
667     *r = 0;
668   }
669   return buff;
670 }
671
672 SWIGRUNTIME const char *
673 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
674   if (*c != '_') {
675     if (strcmp(c,"NULL") == 0) {
676       memset(ptr,0,sz);
677       return name;
678     } else {
679       return 0;
680     }
681   }
682   return SWIG_UnpackData(++c,ptr,sz);
683 }
684
685 #ifdef __cplusplus
686 }
687 #endif
688
689 /*  Errors in SWIG */
690 #define  SWIG_UnknownError         -1 
691 #define  SWIG_IOError              -2 
692 #define  SWIG_RuntimeError         -3 
693 #define  SWIG_IndexError           -4 
694 #define  SWIG_TypeError            -5 
695 #define  SWIG_DivisionByZero       -6 
696 #define  SWIG_OverflowError        -7 
697 #define  SWIG_SyntaxError          -8 
698 #define  SWIG_ValueError           -9 
699 #define  SWIG_SystemError          -10
700 #define  SWIG_AttributeError       -11
701 #define  SWIG_MemoryError          -12 
702 #define  SWIG_NullReferenceError   -13
703
704
705
706
707 /* Add PyOS_snprintf for old Pythons */
708 #if PY_VERSION_HEX < 0x02020000
709 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
710 #  define PyOS_snprintf _snprintf
711 # else
712 #  define PyOS_snprintf snprintf
713 # endif
714 #endif
715
716 /* A crude PyString_FromFormat implementation for old Pythons */
717 #if PY_VERSION_HEX < 0x02020000
718
719 #ifndef SWIG_PYBUFFER_SIZE
720 # define SWIG_PYBUFFER_SIZE 1024
721 #endif
722
723 static PyObject *
724 PyString_FromFormat(const char *fmt, ...) {
725   va_list ap;
726   char buf[SWIG_PYBUFFER_SIZE * 2];
727   int res;
728   va_start(ap, fmt);
729   res = vsnprintf(buf, sizeof(buf), fmt, ap);
730   va_end(ap);
731   return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
732 }
733 #endif
734
735 /* Add PyObject_Del for old Pythons */
736 #if PY_VERSION_HEX < 0x01060000
737 # define PyObject_Del(op) PyMem_DEL((op))
738 #endif
739 #ifndef PyObject_DEL
740 # define PyObject_DEL PyObject_Del
741 #endif
742
743 /* A crude PyExc_StopIteration exception for old Pythons */
744 #if PY_VERSION_HEX < 0x02020000
745 # ifndef PyExc_StopIteration
746 #  define PyExc_StopIteration PyExc_RuntimeError
747 # endif
748 # ifndef PyObject_GenericGetAttr
749 #  define PyObject_GenericGetAttr 0
750 # endif
751 #endif
752 /* Py_NotImplemented is defined in 2.1 and up. */
753 #if PY_VERSION_HEX < 0x02010000
754 # ifndef Py_NotImplemented
755 #  define Py_NotImplemented PyExc_RuntimeError
756 # endif
757 #endif
758
759
760 /* A crude PyString_AsStringAndSize implementation for old Pythons */
761 #if PY_VERSION_HEX < 0x02010000
762 # ifndef PyString_AsStringAndSize
763 #  define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
764 # endif
765 #endif
766
767 /* PySequence_Size for old Pythons */
768 #if PY_VERSION_HEX < 0x02000000
769 # ifndef PySequence_Size
770 #  define PySequence_Size PySequence_Length
771 # endif
772 #endif
773
774
775 /* PyBool_FromLong for old Pythons */
776 #if PY_VERSION_HEX < 0x02030000
777 static
778 PyObject *PyBool_FromLong(long ok)
779 {
780   PyObject *result = ok ? Py_True : Py_False;
781   Py_INCREF(result);
782   return result;
783 }
784 #endif
785
786 /* Py_ssize_t for old Pythons */
787 /* This code is as recommended by: */
788 /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
789 #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
790 typedef int Py_ssize_t;
791 # define PY_SSIZE_T_MAX INT_MAX
792 # define PY_SSIZE_T_MIN INT_MIN
793 #endif
794
795 /* -----------------------------------------------------------------------------
796  * error manipulation
797  * ----------------------------------------------------------------------------- */
798
799 SWIGRUNTIME PyObject*
800 SWIG_Python_ErrorType(int code) {
801   PyObject* type = 0;
802   switch(code) {
803   case SWIG_MemoryError:
804     type = PyExc_MemoryError;
805     break;
806   case SWIG_IOError:
807     type = PyExc_IOError;
808     break;
809   case SWIG_RuntimeError:
810     type = PyExc_RuntimeError;
811     break;
812   case SWIG_IndexError:
813     type = PyExc_IndexError;
814     break;
815   case SWIG_TypeError:
816     type = PyExc_TypeError;
817     break;
818   case SWIG_DivisionByZero:
819     type = PyExc_ZeroDivisionError;
820     break;
821   case SWIG_OverflowError:
822     type = PyExc_OverflowError;
823     break;
824   case SWIG_SyntaxError:
825     type = PyExc_SyntaxError;
826     break;
827   case SWIG_ValueError:
828     type = PyExc_ValueError;
829     break;
830   case SWIG_SystemError:
831     type = PyExc_SystemError;
832     break;
833   case SWIG_AttributeError:
834     type = PyExc_AttributeError;
835     break;
836   default:
837     type = PyExc_RuntimeError;
838   }
839   return type;
840 }
841
842
843 SWIGRUNTIME void
844 SWIG_Python_AddErrorMsg(const char* mesg)
845 {
846   PyObject *type = 0;
847   PyObject *value = 0;
848   PyObject *traceback = 0;
849
850   if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
851   if (value) {
852     PyObject *old_str = PyObject_Str(value);
853     PyErr_Clear();
854     Py_XINCREF(type);
855     PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
856     Py_DECREF(old_str);
857     Py_DECREF(value);
858   } else {
859     PyErr_Format(PyExc_RuntimeError, mesg);
860   }
861 }
862
863
864
865 #if defined(SWIG_PYTHON_NO_THREADS)
866 #  if defined(SWIG_PYTHON_THREADS)
867 #    undef SWIG_PYTHON_THREADS
868 #  endif
869 #endif
870 #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
871 #  if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
872 #    if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
873 #      define SWIG_PYTHON_USE_GIL
874 #    endif
875 #  endif
876 #  if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
877 #    ifndef SWIG_PYTHON_INITIALIZE_THREADS
878 #     define SWIG_PYTHON_INITIALIZE_THREADS  PyEval_InitThreads() 
879 #    endif
880 #    ifdef __cplusplus /* C++ code */
881        class SWIG_Python_Thread_Block {
882          bool status;
883          PyGILState_STATE state;
884        public:
885          void end() { if (status) { PyGILState_Release(state); status = false;} }
886          SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
887          ~SWIG_Python_Thread_Block() { end(); }
888        };
889        class SWIG_Python_Thread_Allow {
890          bool status;
891          PyThreadState *save;
892        public:
893          void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
894          SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
895          ~SWIG_Python_Thread_Allow() { end(); }
896        };
897 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   SWIG_Python_Thread_Block _swig_thread_block
898 #      define SWIG_PYTHON_THREAD_END_BLOCK     _swig_thread_block.end()
899 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   SWIG_Python_Thread_Allow _swig_thread_allow
900 #      define SWIG_PYTHON_THREAD_END_ALLOW     _swig_thread_allow.end()
901 #    else /* C code */
902 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
903 #      define SWIG_PYTHON_THREAD_END_BLOCK     PyGILState_Release(_swig_thread_block)
904 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   PyThreadState *_swig_thread_allow = PyEval_SaveThread()
905 #      define SWIG_PYTHON_THREAD_END_ALLOW     PyEval_RestoreThread(_swig_thread_allow)
906 #    endif
907 #  else /* Old thread way, not implemented, user must provide it */
908 #    if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
909 #      define SWIG_PYTHON_INITIALIZE_THREADS
910 #    endif
911 #    if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
912 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK
913 #    endif
914 #    if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
915 #      define SWIG_PYTHON_THREAD_END_BLOCK
916 #    endif
917 #    if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
918 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW
919 #    endif
920 #    if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
921 #      define SWIG_PYTHON_THREAD_END_ALLOW
922 #    endif
923 #  endif
924 #else /* No thread support */
925 #  define SWIG_PYTHON_INITIALIZE_THREADS
926 #  define SWIG_PYTHON_THREAD_BEGIN_BLOCK
927 #  define SWIG_PYTHON_THREAD_END_BLOCK
928 #  define SWIG_PYTHON_THREAD_BEGIN_ALLOW
929 #  define SWIG_PYTHON_THREAD_END_ALLOW
930 #endif
931
932 /* -----------------------------------------------------------------------------
933  * Python API portion that goes into the runtime
934  * ----------------------------------------------------------------------------- */
935
936 #ifdef __cplusplus
937 extern "C" {
938 #if 0
939 } /* cc-mode */
940 #endif
941 #endif
942
943 /* -----------------------------------------------------------------------------
944  * Constant declarations
945  * ----------------------------------------------------------------------------- */
946
947 /* Constant Types */
948 #define SWIG_PY_POINTER 4
949 #define SWIG_PY_BINARY  5
950
951 /* Constant information structure */
952 typedef struct swig_const_info {
953   int type;
954   char *name;
955   long lvalue;
956   double dvalue;
957   void   *pvalue;
958   swig_type_info **ptype;
959 } swig_const_info;
960
961 #ifdef __cplusplus
962 #if 0
963 { /* cc-mode */
964 #endif
965 }
966 #endif
967
968
969 /* -----------------------------------------------------------------------------
970  * See the LICENSE file for information on copyright, usage and redistribution
971  * of SWIG, and the README file for authors - http://www.swig.org/release.html.
972  *
973  * pyrun.swg
974  *
975  * This file contains the runtime support for Python modules
976  * and includes code for managing global variables and pointer
977  * type checking.
978  *
979  * ----------------------------------------------------------------------------- */
980
981 /* Common SWIG API */
982
983 /* for raw pointers */
984 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
985 #define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
986 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
987 #define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
988 #define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
989 #define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
990 #define swig_owntype                                    int
991
992 /* for raw packed data */
993 #define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
994 #define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
995
996 /* for class or struct pointers */
997 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
998 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
999
1000 /* for C or C++ function pointers */
1001 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1002 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
1003
1004 /* for C++ member pointers, ie, member methods */
1005 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1006 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
1007
1008
1009 /* Runtime API */
1010
1011 #define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule()
1012 #define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
1013 #define SWIG_NewClientData(obj)                         PySwigClientData_New(obj)
1014
1015 #define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj                            
1016 #define SWIG_SetErrorMsg                                SWIG_Python_SetErrorMsg                            
1017 #define SWIG_ErrorType(code)                            SWIG_Python_ErrorType(code)                        
1018 #define SWIG_Error(code, msg)                           SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) 
1019 #define SWIG_fail                                       goto fail                                          
1020
1021
1022 /* Runtime API implementation */
1023
1024 /* Error manipulation */
1025
1026 SWIGINTERN void 
1027 SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
1028   SWIG_PYTHON_THREAD_BEGIN_BLOCK; 
1029   PyErr_SetObject(errtype, obj);
1030   Py_DECREF(obj);
1031   SWIG_PYTHON_THREAD_END_BLOCK;
1032 }
1033
1034 SWIGINTERN void 
1035 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
1036   SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1037   PyErr_SetString(errtype, (char *) msg);
1038   SWIG_PYTHON_THREAD_END_BLOCK;
1039 }
1040
1041 #define SWIG_Python_Raise(obj, type, desc)  SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1042
1043 /* Set a constant value */
1044
1045 SWIGINTERN void
1046 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
1047   PyDict_SetItemString(d, (char*) name, obj);
1048   Py_DECREF(obj);                            
1049 }
1050
1051 /* Append a value to the result obj */
1052
1053 SWIGINTERN PyObject*
1054 SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
1055 #if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
1056   if (!result) {
1057     result = obj;
1058   } else if (result == Py_None) {
1059     Py_DECREF(result);
1060     result = obj;
1061   } else {
1062     if (!PyList_Check(result)) {
1063       PyObject *o2 = result;
1064       result = PyList_New(1);
1065       PyList_SetItem(result, 0, o2);
1066     }
1067     PyList_Append(result,obj);
1068     Py_DECREF(obj);
1069   }
1070   return result;
1071 #else
1072   PyObject*   o2;
1073   PyObject*   o3;
1074   if (!result) {
1075     result = obj;
1076   } else if (result == Py_None) {
1077     Py_DECREF(result);
1078     result = obj;
1079   } else {
1080     if (!PyTuple_Check(result)) {
1081       o2 = result;
1082       result = PyTuple_New(1);
1083       PyTuple_SET_ITEM(result, 0, o2);
1084     }
1085     o3 = PyTuple_New(1);
1086     PyTuple_SET_ITEM(o3, 0, obj);
1087     o2 = result;
1088     result = PySequence_Concat(o2, o3);
1089     Py_DECREF(o2);
1090     Py_DECREF(o3);
1091   }
1092   return result;
1093 #endif
1094 }
1095
1096 /* Unpack the argument tuple */
1097
1098 SWIGINTERN int
1099 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
1100 {
1101   if (!args) {
1102     if (!min && !max) {
1103       return 1;
1104     } else {
1105       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", 
1106                    name, (min == max ? "" : "at least "), (int)min);
1107       return 0;
1108     }
1109   }  
1110   if (!PyTuple_Check(args)) {
1111     PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1112     return 0;
1113   } else {
1114     register Py_ssize_t l = PyTuple_GET_SIZE(args);
1115     if (l < min) {
1116       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
1117                    name, (min == max ? "" : "at least "), (int)min, (int)l);
1118       return 0;
1119     } else if (l > max) {
1120       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
1121                    name, (min == max ? "" : "at most "), (int)max, (int)l);
1122       return 0;
1123     } else {
1124       register int i;
1125       for (i = 0; i < l; ++i) {
1126         objs[i] = PyTuple_GET_ITEM(args, i);
1127       }
1128       for (; l < max; ++l) {
1129         objs[l] = 0;
1130       }
1131       return i + 1;
1132     }    
1133   }
1134 }
1135
1136 /* A functor is a function object with one single object argument */
1137 #if PY_VERSION_HEX >= 0x02020000
1138 #define SWIG_Python_CallFunctor(functor, obj)           PyObject_CallFunctionObjArgs(functor, obj, NULL);
1139 #else
1140 #define SWIG_Python_CallFunctor(functor, obj)           PyObject_CallFunction(functor, "O", obj);
1141 #endif
1142
1143 /*
1144   Helper for static pointer initialization for both C and C++ code, for example
1145   static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1146 */
1147 #ifdef __cplusplus
1148 #define SWIG_STATIC_POINTER(var)  var
1149 #else
1150 #define SWIG_STATIC_POINTER(var)  var = 0; if (!var) var
1151 #endif
1152
1153 /* -----------------------------------------------------------------------------
1154  * Pointer declarations
1155  * ----------------------------------------------------------------------------- */
1156
1157 /* Flags for new pointer objects */
1158 #define SWIG_POINTER_NOSHADOW       (SWIG_POINTER_OWN      << 1)
1159 #define SWIG_POINTER_NEW            (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1160
1161 #define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
1162
1163 #ifdef __cplusplus
1164 extern "C" {
1165 #if 0
1166 } /* cc-mode */
1167 #endif
1168 #endif
1169
1170 /*  How to access Py_None */
1171 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
1172 #  ifndef SWIG_PYTHON_NO_BUILD_NONE
1173 #    ifndef SWIG_PYTHON_BUILD_NONE
1174 #      define SWIG_PYTHON_BUILD_NONE
1175 #    endif
1176 #  endif
1177 #endif
1178
1179 #ifdef SWIG_PYTHON_BUILD_NONE
1180 #  ifdef Py_None
1181 #   undef Py_None
1182 #   define Py_None SWIG_Py_None()
1183 #  endif
1184 SWIGRUNTIMEINLINE PyObject * 
1185 _SWIG_Py_None(void)
1186 {
1187   PyObject *none = Py_BuildValue((char*)"");
1188   Py_DECREF(none);
1189   return none;
1190 }
1191 SWIGRUNTIME PyObject * 
1192 SWIG_Py_None(void)
1193 {
1194   static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
1195   return none;
1196 }
1197 #endif
1198
1199 /* The python void return value */
1200
1201 SWIGRUNTIMEINLINE PyObject * 
1202 SWIG_Py_Void(void)
1203 {
1204   PyObject *none = Py_None;
1205   Py_INCREF(none);
1206   return none;
1207 }
1208
1209 /* PySwigClientData */
1210
1211 typedef struct {
1212   PyObject *klass;
1213   PyObject *newraw;
1214   PyObject *newargs;
1215   PyObject *destroy;
1216   int delargs;
1217   int implicitconv;
1218 } PySwigClientData;
1219
1220 SWIGRUNTIMEINLINE int 
1221 SWIG_Python_CheckImplicit(swig_type_info *ty)
1222 {
1223   PySwigClientData *data = (PySwigClientData *)ty->clientdata;
1224   return data ? data->implicitconv : 0;
1225 }
1226
1227 SWIGRUNTIMEINLINE PyObject *
1228 SWIG_Python_ExceptionType(swig_type_info *desc) {
1229   PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0;
1230   PyObject *klass = data ? data->klass : 0;
1231   return (klass ? klass : PyExc_RuntimeError);
1232 }
1233
1234
1235 SWIGRUNTIME PySwigClientData * 
1236 PySwigClientData_New(PyObject* obj)
1237 {
1238   if (!obj) {
1239     return 0;
1240   } else {
1241     PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData));
1242     /* the klass element */
1243     data->klass = obj;
1244     Py_INCREF(data->klass);
1245     /* the newraw method and newargs arguments used to create a new raw instance */
1246     if (PyClass_Check(obj)) {
1247       data->newraw = 0;
1248       data->newargs = obj;
1249       Py_INCREF(obj);
1250     } else {
1251 #if (PY_VERSION_HEX < 0x02020000)
1252       data->newraw = 0;
1253 #else
1254       data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
1255 #endif
1256       if (data->newraw) {
1257         Py_INCREF(data->newraw);
1258         data->newargs = PyTuple_New(1);
1259         PyTuple_SetItem(data->newargs, 0, obj);
1260       } else {
1261         data->newargs = obj;
1262       }
1263       Py_INCREF(data->newargs);
1264     }
1265     /* the destroy method, aka as the C++ delete method */
1266     data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
1267     if (PyErr_Occurred()) {
1268       PyErr_Clear();
1269       data->destroy = 0;
1270     }
1271     if (data->destroy) {
1272       int flags;
1273       Py_INCREF(data->destroy);
1274       flags = PyCFunction_GET_FLAGS(data->destroy);
1275 #ifdef METH_O
1276       data->delargs = !(flags & (METH_O));
1277 #else
1278       data->delargs = 0;
1279 #endif
1280     } else {
1281       data->delargs = 0;
1282     }
1283     data->implicitconv = 0;
1284     return data;
1285   }
1286 }
1287
1288 SWIGRUNTIME void 
1289 PySwigClientData_Del(PySwigClientData* data)
1290 {
1291   Py_XDECREF(data->newraw);
1292   Py_XDECREF(data->newargs);
1293   Py_XDECREF(data->destroy);
1294 }
1295
1296 /* =============== PySwigObject =====================*/
1297
1298 typedef struct {
1299   PyObject_HEAD
1300   void *ptr;
1301   swig_type_info *ty;
1302   int own;
1303   PyObject *next;
1304 } PySwigObject;
1305
1306 SWIGRUNTIME PyObject *
1307 PySwigObject_long(PySwigObject *v)
1308 {
1309   return PyLong_FromVoidPtr(v->ptr);
1310 }
1311
1312 SWIGRUNTIME PyObject *
1313 PySwigObject_format(const char* fmt, PySwigObject *v)
1314 {
1315   PyObject *res = NULL;
1316   PyObject *args = PyTuple_New(1);
1317   if (args) {
1318     if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) {
1319       PyObject *ofmt = PyString_FromString(fmt);
1320       if (ofmt) {
1321         res = PyString_Format(ofmt,args);
1322         Py_DECREF(ofmt);
1323       }
1324       Py_DECREF(args);
1325     }
1326   }
1327   return res;
1328 }
1329
1330 SWIGRUNTIME PyObject *
1331 PySwigObject_oct(PySwigObject *v)
1332 {
1333   return PySwigObject_format("%o",v);
1334 }
1335
1336 SWIGRUNTIME PyObject *
1337 PySwigObject_hex(PySwigObject *v)
1338 {
1339   return PySwigObject_format("%x",v);
1340 }
1341
1342 SWIGRUNTIME PyObject *
1343 #ifdef METH_NOARGS
1344 PySwigObject_repr(PySwigObject *v)
1345 #else
1346 PySwigObject_repr(PySwigObject *v, PyObject *args)
1347 #endif
1348 {
1349   const char *name = SWIG_TypePrettyName(v->ty);
1350   PyObject *hex = PySwigObject_hex(v);    
1351   PyObject *repr = PyString_FromFormat("<Swig Object of type '%s' at 0x%s>", name, PyString_AsString(hex));
1352   Py_DECREF(hex);
1353   if (v->next) {
1354 #ifdef METH_NOARGS
1355     PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next);
1356 #else
1357     PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args);
1358 #endif
1359     PyString_ConcatAndDel(&repr,nrep);
1360   }
1361   return repr;  
1362 }
1363
1364 SWIGRUNTIME int
1365 PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
1366 {
1367 #ifdef METH_NOARGS
1368   PyObject *repr = PySwigObject_repr(v);
1369 #else
1370   PyObject *repr = PySwigObject_repr(v, NULL);
1371 #endif
1372   if (repr) {
1373     fputs(PyString_AsString(repr), fp);
1374     Py_DECREF(repr);
1375     return 0; 
1376   } else {
1377     return 1; 
1378   }
1379 }
1380
1381 SWIGRUNTIME PyObject *
1382 PySwigObject_str(PySwigObject *v)
1383 {
1384   char result[SWIG_BUFFER_SIZE];
1385   return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
1386     PyString_FromString(result) : 0;
1387 }
1388
1389 SWIGRUNTIME int
1390 PySwigObject_compare(PySwigObject *v, PySwigObject *w)
1391 {
1392   void *i = v->ptr;
1393   void *j = w->ptr;
1394   return (i < j) ? -1 : ((i > j) ? 1 : 0);
1395 }
1396
1397 SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
1398
1399 SWIGRUNTIME PyTypeObject*
1400 PySwigObject_type(void) {
1401   static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
1402   return type;
1403 }
1404
1405 SWIGRUNTIMEINLINE int
1406 PySwigObject_Check(PyObject *op) {
1407   return ((op)->ob_type == PySwigObject_type())
1408     || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
1409 }
1410
1411 SWIGRUNTIME PyObject *
1412 PySwigObject_New(void *ptr, swig_type_info *ty, int own);
1413
1414 SWIGRUNTIME void
1415 PySwigObject_dealloc(PyObject *v)
1416 {
1417   PySwigObject *sobj = (PySwigObject *) v;
1418   PyObject *next = sobj->next;
1419   if (sobj->own) {
1420     swig_type_info *ty = sobj->ty;
1421     PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
1422     PyObject *destroy = data ? data->destroy : 0;
1423     if (destroy) {
1424       /* destroy is always a VARARGS method */
1425       PyObject *res;
1426       if (data->delargs) {
1427         /* we need to create a temporal object to carry the destroy operation */
1428         PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0);
1429         res = SWIG_Python_CallFunctor(destroy, tmp);
1430         Py_DECREF(tmp);
1431       } else {
1432         PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1433         PyObject *mself = PyCFunction_GET_SELF(destroy);
1434         res = ((*meth)(mself, v));
1435       }
1436       Py_XDECREF(res);
1437     } else {
1438       const char *name = SWIG_TypePrettyName(ty);
1439 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1440       printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
1441 #endif
1442     }
1443   } 
1444   Py_XDECREF(next);
1445   PyObject_DEL(v);
1446 }
1447
1448 SWIGRUNTIME PyObject* 
1449 PySwigObject_append(PyObject* v, PyObject* next)
1450 {
1451   PySwigObject *sobj = (PySwigObject *) v;
1452 #ifndef METH_O
1453   PyObject *tmp = 0;
1454   if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
1455   next = tmp;
1456 #endif
1457   if (!PySwigObject_Check(next)) {
1458     return NULL;
1459   }
1460   sobj->next = next;
1461   Py_INCREF(next);
1462   return SWIG_Py_Void();
1463 }
1464
1465 SWIGRUNTIME PyObject* 
1466 #ifdef METH_NOARGS
1467 PySwigObject_next(PyObject* v)
1468 #else
1469 PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1470 #endif
1471 {
1472   PySwigObject *sobj = (PySwigObject *) v;
1473   if (sobj->next) {    
1474     Py_INCREF(sobj->next);
1475     return sobj->next;
1476   } else {
1477     return SWIG_Py_Void();
1478   }
1479 }
1480
1481 SWIGINTERN PyObject*
1482 #ifdef METH_NOARGS
1483 PySwigObject_disown(PyObject *v)
1484 #else
1485 PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1486 #endif
1487 {
1488   PySwigObject *sobj = (PySwigObject *)v;
1489   sobj->own = 0;
1490   return SWIG_Py_Void();
1491 }
1492
1493 SWIGINTERN PyObject*
1494 #ifdef METH_NOARGS
1495 PySwigObject_acquire(PyObject *v)
1496 #else
1497 PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1498 #endif
1499 {
1500   PySwigObject *sobj = (PySwigObject *)v;
1501   sobj->own = SWIG_POINTER_OWN;
1502   return SWIG_Py_Void();
1503 }
1504
1505 SWIGINTERN PyObject*
1506 PySwigObject_own(PyObject *v, PyObject *args)
1507 {
1508   PyObject *val = 0;
1509 #if (PY_VERSION_HEX < 0x02020000)
1510   if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
1511 #else
1512   if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
1513 #endif
1514     {
1515       return NULL;
1516     } 
1517   else
1518     {
1519       PySwigObject *sobj = (PySwigObject *)v;
1520       PyObject *obj = PyBool_FromLong(sobj->own);
1521       if (val) {
1522 #ifdef METH_NOARGS
1523         if (PyObject_IsTrue(val)) {
1524           PySwigObject_acquire(v);
1525         } else {
1526           PySwigObject_disown(v);
1527         }
1528 #else
1529         if (PyObject_IsTrue(val)) {
1530           PySwigObject_acquire(v,args);
1531         } else {
1532           PySwigObject_disown(v,args);
1533         }
1534 #endif
1535       } 
1536       return obj;
1537     }
1538 }
1539
1540 #ifdef METH_O
1541 static PyMethodDef
1542 swigobject_methods[] = {
1543   {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
1544   {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS,  (char *)"aquires ownership of the pointer"},
1545   {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
1546   {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_O,       (char *)"appends another 'this' object"},
1547   {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
1548   {(char *)"__repr__",(PyCFunction)PySwigObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
1549   {0, 0, 0, 0}  
1550 };
1551 #else
1552 static PyMethodDef
1553 swigobject_methods[] = {
1554   {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
1555   {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
1556   {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
1557   {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
1558   {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
1559   {(char *)"__repr__",(PyCFunction)PySwigObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
1560   {0, 0, 0, 0}  
1561 };
1562 #endif
1563
1564 #if PY_VERSION_HEX < 0x02020000
1565 SWIGINTERN PyObject *
1566 PySwigObject_getattr(PySwigObject *sobj,char *name)
1567 {
1568   return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
1569 }
1570 #endif
1571
1572 SWIGRUNTIME PyTypeObject*
1573 _PySwigObject_type(void) {
1574   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1575   
1576   static PyNumberMethods PySwigObject_as_number = {
1577     (binaryfunc)0, /*nb_add*/
1578     (binaryfunc)0, /*nb_subtract*/
1579     (binaryfunc)0, /*nb_multiply*/
1580     (binaryfunc)0, /*nb_divide*/
1581     (binaryfunc)0, /*nb_remainder*/
1582     (binaryfunc)0, /*nb_divmod*/
1583     (ternaryfunc)0,/*nb_power*/
1584     (unaryfunc)0,  /*nb_negative*/
1585     (unaryfunc)0,  /*nb_positive*/
1586     (unaryfunc)0,  /*nb_absolute*/
1587     (inquiry)0,    /*nb_nonzero*/
1588     0,             /*nb_invert*/
1589     0,             /*nb_lshift*/
1590     0,             /*nb_rshift*/
1591     0,             /*nb_and*/
1592     0,             /*nb_xor*/
1593     0,             /*nb_or*/
1594     (coercion)0,   /*nb_coerce*/
1595     (unaryfunc)PySwigObject_long, /*nb_int*/
1596     (unaryfunc)PySwigObject_long, /*nb_long*/
1597     (unaryfunc)0,                 /*nb_float*/
1598     (unaryfunc)PySwigObject_oct,  /*nb_oct*/
1599     (unaryfunc)PySwigObject_hex,  /*nb_hex*/
1600 #if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
1601     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1602 #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
1603     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
1604 #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
1605     0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
1606 #endif
1607   };
1608
1609   static PyTypeObject pyswigobject_type;  
1610   static int type_init = 0;
1611   if (!type_init) {
1612     const PyTypeObject tmp
1613       = {
1614         PyObject_HEAD_INIT(NULL)
1615         0,                                  /* ob_size */
1616         (char *)"PySwigObject",             /* tp_name */
1617         sizeof(PySwigObject),               /* tp_basicsize */
1618         0,                                  /* tp_itemsize */
1619         (destructor)PySwigObject_dealloc,   /* tp_dealloc */
1620         (printfunc)PySwigObject_print,      /* tp_print */
1621 #if PY_VERSION_HEX < 0x02020000
1622         (getattrfunc)PySwigObject_getattr,  /* tp_getattr */ 
1623 #else
1624         (getattrfunc)0,                     /* tp_getattr */ 
1625 #endif
1626         (setattrfunc)0,                     /* tp_setattr */ 
1627         (cmpfunc)PySwigObject_compare,      /* tp_compare */ 
1628         (reprfunc)PySwigObject_repr,        /* tp_repr */    
1629         &PySwigObject_as_number,            /* tp_as_number */
1630         0,                                  /* tp_as_sequence */
1631         0,                                  /* tp_as_mapping */
1632         (hashfunc)0,                        /* tp_hash */
1633         (ternaryfunc)0,                     /* tp_call */
1634         (reprfunc)PySwigObject_str,         /* tp_str */
1635         PyObject_GenericGetAttr,            /* tp_getattro */
1636         0,                                  /* tp_setattro */
1637         0,                                  /* tp_as_buffer */
1638         Py_TPFLAGS_DEFAULT,                 /* tp_flags */
1639         swigobject_doc,                     /* tp_doc */        
1640         0,                                  /* tp_traverse */
1641         0,                                  /* tp_clear */
1642         0,                                  /* tp_richcompare */
1643         0,                                  /* tp_weaklistoffset */
1644 #if PY_VERSION_HEX >= 0x02020000
1645         0,                                  /* tp_iter */
1646         0,                                  /* tp_iternext */
1647         swigobject_methods,                 /* tp_methods */ 
1648         0,                                  /* tp_members */
1649         0,                                  /* tp_getset */             
1650         0,                                  /* tp_base */               
1651         0,                                  /* tp_dict */               
1652         0,                                  /* tp_descr_get */          
1653         0,                                  /* tp_descr_set */          
1654         0,                                  /* tp_dictoffset */         
1655         0,                                  /* tp_init */               
1656         0,                                  /* tp_alloc */              
1657         0,                                  /* tp_new */                
1658         0,                                  /* tp_free */          
1659         0,                                  /* tp_is_gc */  
1660         0,                                  /* tp_bases */   
1661         0,                                  /* tp_mro */
1662         0,                                  /* tp_cache */   
1663         0,                                  /* tp_subclasses */
1664         0,                                  /* tp_weaklist */
1665 #endif
1666 #if PY_VERSION_HEX >= 0x02030000
1667         0,                                  /* tp_del */
1668 #endif
1669 #ifdef COUNT_ALLOCS
1670         0,0,0,0                             /* tp_alloc -> tp_next */
1671 #endif
1672       };
1673     pyswigobject_type = tmp;
1674     pyswigobject_type.ob_type = &PyType_Type;
1675     type_init = 1;
1676   }
1677   return &pyswigobject_type;
1678 }
1679
1680 SWIGRUNTIME PyObject *
1681 PySwigObject_New(void *ptr, swig_type_info *ty, int own)
1682 {
1683   PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type());
1684   if (sobj) {
1685     sobj->ptr  = ptr;
1686     sobj->ty   = ty;
1687     sobj->own  = own;
1688     sobj->next = 0;
1689   }
1690   return (PyObject *)sobj;
1691 }
1692
1693 /* -----------------------------------------------------------------------------
1694  * Implements a simple Swig Packed type, and use it instead of string
1695  * ----------------------------------------------------------------------------- */
1696
1697 typedef struct {
1698   PyObject_HEAD
1699   void *pack;
1700   swig_type_info *ty;
1701   size_t size;
1702 } PySwigPacked;
1703
1704 SWIGRUNTIME int
1705 PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
1706 {
1707   char result[SWIG_BUFFER_SIZE];
1708   fputs("<Swig Packed ", fp); 
1709   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1710     fputs("at ", fp); 
1711     fputs(result, fp); 
1712   }
1713   fputs(v->ty->name,fp); 
1714   fputs(">", fp);
1715   return 0; 
1716 }
1717   
1718 SWIGRUNTIME PyObject *
1719 PySwigPacked_repr(PySwigPacked *v)
1720 {
1721   char result[SWIG_BUFFER_SIZE];
1722   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1723     return PyString_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
1724   } else {
1725     return PyString_FromFormat("<Swig Packed %s>", v->ty->name);
1726   }  
1727 }
1728
1729 SWIGRUNTIME PyObject *
1730 PySwigPacked_str(PySwigPacked *v)
1731 {
1732   char result[SWIG_BUFFER_SIZE];
1733   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
1734     return PyString_FromFormat("%s%s", result, v->ty->name);
1735   } else {
1736     return PyString_FromString(v->ty->name);
1737   }  
1738 }
1739
1740 SWIGRUNTIME int
1741 PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
1742 {
1743   size_t i = v->size;
1744   size_t j = w->size;
1745   int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
1746   return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
1747 }
1748
1749 SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
1750
1751 SWIGRUNTIME PyTypeObject*
1752 PySwigPacked_type(void) {
1753   static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
1754   return type;
1755 }
1756
1757 SWIGRUNTIMEINLINE int
1758 PySwigPacked_Check(PyObject *op) {
1759   return ((op)->ob_type == _PySwigPacked_type()) 
1760     || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
1761 }
1762
1763 SWIGRUNTIME void
1764 PySwigPacked_dealloc(PyObject *v)
1765 {
1766   if (PySwigPacked_Check(v)) {
1767     PySwigPacked *sobj = (PySwigPacked *) v;
1768     free(sobj->pack);
1769   }
1770   PyObject_DEL(v);
1771 }
1772
1773 SWIGRUNTIME PyTypeObject*
1774 _PySwigPacked_type(void) {
1775   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
1776   static PyTypeObject pyswigpacked_type;
1777   static int type_init = 0;  
1778   if (!type_init) {
1779     const PyTypeObject tmp
1780       = {
1781         PyObject_HEAD_INIT(NULL)
1782         0,                                  /* ob_size */       
1783         (char *)"PySwigPacked",             /* tp_name */       
1784         sizeof(PySwigPacked),               /* tp_basicsize */  
1785         0,                                  /* tp_itemsize */   
1786         (destructor)PySwigPacked_dealloc,   /* tp_dealloc */    
1787         (printfunc)PySwigPacked_print,      /* tp_print */      
1788         (getattrfunc)0,                     /* tp_getattr */    
1789         (setattrfunc)0,                     /* tp_setattr */    
1790         (cmpfunc)PySwigPacked_compare,      /* tp_compare */    
1791         (reprfunc)PySwigPacked_repr,        /* tp_repr */       
1792         0,                                  /* tp_as_number */  
1793         0,                                  /* tp_as_sequence */
1794         0,                                  /* tp_as_mapping */ 
1795         (hashfunc)0,                        /* tp_hash */       
1796         (ternaryfunc)0,                     /* tp_call */       
1797         (reprfunc)PySwigPacked_str,         /* tp_str */        
1798         PyObject_GenericGetAttr,            /* tp_getattro */
1799         0,                                  /* tp_setattro */
1800         0,                                  /* tp_as_buffer */
1801         Py_TPFLAGS_DEFAULT,                 /* tp_flags */
1802         swigpacked_doc,                     /* tp_doc */
1803         0,                                  /* tp_traverse */
1804         0,                                  /* tp_clear */
1805         0,                                  /* tp_richcompare */
1806         0,                                  /* tp_weaklistoffset */
1807 #if PY_VERSION_HEX >= 0x02020000
1808         0,                                  /* tp_iter */
1809         0,                                  /* tp_iternext */
1810         0,                                  /* tp_methods */ 
1811         0,                                  /* tp_members */
1812         0,                                  /* tp_getset */             
1813         0,                                  /* tp_base */               
1814         0,                                  /* tp_dict */               
1815         0,                                  /* tp_descr_get */          
1816         0,                                  /* tp_descr_set */          
1817         0,                                  /* tp_dictoffset */         
1818         0,                                  /* tp_init */               
1819         0,                                  /* tp_alloc */              
1820         0,                                  /* tp_new */                
1821         0,                                  /* tp_free */          
1822         0,                                  /* tp_is_gc */  
1823         0,                                  /* tp_bases */   
1824         0,                                  /* tp_mro */
1825         0,                                  /* tp_cache */   
1826         0,                                  /* tp_subclasses */
1827         0,                                  /* tp_weaklist */
1828 #endif
1829 #if PY_VERSION_HEX >= 0x02030000
1830         0,                                  /* tp_del */
1831 #endif
1832 #ifdef COUNT_ALLOCS
1833         0,0,0,0                             /* tp_alloc -> tp_next */
1834 #endif
1835       };
1836     pyswigpacked_type = tmp;
1837     pyswigpacked_type.ob_type = &PyType_Type;
1838     type_init = 1;
1839   }
1840   return &pyswigpacked_type;
1841 }
1842
1843 SWIGRUNTIME PyObject *
1844 PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
1845 {
1846   PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type());
1847   if (sobj) {
1848     void *pack = malloc(size);
1849     if (pack) {
1850       memcpy(pack, ptr, size);
1851       sobj->pack = pack;
1852       sobj->ty   = ty;
1853       sobj->size = size;
1854     } else {
1855       PyObject_DEL((PyObject *) sobj);
1856       sobj = 0;
1857     }
1858   }
1859   return (PyObject *) sobj;
1860 }
1861
1862 SWIGRUNTIME swig_type_info *
1863 PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
1864 {
1865   if (PySwigPacked_Check(obj)) {
1866     PySwigPacked *sobj = (PySwigPacked *)obj;
1867     if (sobj->size != size) return 0;
1868     memcpy(ptr, sobj->pack, size);
1869     return sobj->ty;
1870   } else {
1871     return 0;
1872   }
1873 }
1874
1875 /* -----------------------------------------------------------------------------
1876  * pointers/data manipulation
1877  * ----------------------------------------------------------------------------- */
1878
1879 SWIGRUNTIMEINLINE PyObject *
1880 _SWIG_This(void)
1881 {
1882   return PyString_FromString("this");
1883 }
1884
1885 SWIGRUNTIME PyObject *
1886 SWIG_This(void)
1887 {
1888   static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
1889   return swig_this;
1890 }
1891
1892 /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
1893
1894 SWIGRUNTIME PySwigObject *
1895 SWIG_Python_GetSwigThis(PyObject *pyobj) 
1896 {
1897   if (PySwigObject_Check(pyobj)) {
1898     return (PySwigObject *) pyobj;
1899   } else {
1900     PyObject *obj = 0;
1901 #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
1902     if (PyInstance_Check(pyobj)) {
1903       obj = _PyInstance_Lookup(pyobj, SWIG_This());      
1904     } else {
1905       PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
1906       if (dictptr != NULL) {
1907         PyObject *dict = *dictptr;
1908         obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
1909       } else {
1910 #ifdef PyWeakref_CheckProxy
1911         if (PyWeakref_CheckProxy(pyobj)) {
1912           PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
1913           return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
1914         }
1915 #endif
1916         obj = PyObject_GetAttr(pyobj,SWIG_This());
1917         if (obj) {
1918           Py_DECREF(obj);
1919         } else {
1920           if (PyErr_Occurred()) PyErr_Clear();
1921           return 0;
1922         }
1923       }
1924     }
1925 #else
1926     obj = PyObject_GetAttr(pyobj,SWIG_This());
1927     if (obj) {
1928       Py_DECREF(obj);
1929     } else {
1930       if (PyErr_Occurred()) PyErr_Clear();
1931       return 0;
1932     }
1933 #endif
1934     if (obj && !PySwigObject_Check(obj)) {
1935       /* a PyObject is called 'this', try to get the 'real this'
1936          PySwigObject from it */ 
1937       return SWIG_Python_GetSwigThis(obj);
1938     }
1939     return (PySwigObject *)obj;
1940   }
1941 }
1942
1943 /* Acquire a pointer value */
1944
1945 SWIGRUNTIME int
1946 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
1947   if (own) {
1948     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1949     if (sobj) {
1950       int oldown = sobj->own;
1951       sobj->own = own;
1952       return oldown;
1953     }
1954   }
1955   return 0;
1956 }
1957
1958 /* Convert a pointer value */
1959
1960 SWIGRUNTIME int
1961 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
1962   if (!obj) return SWIG_ERROR;
1963   if (obj == Py_None) {
1964     if (ptr) *ptr = 0;
1965     return SWIG_OK;
1966   } else {
1967     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1968     while (sobj) {
1969       void *vptr = sobj->ptr;
1970       if (ty) {
1971         swig_type_info *to = sobj->ty;
1972         if (to == ty) {
1973           /* no type cast needed */
1974           if (ptr) *ptr = vptr;
1975           break;
1976         } else {
1977           swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
1978           if (!tc) {
1979             sobj = (PySwigObject *)sobj->next;
1980           } else {
1981             if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
1982             break;
1983           }
1984         }
1985       } else {
1986         if (ptr) *ptr = vptr;
1987         break;
1988       }
1989     }
1990     if (sobj) {
1991       if (own) *own = sobj->own;
1992       if (flags & SWIG_POINTER_DISOWN) {
1993         sobj->own = 0;
1994       }
1995       return SWIG_OK;
1996     } else {
1997       int res = SWIG_ERROR;
1998       if (flags & SWIG_POINTER_IMPLICIT_CONV) {
1999         PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
2000         if (data && !data->implicitconv) {
2001           PyObject *klass = data->klass;
2002           if (klass) {
2003             PyObject *impconv;
2004             data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2005             impconv = SWIG_Python_CallFunctor(klass, obj);
2006             data->implicitconv = 0;
2007             if (PyErr_Occurred()) {
2008               PyErr_Clear();
2009               impconv = 0;
2010             }
2011             if (impconv) {
2012               PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv);
2013               if (iobj) {
2014                 void *vptr;
2015                 res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2016                 if (SWIG_IsOK(res)) {
2017                   if (ptr) {
2018                     *ptr = vptr;
2019                     /* transfer the ownership to 'ptr' */
2020                     iobj->own = 0;
2021                     res = SWIG_AddCast(res);
2022                     res = SWIG_AddNewMask(res);
2023                   } else {
2024                     res = SWIG_AddCast(res);                
2025                   }
2026                 }
2027               }
2028               Py_DECREF(impconv);
2029             }
2030           }
2031         }
2032       }
2033       return res;
2034     }
2035   }
2036 }
2037
2038 /* Convert a function ptr value */
2039
2040 SWIGRUNTIME int
2041 SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
2042   if (!PyCFunction_Check(obj)) {
2043     return SWIG_ConvertPtr(obj, ptr, ty, 0);
2044   } else {
2045     void *vptr = 0;
2046     
2047     /* here we get the method pointer for callbacks */
2048     const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2049     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2050     if (desc) {
2051       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2052       if (!desc) return SWIG_ERROR;
2053     }
2054     if (ty) {
2055       swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
2056       if (!tc) return SWIG_ERROR;
2057       *ptr = SWIG_TypeCast(tc,vptr);
2058     } else {
2059       *ptr = vptr;
2060     }
2061     return SWIG_OK;
2062   }
2063 }
2064
2065 /* Convert a packed value value */
2066
2067 SWIGRUNTIME int
2068 SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
2069   swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz);
2070   if (!to) return SWIG_ERROR;
2071   if (ty) {
2072     if (to != ty) {
2073       /* check type cast? */
2074       swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2075       if (!tc) return SWIG_ERROR;
2076     }
2077   }
2078   return SWIG_OK;
2079 }  
2080
2081 /* -----------------------------------------------------------------------------
2082  * Create a new pointer object
2083  * ----------------------------------------------------------------------------- */
2084
2085 /*
2086   Create a new instance object, whitout calling __init__, and set the
2087   'this' attribute.
2088 */
2089
2090 SWIGRUNTIME PyObject* 
2091 SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
2092 {
2093 #if (PY_VERSION_HEX >= 0x02020000)
2094   PyObject *inst = 0;
2095   PyObject *newraw = data->newraw;
2096   if (newraw) {
2097     inst = PyObject_Call(newraw, data->newargs, NULL);
2098     if (inst) {
2099 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2100       PyObject **dictptr = _PyObject_GetDictPtr(inst);
2101       if (dictptr != NULL) {
2102         PyObject *dict = *dictptr;
2103         if (dict == NULL) {
2104           dict = PyDict_New();
2105           *dictptr = dict;
2106           PyDict_SetItem(dict, SWIG_This(), swig_this);
2107         }
2108       }
2109 #else
2110       PyObject *key = SWIG_This();
2111       PyObject_SetAttr(inst, key, swig_this);
2112 #endif
2113     }
2114   } else {
2115     PyObject *dict = PyDict_New();
2116     PyDict_SetItem(dict, SWIG_This(), swig_this);
2117     inst = PyInstance_NewRaw(data->newargs, dict);
2118     Py_DECREF(dict);
2119   }
2120   return inst;
2121 #else
2122 #if (PY_VERSION_HEX >= 0x02010000)
2123   PyObject *inst;
2124   PyObject *dict = PyDict_New();
2125   PyDict_SetItem(dict, SWIG_This(), swig_this);
2126   inst = PyInstance_NewRaw(data->newargs, dict);
2127   Py_DECREF(dict);
2128   return (PyObject *) inst;
2129 #else
2130   PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
2131   if (inst == NULL) {
2132     return NULL;
2133   }
2134   inst->in_class = (PyClassObject *)data->newargs;
2135   Py_INCREF(inst->in_class);
2136   inst->in_dict = PyDict_New();
2137   if (inst->in_dict == NULL) {
2138     Py_DECREF(inst);
2139     return NULL;
2140   }
2141 #ifdef Py_TPFLAGS_HAVE_WEAKREFS
2142   inst->in_weakreflist = NULL;
2143 #endif
2144 #ifdef Py_TPFLAGS_GC
2145   PyObject_GC_Init(inst);
2146 #endif
2147   PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
2148   return (PyObject *) inst;
2149 #endif
2150 #endif
2151 }
2152
2153 SWIGRUNTIME void
2154 SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
2155 {
2156  PyObject *dict;
2157 #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2158  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2159  if (dictptr != NULL) {
2160    dict = *dictptr;
2161    if (dict == NULL) {
2162      dict = PyDict_New();
2163      *dictptr = dict;
2164    }
2165    PyDict_SetItem(dict, SWIG_This(), swig_this);
2166    return;
2167  }
2168 #endif
2169  dict = PyObject_GetAttrString(inst, (char*)"__dict__");
2170  PyDict_SetItem(dict, SWIG_This(), swig_this);
2171  Py_DECREF(dict);
2172
2173
2174
2175 SWIGINTERN PyObject *
2176 SWIG_Python_InitShadowInstance(PyObject *args) {
2177   PyObject *obj[2];
2178   if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
2179     return NULL;
2180   } else {
2181     PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2182     if (sthis) {
2183       PySwigObject_append((PyObject*) sthis, obj[1]);
2184     } else {
2185       SWIG_Python_SetSwigThis(obj[0], obj[1]);
2186     }
2187     return SWIG_Py_Void();
2188   }
2189 }
2190
2191 /* Create a new pointer object */
2192
2193 SWIGRUNTIME PyObject *
2194 SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
2195   if (!ptr) {
2196     return SWIG_Py_Void();
2197   } else {
2198     int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2199     PyObject *robj = PySwigObject_New(ptr, type, own);
2200     PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0;
2201     if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2202       PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2203       if (inst) {
2204         Py_DECREF(robj);
2205         robj = inst;
2206       }
2207     }
2208     return robj;
2209   }
2210 }
2211
2212 /* Create a new packed object */
2213
2214 SWIGRUNTIMEINLINE PyObject *
2215 SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
2216   return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2217 }
2218
2219 /* -----------------------------------------------------------------------------*
2220  *  Get type list 
2221  * -----------------------------------------------------------------------------*/
2222
2223 #ifdef SWIG_LINK_RUNTIME
2224 void *SWIG_ReturnGlobalTypeList(void *);
2225 #endif
2226
2227 SWIGRUNTIME swig_module_info *
2228 SWIG_Python_GetModule(void) {
2229   static void *type_pointer = (void *)0;
2230   /* first check if module already created */
2231   if (!type_pointer) {
2232 #ifdef SWIG_LINK_RUNTIME
2233     type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2234 #else
2235     type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2236                                     (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
2237     if (PyErr_Occurred()) {
2238       PyErr_Clear();
2239       type_pointer = (void *)0;
2240     }
2241 #endif
2242   }
2243   return (swig_module_info *) type_pointer;
2244 }
2245
2246 #if PY_MAJOR_VERSION < 2
2247 /* PyModule_AddObject function was introduced in Python 2.0.  The following function
2248    is copied out of Python/modsupport.c in python version 2.3.4 */
2249 SWIGINTERN int
2250 PyModule_AddObject(PyObject *m, char *name, PyObject *o)
2251 {
2252   PyObject *dict;
2253   if (!PyModule_Check(m)) {
2254     PyErr_SetString(PyExc_TypeError,
2255                     "PyModule_AddObject() needs module as first arg");
2256     return SWIG_ERROR;
2257   }
2258   if (!o) {
2259     PyErr_SetString(PyExc_TypeError,
2260                     "PyModule_AddObject() needs non-NULL value");
2261     return SWIG_ERROR;
2262   }
2263   
2264   dict = PyModule_GetDict(m);
2265   if (dict == NULL) {
2266     /* Internal error -- modules must have a dict! */
2267     PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
2268                  PyModule_GetName(m));
2269     return SWIG_ERROR;
2270   }
2271   if (PyDict_SetItemString(dict, name, o))
2272     return SWIG_ERROR;
2273   Py_DECREF(o);
2274   return SWIG_OK;
2275 }
2276 #endif
2277
2278 SWIGRUNTIME void
2279 SWIG_Python_DestroyModule(void *vptr)
2280 {
2281   swig_module_info *swig_module = (swig_module_info *) vptr;
2282   swig_type_info **types = swig_module->types;
2283   size_t i;
2284   for (i =0; i < swig_module->size; ++i) {
2285     swig_type_info *ty = types[i];
2286     if (ty->owndata) {
2287       PySwigClientData *data = (PySwigClientData *) ty->clientdata;
2288       if (data) PySwigClientData_Del(data);
2289     }
2290   }
2291   Py_DECREF(SWIG_This());
2292 }
2293
2294 SWIGRUNTIME void
2295 SWIG_Python_SetModule(swig_module_info *swig_module) {
2296   static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
2297
2298   PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2299                                    swig_empty_runtime_method_table);
2300   PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
2301   if (pointer && module) {
2302     PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
2303   } else {
2304     Py_XDECREF(pointer);
2305   }
2306 }
2307
2308 /* The python cached type query */
2309 SWIGRUNTIME PyObject *
2310 SWIG_Python_TypeCache(void) {
2311   static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2312   return cache;
2313 }
2314
2315 SWIGRUNTIME swig_type_info *
2316 SWIG_Python_TypeQuery(const char *type)
2317 {
2318   PyObject *cache = SWIG_Python_TypeCache();
2319   PyObject *key = PyString_FromString(type); 
2320   PyObject *obj = PyDict_GetItem(cache, key);
2321   swig_type_info *descriptor;
2322   if (obj) {
2323     descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
2324   } else {
2325     swig_module_info *swig_module = SWIG_Python_GetModule();
2326     descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2327     if (descriptor) {
2328       obj = PyCObject_FromVoidPtr(descriptor, NULL);
2329       PyDict_SetItem(cache, key, obj);
2330       Py_DECREF(obj);
2331     }
2332   }
2333   Py_DECREF(key);
2334   return descriptor;
2335 }
2336
2337 /* 
2338    For backward compatibility only
2339 */
2340 #define SWIG_POINTER_EXCEPTION  0
2341 #define SWIG_arg_fail(arg)      SWIG_Python_ArgFail(arg)
2342 #define SWIG_MustGetPtr(p, type, argnum, flags)  SWIG_Python_MustGetPtr(p, type, argnum, flags)
2343
2344 SWIGRUNTIME int
2345 SWIG_Python_AddErrMesg(const char* mesg, int infront)
2346 {
2347   if (PyErr_Occurred()) {
2348     PyObject *type = 0;
2349     PyObject *value = 0;
2350     PyObject *traceback = 0;
2351     PyErr_Fetch(&type, &value, &traceback);
2352     if (value) {
2353       PyObject *old_str = PyObject_Str(value);
2354       Py_XINCREF(type);
2355       PyErr_Clear();
2356       if (infront) {
2357         PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
2358       } else {
2359         PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
2360       }
2361       Py_DECREF(old_str);
2362     }
2363     return 1;
2364   } else {
2365     return 0;
2366   }
2367 }
2368   
2369 SWIGRUNTIME int
2370 SWIG_Python_ArgFail(int argnum)
2371 {
2372   if (PyErr_Occurred()) {
2373     /* add information about failing argument */
2374     char mesg[256];
2375     PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2376     return SWIG_Python_AddErrMesg(mesg, 1);
2377   } else {
2378     return 0;
2379   }
2380 }
2381
2382 SWIGRUNTIMEINLINE const char *
2383 PySwigObject_GetDesc(PyObject *self)
2384 {
2385   PySwigObject *v = (PySwigObject *)self;
2386   swig_type_info *ty = v ? v->ty : 0;
2387   return ty ? ty->str : (char*)"";
2388 }
2389
2390 SWIGRUNTIME void
2391 SWIG_Python_TypeError(const char *type, PyObject *obj)
2392 {
2393   if (type) {
2394 #if defined(SWIG_COBJECT_TYPES)
2395     if (obj && PySwigObject_Check(obj)) {
2396       const char *otype = (const char *) PySwigObject_GetDesc(obj);
2397       if (otype) {
2398         PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
2399                      type, otype);
2400         return;
2401       }
2402     } else 
2403 #endif      
2404     {
2405       const char *otype = (obj ? obj->ob_type->tp_name : 0); 
2406       if (otype) {
2407         PyObject *str = PyObject_Str(obj);
2408         const char *cstr = str ? PyString_AsString(str) : 0;
2409         if (cstr) {
2410           PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2411                        type, otype, cstr);
2412         } else {
2413           PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2414                        type, otype);
2415         }
2416         Py_XDECREF(str);
2417         return;
2418       }
2419     }   
2420     PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2421   } else {
2422     PyErr_Format(PyExc_TypeError, "unexpected type is received");
2423   }
2424 }
2425
2426
2427 /* Convert a pointer value, signal an exception on a type mismatch */
2428 SWIGRUNTIME void *
2429 SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
2430   void *result;
2431   if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2432     PyErr_Clear();
2433     if (flags & SWIG_POINTER_EXCEPTION) {
2434       SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
2435       SWIG_Python_ArgFail(argnum);
2436     }
2437   }
2438   return result;
2439 }
2440
2441
2442 #ifdef __cplusplus
2443 #if 0
2444 { /* cc-mode */
2445 #endif
2446 }
2447 #endif
2448
2449
2450
2451 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
2452
2453 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
2454
2455
2456
2457   #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) 
2458
2459
2460 /* -------- TYPES TABLE (BEGIN) -------- */
2461
2462 #define SWIGTYPE_p_TALLOC_CTX swig_types[0]
2463 #define SWIGTYPE_p_char swig_types[1]
2464 #define SWIGTYPE_p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void swig_types[2]
2465 #define SWIGTYPE_p_int swig_types[3]
2466 #define SWIGTYPE_p_ldb_context swig_types[4]
2467 #define SWIGTYPE_p_ldb_dn swig_types[5]
2468 #define SWIGTYPE_p_ldb_ldif swig_types[6]
2469 #define SWIGTYPE_p_ldb_message swig_types[7]
2470 #define SWIGTYPE_p_ldb_message_element swig_types[8]
2471 #define SWIGTYPE_p_ldb_module_ops swig_types[9]
2472 #define SWIGTYPE_p_ldb_result swig_types[10]
2473 #define SWIGTYPE_p_ldb_val swig_types[11]
2474 #define SWIGTYPE_p_long swig_types[12]
2475 #define SWIGTYPE_p_p_char swig_types[13]
2476 #define SWIGTYPE_p_p_ldb_control swig_types[14]
2477 #define SWIGTYPE_p_p_ldb_result swig_types[15]
2478 #define SWIGTYPE_p_short swig_types[16]
2479 #define SWIGTYPE_p_signed_char swig_types[17]
2480 #define SWIGTYPE_p_unsigned_char swig_types[18]
2481 #define SWIGTYPE_p_unsigned_int swig_types[19]
2482 #define SWIGTYPE_p_unsigned_long swig_types[20]
2483 #define SWIGTYPE_p_unsigned_short swig_types[21]
2484 #define SWIGTYPE_p_void swig_types[22]
2485 static swig_type_info *swig_types[24];
2486 static swig_module_info swig_module = {swig_types, 23, 0, 0, 0, 0};
2487 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
2488 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
2489
2490 /* -------- TYPES TABLE (END) -------- */
2491
2492 #if (PY_VERSION_HEX <= 0x02000000)
2493 # if !defined(SWIG_PYTHON_CLASSIC)
2494 #  error "This python version requires swig to be run with the '-classic' option"
2495 # endif
2496 #endif
2497 #if (PY_VERSION_HEX <= 0x02020000)
2498 # error "This python version requires swig to be run with the '-nomodern' option"
2499 #endif
2500 #if (PY_VERSION_HEX <= 0x02020000)
2501 # error "This python version requires swig to be run with the '-nomodernargs' option"
2502 #endif
2503 #ifndef METH_O
2504 # error "This python version requires swig to be run with the '-nofastunpack' option"
2505 #endif
2506 #ifdef SWIG_TypeQuery
2507 # undef SWIG_TypeQuery
2508 #endif
2509 #define SWIG_TypeQuery SWIG_Python_TypeQuery
2510
2511 /*-----------------------------------------------
2512               @(target):= _ldb.so
2513   ------------------------------------------------*/
2514 #define SWIG_init    init_ldb
2515
2516 #define SWIG_name    "_ldb"
2517
2518 #define SWIGVERSION 0x010333 
2519 #define SWIG_VERSION SWIGVERSION
2520
2521
2522 #define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
2523 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
2524
2525
2526
2527 #include <stdint.h>
2528 #include <stdbool.h>
2529 #include "talloc.h"
2530 #include "ldb.h"
2531 #include "ldb_errors.h"
2532 #include "ldb_private.h"
2533
2534 typedef struct ldb_message ldb_msg;
2535 typedef struct ldb_context ldb;
2536 typedef struct ldb_dn ldb_dn;
2537 typedef struct ldb_ldif ldb_ldif;
2538 typedef struct ldb_message_element ldb_msg_element;
2539 typedef int ldb_error;
2540 typedef int ldb_int_error;
2541
2542
2543
2544   #define SWIG_From_long   PyInt_FromLong 
2545
2546
2547 SWIGINTERNINLINE PyObject *
2548 SWIG_From_int  (int value)
2549 {    
2550   return SWIG_From_long  (value);
2551 }
2552
2553
2554 PyObject *ldb_val_to_py_object(struct ldb_context *ldb_ctx, 
2555                                struct ldb_message_element *el, 
2556                                struct ldb_val *val)
2557 {
2558         const struct ldb_schema_attribute *a;
2559         struct ldb_val new_val;
2560         TALLOC_CTX *mem_ctx = talloc_new(NULL);
2561         PyObject *ret;
2562         
2563         new_val = *val;
2564         
2565         if (ldb_ctx != NULL) {        
2566                 a = ldb_schema_attribute_by_name(ldb_ctx, el->name);
2567         
2568                 if (a != NULL) {
2569                         if (a->syntax->ldif_write_fn(ldb_ctx, mem_ctx, val, &new_val) != 0) {
2570                                 talloc_free(mem_ctx);
2571                                 return NULL;
2572                         }
2573                 }
2574         } 
2575         
2576         ret = PyString_FromStringAndSize((const char *)new_val.data, new_val.length);
2577         
2578         talloc_free(mem_ctx);
2579         
2580         return ret;
2581 }
2582
2583
2584
2585 SWIGINTERN swig_type_info*
2586 SWIG_pchar_descriptor(void)
2587 {
2588   static int init = 0;
2589   static swig_type_info* info = 0;
2590   if (!init) {
2591     info = SWIG_TypeQuery("_p_char");
2592     init = 1;
2593   }
2594   return info;
2595 }
2596
2597
2598 SWIGINTERN int
2599 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
2600 {
2601   if (PyString_Check(obj)) {
2602     char *cstr; Py_ssize_t len;
2603     PyString_AsStringAndSize(obj, &cstr, &len);
2604     if (cptr)  {
2605       if (alloc) {
2606         /* 
2607            In python the user should not be able to modify the inner
2608            string representation. To warranty that, if you define
2609            SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
2610            buffer is always returned.
2611
2612            The default behavior is just to return the pointer value,
2613            so, be careful.
2614         */ 
2615 #if defined(SWIG_PYTHON_SAFE_CSTRINGS)
2616         if (*alloc != SWIG_OLDOBJ) 
2617 #else
2618         if (*alloc == SWIG_NEWOBJ) 
2619 #endif
2620           {
2621             *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
2622             *alloc = SWIG_NEWOBJ;
2623           }
2624         else {
2625           *cptr = cstr;
2626           *alloc = SWIG_OLDOBJ;
2627         }
2628       } else {
2629         *cptr = PyString_AsString(obj);
2630       }
2631     }
2632     if (psize) *psize = len + 1;
2633     return SWIG_OK;
2634   } else {
2635     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2636     if (pchar_descriptor) {
2637       void* vptr = 0;
2638       if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2639         if (cptr) *cptr = (char *) vptr;
2640         if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
2641         if (alloc) *alloc = SWIG_OLDOBJ;
2642         return SWIG_OK;
2643       }
2644     }
2645   }
2646   return SWIG_TypeError;
2647 }
2648
2649
2650
2651
2652 SWIGINTERN ldb_dn *new_ldb_dn(ldb *ldb_ctx,char const *str){
2653             ldb_dn *ret = ldb_dn_new(ldb_ctx, ldb_ctx, str);
2654             /* ldb_dn_new() doesn't accept NULL as memory context, so 
2655                we do it this way... */
2656             talloc_steal(NULL, ret);
2657
2658             if (ret == NULL)
2659                 SWIG_exception(SWIG_ValueError, 
2660                                 "unable to parse dn string");
2661 fail:
2662             return ret;
2663         }
2664 SWIGINTERN void delete_ldb_dn(ldb_dn *self){ talloc_free(self); }
2665
2666 SWIGINTERNINLINE PyObject*
2667   SWIG_From_bool  (bool value)
2668 {
2669   return PyBool_FromLong(value ? 1 : 0);
2670 }
2671
2672
2673 SWIGINTERNINLINE PyObject *
2674 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
2675 {
2676   if (carray) {
2677     if (size > INT_MAX) {
2678       swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2679       return pchar_descriptor ? 
2680         SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
2681     } else {
2682       return PyString_FromStringAndSize(carray, (int)(size));
2683     }
2684   } else {
2685     return SWIG_Py_Void();
2686   }
2687 }
2688
2689
2690 SWIGINTERNINLINE PyObject * 
2691 SWIG_FromCharPtr(const char *cptr)
2692
2693   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
2694 }
2695
2696 SWIGINTERN ldb_dn *ldb_dn_parent(ldb_dn *self){ return ldb_dn_get_parent(NULL, self); }
2697 SWIGINTERN char const *ldb_dn_canonical_str(ldb_dn *self){
2698             return ldb_dn_canonical_string(self, self);
2699         }
2700 SWIGINTERN char const *ldb_dn_canonical_ex_str(ldb_dn *self){
2701             return ldb_dn_canonical_ex_string(self, self);
2702         }
2703 SWIGINTERN ldb_dn *ldb_dn___add__(ldb_dn *self,ldb_dn *other){
2704             ldb_dn *ret = ldb_dn_copy(NULL, self);
2705             ldb_dn_add_child(ret, other);
2706             return ret;
2707         }
2708
2709 int ldb_dn_from_pyobject(TALLOC_CTX *mem_ctx, PyObject *object, 
2710                          struct ldb_context *ldb_ctx, ldb_dn **dn)
2711 {
2712     int ret;
2713     struct ldb_dn *odn;
2714     if (ldb_ctx != NULL && PyString_Check(object)) {
2715         odn = ldb_dn_new(mem_ctx, ldb_ctx, PyString_AsString(object));
2716         if (!odn) {
2717                 return SWIG_ERROR;
2718         }
2719         *dn = odn;
2720         return 0;
2721     }
2722     ret = SWIG_ConvertPtr(object, (void **)&odn, SWIGTYPE_p_ldb_dn, 
2723                            SWIG_POINTER_EXCEPTION);
2724     *dn = ldb_dn_copy(mem_ctx, odn);
2725     if (odn && !*dn) {
2726         return SWIG_ERROR;
2727     }
2728     return ret;
2729 }
2730
2731 ldb_msg_element *ldb_msg_element_from_pyobject(TALLOC_CTX *mem_ctx,
2732                                                PyObject *set_obj, int flags,
2733                                                const char *attr_name)
2734 {
2735     struct ldb_message_element *me = talloc(mem_ctx, struct ldb_message_element);
2736     me->name = attr_name;
2737     me->flags = flags;
2738     if (PyString_Check(set_obj)) {
2739         me->num_values = 1;
2740         me->values = talloc_array(me, struct ldb_val, me->num_values);
2741         me->values[0].length = PyString_Size(set_obj);
2742         me->values[0].data = (uint8_t *)talloc_strdup(me->values, 
2743                                            PyString_AsString(set_obj));
2744     } else if (PySequence_Check(set_obj)) {
2745         int i;
2746         me->num_values = PySequence_Size(set_obj);
2747         me->values = talloc_array(me, struct ldb_val, me->num_values);
2748         for (i = 0; i < me->num_values; i++) {
2749             PyObject *obj = PySequence_GetItem(set_obj, i);
2750             me->values[i].length = PyString_Size(obj);
2751             me->values[i].data = (uint8_t *)PyString_AsString(obj);
2752         }
2753     } else {
2754         talloc_free(me);
2755         me = NULL;
2756     }
2757
2758     return me;
2759 }
2760
2761 PyObject *ldb_msg_element_to_set(struct ldb_context *ldb_ctx, 
2762                                  ldb_msg_element *me)
2763 {
2764     int i;
2765     PyObject *result;
2766
2767     /* Python << 2.5 doesn't have PySet_New and PySet_Add. */
2768     result = PyList_New(me->num_values);
2769
2770     for (i = 0; i < me->num_values; i++) {
2771         PyList_SetItem(result, i,
2772             ldb_val_to_py_object(ldb_ctx, me, &me->values[i]));
2773     }
2774
2775     return result;
2776 }
2777
2778
2779 SWIGINTERN PyObject *ldb_msg_element___iter__(ldb_msg_element *self){
2780             return PyObject_GetIter(ldb_msg_element_to_set(NULL, self));
2781         }
2782 SWIGINTERN PyObject *ldb_msg_element___set__(ldb_msg_element *self){
2783             return ldb_msg_element_to_set(NULL, self);
2784         }
2785
2786 #include <limits.h>
2787 #if !defined(SWIG_NO_LLONG_MAX)
2788 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
2789 #   define LLONG_MAX __LONG_LONG_MAX__
2790 #   define LLONG_MIN (-LLONG_MAX - 1LL)
2791 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
2792 # endif
2793 #endif
2794
2795
2796 SWIGINTERN int
2797 SWIG_AsVal_double (PyObject *obj, double *val)
2798 {
2799   int res = SWIG_TypeError;
2800   if (PyFloat_Check(obj)) {
2801     if (val) *val = PyFloat_AsDouble(obj);
2802     return SWIG_OK;
2803   } else if (PyInt_Check(obj)) {
2804     if (val) *val = PyInt_AsLong(obj);
2805     return SWIG_OK;
2806   } else if (PyLong_Check(obj)) {
2807     double v = PyLong_AsDouble(obj);
2808     if (!PyErr_Occurred()) {
2809       if (val) *val = v;
2810       return SWIG_OK;
2811     } else {
2812       PyErr_Clear();
2813     }
2814   }
2815 #ifdef SWIG_PYTHON_CAST_MODE
2816   {
2817     int dispatch = 0;
2818     double d = PyFloat_AsDouble(obj);
2819     if (!PyErr_Occurred()) {
2820       if (val) *val = d;
2821       return SWIG_AddCast(SWIG_OK);
2822     } else {
2823       PyErr_Clear();
2824     }
2825     if (!dispatch) {
2826       long v = PyLong_AsLong(obj);
2827       if (!PyErr_Occurred()) {
2828         if (val) *val = v;
2829         return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
2830       } else {
2831         PyErr_Clear();
2832       }
2833     }
2834   }
2835 #endif
2836   return res;
2837 }
2838
2839
2840 #include <float.h>
2841
2842
2843 #include <math.h>
2844
2845
2846 SWIGINTERNINLINE int
2847 SWIG_CanCastAsInteger(double *d, double min, double max) {
2848   double x = *d;
2849   if ((min <= x && x <= max)) {
2850    double fx = floor(x);
2851    double cx = ceil(x);
2852    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
2853    if ((errno == EDOM) || (errno == ERANGE)) {
2854      errno = 0;
2855    } else {
2856      double summ, reps, diff;
2857      if (rd < x) {
2858        diff = x - rd;
2859      } else if (rd > x) {
2860        diff = rd - x;
2861      } else {
2862        return 1;
2863      }
2864      summ = rd + x;
2865      reps = diff/summ;
2866      if (reps < 8*DBL_EPSILON) {
2867        *d = rd;
2868        return 1;
2869      }
2870    }
2871   }
2872   return 0;
2873 }
2874
2875
2876 SWIGINTERN int
2877 SWIG_AsVal_long (PyObject *obj, long* val)
2878 {
2879   if (PyInt_Check(obj)) {
2880     if (val) *val = PyInt_AsLong(obj);
2881     return SWIG_OK;
2882   } else if (PyLong_Check(obj)) {
2883     long v = PyLong_AsLong(obj);
2884     if (!PyErr_Occurred()) {
2885       if (val) *val = v;
2886       return SWIG_OK;
2887     } else {
2888       PyErr_Clear();
2889     }
2890   }
2891 #ifdef SWIG_PYTHON_CAST_MODE
2892   {
2893     int dispatch = 0;
2894     long v = PyInt_AsLong(obj);
2895     if (!PyErr_Occurred()) {
2896       if (val) *val = v;
2897       return SWIG_AddCast(SWIG_OK);
2898     } else {
2899       PyErr_Clear();
2900     }
2901     if (!dispatch) {
2902       double d;
2903       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2904       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
2905         if (val) *val = (long)(d);
2906         return res;
2907       }
2908     }
2909   }
2910 #endif
2911   return SWIG_TypeError;
2912 }
2913
2914
2915 SWIGINTERN int
2916 SWIG_AsVal_int (PyObject * obj, int *val)
2917 {
2918   long v;
2919   int res = SWIG_AsVal_long (obj, &v);
2920   if (SWIG_IsOK(res)) {
2921     if ((v < INT_MIN || v > INT_MAX)) {
2922       return SWIG_OverflowError;
2923     } else {
2924       if (val) *val = (int)(v);
2925     }
2926   }  
2927   return res;
2928 }
2929
2930 SWIGINTERN ldb_msg_element *new_ldb_msg_element(PyObject *set_obj,int flags,char const *name){
2931             return ldb_msg_element_from_pyobject(NULL, set_obj, flags, name);
2932         }
2933 SWIGINTERN int ldb_msg_element___len__(ldb_msg_element *self){
2934             return self->num_values;
2935         }
2936 SWIGINTERN PyObject *ldb_msg_element_get(ldb_msg_element *self,int i){
2937             if (i < 0 || i >= self->num_values)
2938                 return Py_None;
2939
2940             return ldb_val_to_py_object(NULL, self, &self->values[i]);
2941         }
2942 SWIGINTERN void delete_ldb_msg_element(ldb_msg_element *self){ talloc_free(self); }
2943
2944     PyObject *ldb_msg_list_elements(ldb_msg *msg)
2945     {
2946         int i;
2947         PyObject *obj = PyList_New(msg->num_elements);
2948         for (i = 0; i < msg->num_elements; i++)
2949             PyList_SetItem(obj, i, PyString_FromString(msg->elements[i].name));
2950         return obj;
2951     }
2952
2953 SWIGINTERN ldb_msg *new_ldb_msg(ldb_dn *dn){ 
2954             ldb_msg *ret = ldb_msg_new(NULL); 
2955             ret->dn = talloc_reference(ret, dn);
2956             return ret;
2957         }
2958 SWIGINTERN void delete_ldb_msg(ldb_msg *self){ talloc_free(self); }
2959 SWIGINTERN void ldb_msg___setitem____SWIG_0(ldb_msg *self,char const *attr_name,ldb_msg_element *val){
2960             struct ldb_message_element *el;
2961             
2962             ldb_msg_remove_attr(self, attr_name);
2963
2964             el = talloc(self, struct ldb_message_element);
2965             el->name = talloc_strdup(el, attr_name);
2966             el->num_values = val->num_values;
2967             el->values = talloc_reference(el, val->values);
2968
2969             ldb_msg_add(self, el, val->flags);
2970         }
2971 SWIGINTERN void ldb_msg___setitem____SWIG_1(ldb_msg *self,char const *attr_name,PyObject *val){
2972             struct ldb_message_element *el = ldb_msg_element_from_pyobject(NULL,
2973                                                 val, 0, attr_name);
2974             talloc_steal(self, el);
2975             ldb_msg_remove_attr(self, attr_name);
2976             ldb_msg_add(self, el, el->flags);
2977         }
2978 SWIGINTERN unsigned int ldb_msg___len__(ldb_msg *self){ return self->num_elements; }
2979
2980 SWIGINTERNINLINE PyObject* 
2981 SWIG_From_unsigned_SS_long  (unsigned long value)
2982 {
2983   return (value > LONG_MAX) ?
2984     PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); 
2985 }
2986
2987
2988 SWIGINTERNINLINE PyObject *
2989 SWIG_From_unsigned_SS_int  (unsigned int value)
2990 {    
2991   return SWIG_From_unsigned_SS_long  (value);
2992 }
2993
2994 SWIGINTERN PyObject *ldb_msg_keys(ldb_msg *self){
2995             return ldb_msg_list_elements(self);
2996         }
2997 SWIGINTERN PyObject *ldb_msg___iter__(ldb_msg *self){
2998             return PyObject_GetIter(ldb_msg_list_elements(self));
2999         }
3000
3001 static void py_ldb_debug(void *context, enum ldb_debug_level level, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(3, 0);
3002
3003 static void py_ldb_debug(void *context, enum ldb_debug_level level, const char *fmt, va_list ap)
3004 {
3005     char *text;
3006     PyObject *fn = context;
3007
3008     vasprintf(&text, fmt, ap);
3009     PyObject_CallFunction(fn, (char *)"(i,s)", level, text);
3010     free(text);
3011 }
3012
3013
3014     static PyObject *ldb_ldif_to_pyobject(ldb_ldif *ldif)
3015     {
3016         if (ldif == NULL) {
3017             return Py_None;
3018         } else {
3019             return Py_BuildValue((char *)"(iO)", ldif->changetype, 
3020                    SWIG_NewPointerObj(ldif->msg, SWIGTYPE_p_ldb_message, 0));
3021         }
3022     }
3023
3024
3025 PyObject *PyExc_LdbError;
3026
3027 SWIGINTERN ldb *new_ldb(){ return ldb_init(NULL); }
3028
3029 SWIGINTERN int
3030 SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) 
3031 {
3032   if (PyInt_Check(obj)) {
3033     long v = PyInt_AsLong(obj);
3034     if (v >= 0) {
3035       if (val) *val = v;
3036       return SWIG_OK;
3037     } else {
3038       return SWIG_OverflowError;
3039     }
3040   } else if (PyLong_Check(obj)) {
3041     unsigned long v = PyLong_AsUnsignedLong(obj);
3042     if (!PyErr_Occurred()) {
3043       if (val) *val = v;
3044       return SWIG_OK;
3045     } else {
3046       PyErr_Clear();
3047     }
3048   }
3049 #ifdef SWIG_PYTHON_CAST_MODE
3050   {
3051     int dispatch = 0;
3052     unsigned long v = PyLong_AsUnsignedLong(obj);
3053     if (!PyErr_Occurred()) {
3054       if (val) *val = v;
3055       return SWIG_AddCast(SWIG_OK);
3056     } else {
3057       PyErr_Clear();
3058     }
3059     if (!dispatch) {
3060       double d;
3061       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
3062       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
3063         if (val) *val = (unsigned long)(d);
3064         return res;
3065       }
3066     }
3067   }
3068 #endif
3069   return SWIG_TypeError;
3070 }
3071
3072
3073 SWIGINTERN int
3074 SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
3075 {
3076   unsigned long v;
3077   int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
3078   if (SWIG_IsOK(res)) {
3079     if ((v > UINT_MAX)) {
3080       return SWIG_OverflowError;
3081     } else {
3082       if (val) *val = (unsigned int)(v);
3083     }
3084   }  
3085   return res;
3086 }
3087
3088 SWIGINTERN void delete_ldb(ldb *self){ talloc_free(self); }
3089 SWIGINTERN ldb_error ldb_search_ex(ldb *self,TALLOC_CTX *mem_ctx,ldb_dn *base,enum ldb_scope scope,char const *expression,char const *const *attrs,struct ldb_control **controls,struct ldb_result **OUT){
3090             int ret;
3091             struct ldb_result *res;
3092             struct ldb_request *req;
3093             res = talloc_zero(mem_ctx, struct ldb_result);
3094             if (!res) {
3095                 return 1;
3096             }
3097
3098             ret = ldb_build_search_req(&req, self, mem_ctx,
3099                            base?base:ldb_get_default_basedn(self),
3100                            scope,
3101                            expression,
3102                            attrs,
3103                            controls,
3104                            res,
3105                            ldb_search_default_callback);
3106
3107             if (ret != 0) {
3108                 talloc_free(res);
3109                 return ret;
3110             }
3111
3112             ldb_set_timeout(self, req, 0); /* use default timeout */
3113                 
3114             ret = ldb_request(self, req);
3115                 
3116             if (ret == 0) {
3117                 ret = ldb_wait(req->handle, LDB_WAIT_ALL);
3118             }
3119
3120             talloc_free(req);
3121
3122             *OUT = res;
3123             return ret;
3124         }
3125 SWIGINTERN PyObject *ldb_schema_format_value(ldb *self,char const *element_name,PyObject *val){
3126                 const struct ldb_schema_attribute *a;
3127                 struct ldb_val old_val;
3128                 struct ldb_val new_val;
3129                 TALLOC_CTX *mem_ctx = talloc_new(NULL);
3130                 PyObject *ret;
3131                 
3132                 old_val.data = PyString_AsString(val);
3133                 old_val.length = PyString_Size(val);
3134                 
3135                 a = ldb_schema_attribute_by_name(self, element_name);
3136         
3137                 if (a == NULL) {
3138                         return Py_None;
3139                 }
3140                 
3141                 if (a->syntax->ldif_write_fn(self, mem_ctx, &old_val, &new_val) != 0) {
3142                         talloc_free(mem_ctx);
3143                         return Py_None;
3144                  }
3145         
3146                 ret = PyString_FromStringAndSize((const char *)new_val.data, new_val.length);
3147                 
3148                 talloc_free(mem_ctx);
3149                 
3150                 return ret;
3151         }
3152 SWIGINTERN ldb_error ldb___contains__(ldb *self,ldb_dn *dn,struct ldb_result **result_as_bool){
3153             return ldb_search(self, dn, LDB_SCOPE_BASE, NULL, NULL, 
3154                              result_as_bool);
3155         }
3156 SWIGINTERN PyObject *ldb_parse_ldif(ldb *self,char const *s){
3157             PyObject *list = PyList_New(0);
3158             struct ldb_ldif *ldif;
3159             while ((ldif = ldb_ldif_read_string(self, &s)) != NULL) {
3160                 PyList_Append(list, ldb_ldif_to_pyobject(ldif));
3161             }
3162             return PyObject_GetIter(list);
3163         }
3164
3165 static char *timestring(time_t t)
3166 {
3167     char *tresult = ldb_timestring(NULL, t);
3168     char *result = strdup(tresult);
3169     talloc_free(tresult);
3170     return result; 
3171 }
3172
3173 #ifdef __cplusplus
3174 extern "C" {
3175 #endif
3176 SWIGINTERN PyObject *_wrap_ldb_val_to_py_object(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3177   PyObject *resultobj = 0;
3178   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
3179   struct ldb_message_element *arg2 = (struct ldb_message_element *) 0 ;
3180   struct ldb_val *arg3 = (struct ldb_val *) 0 ;
3181   PyObject *result = 0 ;
3182   void *argp1 = 0 ;
3183   int res1 = 0 ;
3184   void *argp2 = 0 ;
3185   int res2 = 0 ;
3186   void *argp3 = 0 ;
3187   int res3 = 0 ;
3188   PyObject * obj0 = 0 ;
3189   PyObject * obj1 = 0 ;
3190   PyObject * obj2 = 0 ;
3191   char *  kwnames[] = {
3192     (char *) "ldb_ctx",(char *) "el",(char *) "val", NULL 
3193   };
3194   
3195   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:ldb_val_to_py_object",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
3196   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
3197   if (!SWIG_IsOK(res1)) {
3198     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_val_to_py_object" "', argument " "1"" of type '" "struct ldb_context *""'"); 
3199   }
3200   arg1 = (struct ldb_context *)(argp1);
3201   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3202   if (!SWIG_IsOK(res2)) {
3203     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ldb_val_to_py_object" "', argument " "2"" of type '" "struct ldb_message_element *""'"); 
3204   }
3205   arg2 = (struct ldb_message_element *)(argp2);
3206   res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_ldb_val, 0 |  0 );
3207   if (!SWIG_IsOK(res3)) {
3208     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ldb_val_to_py_object" "', argument " "3"" of type '" "struct ldb_val *""'"); 
3209   }
3210   arg3 = (struct ldb_val *)(argp3);
3211   if (arg1 == NULL)
3212   SWIG_exception(SWIG_ValueError, 
3213     "ldb context must be non-NULL");
3214   result = (PyObject *)ldb_val_to_py_object(arg1,arg2,arg3);
3215   resultobj = result;
3216   return resultobj;
3217 fail:
3218   return NULL;
3219 }
3220
3221
3222 SWIGINTERN PyObject *_wrap_new_Dn(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3223   PyObject *resultobj = 0;
3224   ldb *arg1 = (ldb *) 0 ;
3225   char *arg2 = (char *) 0 ;
3226   ldb_dn *result = 0 ;
3227   void *argp1 = 0 ;
3228   int res1 = 0 ;
3229   int res2 ;
3230   char *buf2 = 0 ;
3231   int alloc2 = 0 ;
3232   PyObject * obj0 = 0 ;
3233   PyObject * obj1 = 0 ;
3234   char *  kwnames[] = {
3235     (char *) "ldb_ctx",(char *) "str", NULL 
3236   };
3237   
3238   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:new_Dn",kwnames,&obj0,&obj1)) SWIG_fail;
3239   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
3240   if (!SWIG_IsOK(res1)) {
3241     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Dn" "', argument " "1"" of type '" "ldb *""'"); 
3242   }
3243   arg1 = (ldb *)(argp1);
3244   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
3245   if (!SWIG_IsOK(res2)) {
3246     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_Dn" "', argument " "2"" of type '" "char const *""'");
3247   }
3248   arg2 = (char *)(buf2);
3249   if (arg1 == NULL)
3250   SWIG_exception(SWIG_ValueError, 
3251     "ldb context must be non-NULL");
3252   result = (ldb_dn *)new_ldb_dn(arg1,(char const *)arg2);
3253   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, SWIG_POINTER_NEW |  0 );
3254   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3255   return resultobj;
3256 fail:
3257   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3258   return NULL;
3259 }
3260
3261
3262 SWIGINTERN PyObject *_wrap_delete_Dn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3263   PyObject *resultobj = 0;
3264   ldb_dn *arg1 = (ldb_dn *) 0 ;
3265   void *argp1 = 0 ;
3266   int res1 = 0 ;
3267   PyObject *swig_obj[1] ;
3268   
3269   if (!args) SWIG_fail;
3270   swig_obj[0] = args;
3271   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, SWIG_POINTER_DISOWN |  0 );
3272   if (!SWIG_IsOK(res1)) {
3273     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Dn" "', argument " "1"" of type '" "ldb_dn *""'"); 
3274   }
3275   arg1 = (ldb_dn *)(argp1);
3276   delete_ldb_dn(arg1);
3277   
3278   resultobj = SWIG_Py_Void();
3279   return resultobj;
3280 fail:
3281   return NULL;
3282 }
3283
3284
3285 SWIGINTERN PyObject *_wrap_Dn_validate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3286   PyObject *resultobj = 0;
3287   ldb_dn *arg1 = (ldb_dn *) 0 ;
3288   bool result;
3289   void *argp1 = 0 ;
3290   int res1 = 0 ;
3291   PyObject *swig_obj[1] ;
3292   
3293   if (!args) SWIG_fail;
3294   swig_obj[0] = args;
3295   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3296   if (!SWIG_IsOK(res1)) {
3297     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_validate" "', argument " "1"" of type '" "ldb_dn *""'"); 
3298   }
3299   arg1 = (ldb_dn *)(argp1);
3300   result = (bool)ldb_dn_validate(arg1);
3301   resultobj = SWIG_From_bool((bool)(result));
3302   return resultobj;
3303 fail:
3304   return NULL;
3305 }
3306
3307
3308 SWIGINTERN PyObject *_wrap_Dn_get_casefold(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3309   PyObject *resultobj = 0;
3310   ldb_dn *arg1 = (ldb_dn *) 0 ;
3311   char *result = 0 ;
3312   void *argp1 = 0 ;
3313   int res1 = 0 ;
3314   PyObject *swig_obj[1] ;
3315   
3316   if (!args) SWIG_fail;
3317   swig_obj[0] = args;
3318   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3319   if (!SWIG_IsOK(res1)) {
3320     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_get_casefold" "', argument " "1"" of type '" "ldb_dn *""'"); 
3321   }
3322   arg1 = (ldb_dn *)(argp1);
3323   result = (char *)ldb_dn_get_casefold(arg1);
3324   resultobj = SWIG_FromCharPtr((const char *)result);
3325   return resultobj;
3326 fail:
3327   return NULL;
3328 }
3329
3330
3331 SWIGINTERN PyObject *_wrap_Dn___str__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3332   PyObject *resultobj = 0;
3333   ldb_dn *arg1 = (ldb_dn *) 0 ;
3334   char *result = 0 ;
3335   void *argp1 = 0 ;
3336   int res1 = 0 ;
3337   PyObject *swig_obj[1] ;
3338   
3339   if (!args) SWIG_fail;
3340   swig_obj[0] = args;
3341   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3342   if (!SWIG_IsOK(res1)) {
3343     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn___str__" "', argument " "1"" of type '" "ldb_dn *""'"); 
3344   }
3345   arg1 = (ldb_dn *)(argp1);
3346   result = (char *)ldb_dn_get_linearized(arg1);
3347   resultobj = SWIG_FromCharPtr((const char *)result);
3348   return resultobj;
3349 fail:
3350   return NULL;
3351 }
3352
3353
3354 SWIGINTERN PyObject *_wrap_Dn_parent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3355   PyObject *resultobj = 0;
3356   ldb_dn *arg1 = (ldb_dn *) 0 ;
3357   ldb_dn *result = 0 ;
3358   void *argp1 = 0 ;
3359   int res1 = 0 ;
3360   PyObject *swig_obj[1] ;
3361   
3362   if (!args) SWIG_fail;
3363   swig_obj[0] = args;
3364   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3365   if (!SWIG_IsOK(res1)) {
3366     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_parent" "', argument " "1"" of type '" "ldb_dn *""'"); 
3367   }
3368   arg1 = (ldb_dn *)(argp1);
3369   result = (ldb_dn *)ldb_dn_parent(arg1);
3370   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
3371   return resultobj;
3372 fail:
3373   return NULL;
3374 }
3375
3376
3377 SWIGINTERN PyObject *_wrap_Dn___cmp__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3378   PyObject *resultobj = 0;
3379   ldb_dn *arg1 = (ldb_dn *) 0 ;
3380   ldb_dn *arg2 = (ldb_dn *) 0 ;
3381   int result;
3382   void *argp1 = 0 ;
3383   int res1 = 0 ;
3384   void *argp2 = 0 ;
3385   int res2 = 0 ;
3386   PyObject * obj0 = 0 ;
3387   PyObject * obj1 = 0 ;
3388   char *  kwnames[] = {
3389     (char *) "self",(char *) "other", NULL 
3390   };
3391   
3392   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn___cmp__",kwnames,&obj0,&obj1)) SWIG_fail;
3393   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3394   if (!SWIG_IsOK(res1)) {
3395     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn___cmp__" "', argument " "1"" of type '" "ldb_dn *""'"); 
3396   }
3397   arg1 = (ldb_dn *)(argp1);
3398   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_dn, 0 |  0 );
3399   if (!SWIG_IsOK(res2)) {
3400     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Dn___cmp__" "', argument " "2"" of type '" "ldb_dn *""'"); 
3401   }
3402   arg2 = (ldb_dn *)(argp2);
3403   result = (int)ldb_dn_compare(arg1,arg2);
3404   resultobj = SWIG_From_int((int)(result));
3405   return resultobj;
3406 fail:
3407   return NULL;
3408 }
3409
3410
3411 SWIGINTERN PyObject *_wrap_Dn_is_valid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3412   PyObject *resultobj = 0;
3413   ldb_dn *arg1 = (ldb_dn *) 0 ;
3414   bool result;
3415   void *argp1 = 0 ;
3416   int res1 = 0 ;
3417   PyObject *swig_obj[1] ;
3418   
3419   if (!args) SWIG_fail;
3420   swig_obj[0] = args;
3421   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3422   if (!SWIG_IsOK(res1)) {
3423     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_is_valid" "', argument " "1"" of type '" "ldb_dn *""'"); 
3424   }
3425   arg1 = (ldb_dn *)(argp1);
3426   result = (bool)ldb_dn_is_valid(arg1);
3427   resultobj = SWIG_From_bool((bool)(result));
3428   return resultobj;
3429 fail:
3430   return NULL;
3431 }
3432
3433
3434 SWIGINTERN PyObject *_wrap_Dn_is_special(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3435   PyObject *resultobj = 0;
3436   ldb_dn *arg1 = (ldb_dn *) 0 ;
3437   bool result;
3438   void *argp1 = 0 ;
3439   int res1 = 0 ;
3440   PyObject *swig_obj[1] ;
3441   
3442   if (!args) SWIG_fail;
3443   swig_obj[0] = args;
3444   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3445   if (!SWIG_IsOK(res1)) {
3446     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_is_special" "', argument " "1"" of type '" "ldb_dn *""'"); 
3447   }
3448   arg1 = (ldb_dn *)(argp1);
3449   result = (bool)ldb_dn_is_special(arg1);
3450   resultobj = SWIG_From_bool((bool)(result));
3451   return resultobj;
3452 fail:
3453   return NULL;
3454 }
3455
3456
3457 SWIGINTERN PyObject *_wrap_Dn_is_null(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3458   PyObject *resultobj = 0;
3459   ldb_dn *arg1 = (ldb_dn *) 0 ;
3460   bool result;
3461   void *argp1 = 0 ;
3462   int res1 = 0 ;
3463   PyObject *swig_obj[1] ;
3464   
3465   if (!args) SWIG_fail;
3466   swig_obj[0] = args;
3467   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3468   if (!SWIG_IsOK(res1)) {
3469     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_is_null" "', argument " "1"" of type '" "ldb_dn *""'"); 
3470   }
3471   arg1 = (ldb_dn *)(argp1);
3472   result = (bool)ldb_dn_is_null(arg1);
3473   resultobj = SWIG_From_bool((bool)(result));
3474   return resultobj;
3475 fail:
3476   return NULL;
3477 }
3478
3479
3480 SWIGINTERN PyObject *_wrap_Dn_check_special(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3481   PyObject *resultobj = 0;
3482   ldb_dn *arg1 = (ldb_dn *) 0 ;
3483   char *arg2 = (char *) 0 ;
3484   bool result;
3485   void *argp1 = 0 ;
3486   int res1 = 0 ;
3487   int res2 ;
3488   char *buf2 = 0 ;
3489   int alloc2 = 0 ;
3490   PyObject * obj0 = 0 ;
3491   PyObject * obj1 = 0 ;
3492   char *  kwnames[] = {
3493     (char *) "self",(char *) "name", NULL 
3494   };
3495   
3496   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_check_special",kwnames,&obj0,&obj1)) SWIG_fail;
3497   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3498   if (!SWIG_IsOK(res1)) {
3499     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_check_special" "', argument " "1"" of type '" "ldb_dn *""'"); 
3500   }
3501   arg1 = (ldb_dn *)(argp1);
3502   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
3503   if (!SWIG_IsOK(res2)) {
3504     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Dn_check_special" "', argument " "2"" of type '" "char const *""'");
3505   }
3506   arg2 = (char *)(buf2);
3507   result = (bool)ldb_dn_check_special(arg1,(char const *)arg2);
3508   resultobj = SWIG_From_bool((bool)(result));
3509   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3510   return resultobj;
3511 fail:
3512   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3513   return NULL;
3514 }
3515
3516
3517 SWIGINTERN PyObject *_wrap_Dn___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3518   PyObject *resultobj = 0;
3519   ldb_dn *arg1 = (ldb_dn *) 0 ;
3520   int result;
3521   void *argp1 = 0 ;
3522   int res1 = 0 ;
3523   PyObject *swig_obj[1] ;
3524   
3525   if (!args) SWIG_fail;
3526   swig_obj[0] = args;
3527   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3528   if (!SWIG_IsOK(res1)) {
3529     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn___len__" "', argument " "1"" of type '" "ldb_dn *""'"); 
3530   }
3531   arg1 = (ldb_dn *)(argp1);
3532   result = (int)ldb_dn_get_comp_num(arg1);
3533   resultobj = SWIG_From_int((int)(result));
3534   return resultobj;
3535 fail:
3536   return NULL;
3537 }
3538
3539
3540 SWIGINTERN PyObject *_wrap_Dn_add_child(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3541   PyObject *resultobj = 0;
3542   ldb_dn *arg1 = (ldb_dn *) 0 ;
3543   ldb_dn *arg2 = (ldb_dn *) 0 ;
3544   bool result;
3545   void *argp1 = 0 ;
3546   int res1 = 0 ;
3547   void *argp2 = 0 ;
3548   int res2 = 0 ;
3549   PyObject * obj0 = 0 ;
3550   PyObject * obj1 = 0 ;
3551   char *  kwnames[] = {
3552     (char *) "self",(char *) "child", NULL 
3553   };
3554   
3555   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_add_child",kwnames,&obj0,&obj1)) SWIG_fail;
3556   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3557   if (!SWIG_IsOK(res1)) {
3558     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_add_child" "', argument " "1"" of type '" "ldb_dn *""'"); 
3559   }
3560   arg1 = (ldb_dn *)(argp1);
3561   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_dn, 0 |  0 );
3562   if (!SWIG_IsOK(res2)) {
3563     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Dn_add_child" "', argument " "2"" of type '" "ldb_dn *""'"); 
3564   }
3565   arg2 = (ldb_dn *)(argp2);
3566   result = (bool)ldb_dn_add_child(arg1,arg2);
3567   resultobj = SWIG_From_bool((bool)(result));
3568   return resultobj;
3569 fail:
3570   return NULL;
3571 }
3572
3573
3574 SWIGINTERN PyObject *_wrap_Dn_add_base(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3575   PyObject *resultobj = 0;
3576   ldb_dn *arg1 = (ldb_dn *) 0 ;
3577   ldb_dn *arg2 = (ldb_dn *) 0 ;
3578   bool result;
3579   void *argp1 = 0 ;
3580   int res1 = 0 ;
3581   void *argp2 = 0 ;
3582   int res2 = 0 ;
3583   PyObject * obj0 = 0 ;
3584   PyObject * obj1 = 0 ;
3585   char *  kwnames[] = {
3586     (char *) "self",(char *) "base", NULL 
3587   };
3588   
3589   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_add_base",kwnames,&obj0,&obj1)) SWIG_fail;
3590   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3591   if (!SWIG_IsOK(res1)) {
3592     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_add_base" "', argument " "1"" of type '" "ldb_dn *""'"); 
3593   }
3594   arg1 = (ldb_dn *)(argp1);
3595   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_dn, 0 |  0 );
3596   if (!SWIG_IsOK(res2)) {
3597     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Dn_add_base" "', argument " "2"" of type '" "ldb_dn *""'"); 
3598   }
3599   arg2 = (ldb_dn *)(argp2);
3600   result = (bool)ldb_dn_add_base(arg1,arg2);
3601   resultobj = SWIG_From_bool((bool)(result));
3602   return resultobj;
3603 fail:
3604   return NULL;
3605 }
3606
3607
3608 SWIGINTERN PyObject *_wrap_Dn_canonical_str(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3609   PyObject *resultobj = 0;
3610   ldb_dn *arg1 = (ldb_dn *) 0 ;
3611   char *result = 0 ;
3612   void *argp1 = 0 ;
3613   int res1 = 0 ;
3614   PyObject *swig_obj[1] ;
3615   
3616   if (!args) SWIG_fail;
3617   swig_obj[0] = args;
3618   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3619   if (!SWIG_IsOK(res1)) {
3620     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_canonical_str" "', argument " "1"" of type '" "ldb_dn *""'"); 
3621   }
3622   arg1 = (ldb_dn *)(argp1);
3623   result = (char *)ldb_dn_canonical_str(arg1);
3624   resultobj = SWIG_FromCharPtr((const char *)result);
3625   return resultobj;
3626 fail:
3627   return NULL;
3628 }
3629
3630
3631 SWIGINTERN PyObject *_wrap_Dn_canonical_ex_str(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3632   PyObject *resultobj = 0;
3633   ldb_dn *arg1 = (ldb_dn *) 0 ;
3634   char *result = 0 ;
3635   void *argp1 = 0 ;
3636   int res1 = 0 ;
3637   PyObject *swig_obj[1] ;
3638   
3639   if (!args) SWIG_fail;
3640   swig_obj[0] = args;
3641   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3642   if (!SWIG_IsOK(res1)) {
3643     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn_canonical_ex_str" "', argument " "1"" of type '" "ldb_dn *""'"); 
3644   }
3645   arg1 = (ldb_dn *)(argp1);
3646   result = (char *)ldb_dn_canonical_ex_str(arg1);
3647   resultobj = SWIG_FromCharPtr((const char *)result);
3648   return resultobj;
3649 fail:
3650   return NULL;
3651 }
3652
3653
3654 SWIGINTERN PyObject *_wrap_Dn___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3655   PyObject *resultobj = 0;
3656   ldb_dn *arg1 = (ldb_dn *) 0 ;
3657   ldb_dn *arg2 = (ldb_dn *) 0 ;
3658   ldb_dn *result = 0 ;
3659   void *argp1 = 0 ;
3660   int res1 = 0 ;
3661   void *argp2 = 0 ;
3662   int res2 = 0 ;
3663   PyObject * obj0 = 0 ;
3664   PyObject * obj1 = 0 ;
3665   char *  kwnames[] = {
3666     (char *) "self",(char *) "other", NULL 
3667   };
3668   
3669   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn___add__",kwnames,&obj0,&obj1)) SWIG_fail;
3670   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
3671   if (!SWIG_IsOK(res1)) {
3672     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Dn___add__" "', argument " "1"" of type '" "ldb_dn *""'"); 
3673   }
3674   arg1 = (ldb_dn *)(argp1);
3675   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_dn, 0 |  0 );
3676   if (!SWIG_IsOK(res2)) {
3677     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Dn___add__" "', argument " "2"" of type '" "ldb_dn *""'"); 
3678   }
3679   arg2 = (ldb_dn *)(argp2);
3680   result = (ldb_dn *)ldb_dn___add__(arg1,arg2);
3681   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
3682   return resultobj;
3683 fail:
3684   return NULL;
3685 }
3686
3687
3688 SWIGINTERN PyObject *Dn_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3689   PyObject *obj;
3690   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3691   SWIG_TypeNewClientData(SWIGTYPE_p_ldb_dn, SWIG_NewClientData(obj));
3692   return SWIG_Py_Void();
3693 }
3694
3695 SWIGINTERN PyObject *Dn_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3696   return SWIG_Python_InitShadowInstance(args);
3697 }
3698
3699 SWIGINTERN PyObject *_wrap_ldb_msg_element___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3700   PyObject *resultobj = 0;
3701   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3702   PyObject *result = 0 ;
3703   void *argp1 = 0 ;
3704   int res1 = 0 ;
3705   PyObject *swig_obj[1] ;
3706   
3707   if (!args) SWIG_fail;
3708   swig_obj[0] = args;
3709   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3710   if (!SWIG_IsOK(res1)) {
3711     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_element___iter__" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3712   }
3713   arg1 = (ldb_msg_element *)(argp1);
3714   result = (PyObject *)ldb_msg_element___iter__(arg1);
3715   resultobj = result;
3716   return resultobj;
3717 fail:
3718   return NULL;
3719 }
3720
3721
3722 SWIGINTERN PyObject *_wrap_ldb_msg_element___set__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3723   PyObject *resultobj = 0;
3724   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3725   PyObject *result = 0 ;
3726   void *argp1 = 0 ;
3727   int res1 = 0 ;
3728   PyObject *swig_obj[1] ;
3729   
3730   if (!args) SWIG_fail;
3731   swig_obj[0] = args;
3732   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3733   if (!SWIG_IsOK(res1)) {
3734     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_element___set__" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3735   }
3736   arg1 = (ldb_msg_element *)(argp1);
3737   result = (PyObject *)ldb_msg_element___set__(arg1);
3738   resultobj = result;
3739   return resultobj;
3740 fail:
3741   return NULL;
3742 }
3743
3744
3745 SWIGINTERN PyObject *_wrap_new_MessageElement(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3746   PyObject *resultobj = 0;
3747   PyObject *arg1 = (PyObject *) 0 ;
3748   int arg2 = (int) 0 ;
3749   char *arg3 = (char *) NULL ;
3750   ldb_msg_element *result = 0 ;
3751   int val2 ;
3752   int ecode2 = 0 ;
3753   int res3 ;
3754   char *buf3 = 0 ;
3755   int alloc3 = 0 ;
3756   PyObject * obj0 = 0 ;
3757   PyObject * obj1 = 0 ;
3758   PyObject * obj2 = 0 ;
3759   char *  kwnames[] = {
3760     (char *) "set_obj",(char *) "flags",(char *) "name", NULL 
3761   };
3762   
3763   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|OO:new_MessageElement",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
3764   arg1 = obj0;
3765   if (obj1) {
3766     ecode2 = SWIG_AsVal_int(obj1, &val2);
3767     if (!SWIG_IsOK(ecode2)) {
3768       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_MessageElement" "', argument " "2"" of type '" "int""'");
3769     } 
3770     arg2 = (int)(val2);
3771   }
3772   if (obj2) {
3773     res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
3774     if (!SWIG_IsOK(res3)) {
3775       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_MessageElement" "', argument " "3"" of type '" "char const *""'");
3776     }
3777     arg3 = (char *)(buf3);
3778   }
3779   result = (ldb_msg_element *)new_ldb_msg_element(arg1,arg2,(char const *)arg3);
3780   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_message_element, SWIG_POINTER_OWN |  0 );
3781   if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3782   return resultobj;
3783 fail:
3784   if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3785   return NULL;
3786 }
3787
3788
3789 SWIGINTERN PyObject *_wrap_ldb_msg_element___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3790   PyObject *resultobj = 0;
3791   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3792   int result;
3793   void *argp1 = 0 ;
3794   int res1 = 0 ;
3795   PyObject *swig_obj[1] ;
3796   
3797   if (!args) SWIG_fail;
3798   swig_obj[0] = args;
3799   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3800   if (!SWIG_IsOK(res1)) {
3801     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_element___len__" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3802   }
3803   arg1 = (ldb_msg_element *)(argp1);
3804   result = (int)ldb_msg_element___len__(arg1);
3805   resultobj = SWIG_From_int((int)(result));
3806   return resultobj;
3807 fail:
3808   return NULL;
3809 }
3810
3811
3812 SWIGINTERN PyObject *_wrap_ldb_msg_element_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3813   PyObject *resultobj = 0;
3814   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3815   int arg2 ;
3816   PyObject *result = 0 ;
3817   void *argp1 = 0 ;
3818   int res1 = 0 ;
3819   int val2 ;
3820   int ecode2 = 0 ;
3821   PyObject * obj0 = 0 ;
3822   PyObject * obj1 = 0 ;
3823   char *  kwnames[] = {
3824     (char *) "self",(char *) "i", NULL 
3825   };
3826   
3827   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ldb_msg_element_get",kwnames,&obj0,&obj1)) SWIG_fail;
3828   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3829   if (!SWIG_IsOK(res1)) {
3830     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_element_get" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3831   }
3832   arg1 = (ldb_msg_element *)(argp1);
3833   ecode2 = SWIG_AsVal_int(obj1, &val2);
3834   if (!SWIG_IsOK(ecode2)) {
3835     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ldb_msg_element_get" "', argument " "2"" of type '" "int""'");
3836   } 
3837   arg2 = (int)(val2);
3838   result = (PyObject *)ldb_msg_element_get(arg1,arg2);
3839   resultobj = result;
3840   return resultobj;
3841 fail:
3842   return NULL;
3843 }
3844
3845
3846 SWIGINTERN PyObject *_wrap_delete_ldb_msg_element(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3847   PyObject *resultobj = 0;
3848   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3849   void *argp1 = 0 ;
3850   int res1 = 0 ;
3851   PyObject *swig_obj[1] ;
3852   
3853   if (!args) SWIG_fail;
3854   swig_obj[0] = args;
3855   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message_element, SWIG_POINTER_DISOWN |  0 );
3856   if (!SWIG_IsOK(res1)) {
3857     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ldb_msg_element" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3858   }
3859   arg1 = (ldb_msg_element *)(argp1);
3860   delete_ldb_msg_element(arg1);
3861   
3862   resultobj = SWIG_Py_Void();
3863   return resultobj;
3864 fail:
3865   return NULL;
3866 }
3867
3868
3869 SWIGINTERN PyObject *_wrap_ldb_msg_element___cmp__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3870   PyObject *resultobj = 0;
3871   ldb_msg_element *arg1 = (ldb_msg_element *) 0 ;
3872   ldb_msg_element *arg2 = (ldb_msg_element *) 0 ;
3873   int result;
3874   void *argp1 = 0 ;
3875   int res1 = 0 ;
3876   void *argp2 = 0 ;
3877   int res2 = 0 ;
3878   PyObject * obj0 = 0 ;
3879   PyObject * obj1 = 0 ;
3880   char *  kwnames[] = {
3881     (char *) "self",(char *)"arg2", NULL 
3882   };
3883   
3884   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ldb_msg_element___cmp__",kwnames,&obj0,&obj1)) SWIG_fail;
3885   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3886   if (!SWIG_IsOK(res1)) {
3887     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_element___cmp__" "', argument " "1"" of type '" "ldb_msg_element *""'"); 
3888   }
3889   arg1 = (ldb_msg_element *)(argp1);
3890   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_message_element, 0 |  0 );
3891   if (!SWIG_IsOK(res2)) {
3892     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ldb_msg_element___cmp__" "', argument " "2"" of type '" "ldb_msg_element *""'"); 
3893   }
3894   arg2 = (ldb_msg_element *)(argp2);
3895   result = (int)ldb_msg_element_compare(arg1,arg2);
3896   resultobj = SWIG_From_int((int)(result));
3897   return resultobj;
3898 fail:
3899   return NULL;
3900 }
3901
3902
3903 SWIGINTERN PyObject *ldb_msg_element_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3904   PyObject *obj;
3905   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3906   SWIG_TypeNewClientData(SWIGTYPE_p_ldb_message_element, SWIG_NewClientData(obj));
3907   return SWIG_Py_Void();
3908 }
3909
3910 SWIGINTERN PyObject *_wrap_ldb_msg_list_elements(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3911   PyObject *resultobj = 0;
3912   ldb_msg *arg1 = (ldb_msg *) 0 ;
3913   PyObject *result = 0 ;
3914   void *argp1 = 0 ;
3915   int res1 = 0 ;
3916   PyObject * obj0 = 0 ;
3917   char *  kwnames[] = {
3918     (char *) "msg", NULL 
3919   };
3920   
3921   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ldb_msg_list_elements",kwnames,&obj0)) SWIG_fail;
3922   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
3923   if (!SWIG_IsOK(res1)) {
3924     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_msg_list_elements" "', argument " "1"" of type '" "ldb_msg *""'"); 
3925   }
3926   arg1 = (ldb_msg *)(argp1);
3927   if (arg1 == NULL)
3928   SWIG_exception(SWIG_ValueError, 
3929     "Message can not be None");
3930   result = (PyObject *)ldb_msg_list_elements(arg1);
3931   resultobj = result;
3932   return resultobj;
3933 fail:
3934   return NULL;
3935 }
3936
3937
3938 SWIGINTERN PyObject *_wrap_Message_dn_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3939   PyObject *resultobj = 0;
3940   ldb_msg *arg1 = (ldb_msg *) 0 ;
3941   ldb_dn *arg2 = (ldb_dn *) 0 ;
3942   void *argp1 = 0 ;
3943   int res1 = 0 ;
3944   void *argp2 = 0 ;
3945   int res2 = 0 ;
3946   PyObject *swig_obj[2] ;
3947   
3948   if (!SWIG_Python_UnpackTuple(args,"Message_dn_set",2,2,swig_obj)) SWIG_fail;
3949   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
3950   if (!SWIG_IsOK(res1)) {
3951     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message_dn_set" "', argument " "1"" of type '" "ldb_msg *""'"); 
3952   }
3953   arg1 = (ldb_msg *)(argp1);
3954   res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_ldb_dn, SWIG_POINTER_DISOWN |  0 );
3955   if (!SWIG_IsOK(res2)) {
3956     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Message_dn_set" "', argument " "2"" of type '" "ldb_dn *""'"); 
3957   }
3958   arg2 = (ldb_dn *)(argp2);
3959   if (arg1 == NULL)
3960   SWIG_exception(SWIG_ValueError, 
3961     "Message can not be None");
3962   if (arg1) (arg1)->dn = arg2;
3963   
3964   resultobj = SWIG_Py_Void();
3965   return resultobj;
3966 fail:
3967   return NULL;
3968 }
3969
3970
3971 SWIGINTERN PyObject *_wrap_Message_dn_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3972   PyObject *resultobj = 0;
3973   ldb_msg *arg1 = (ldb_msg *) 0 ;
3974   ldb_dn *result = 0 ;
3975   void *argp1 = 0 ;
3976   int res1 = 0 ;
3977   PyObject *swig_obj[1] ;
3978   
3979   if (!args) SWIG_fail;
3980   swig_obj[0] = args;
3981   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
3982   if (!SWIG_IsOK(res1)) {
3983     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message_dn_get" "', argument " "1"" of type '" "ldb_msg *""'"); 
3984   }
3985   arg1 = (ldb_msg *)(argp1);
3986   if (arg1 == NULL)
3987   SWIG_exception(SWIG_ValueError, 
3988     "Message can not be None");
3989   result = (ldb_dn *) ((arg1)->dn);
3990   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
3991   return resultobj;
3992 fail:
3993   return NULL;
3994 }
3995
3996
3997 SWIGINTERN PyObject *_wrap_new_Message(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3998   PyObject *resultobj = 0;
3999   ldb_dn *arg1 = (ldb_dn *) NULL ;
4000   ldb_msg *result = 0 ;
4001   void *argp1 = 0 ;
4002   int res1 = 0 ;
4003   PyObject * obj0 = 0 ;
4004   char *  kwnames[] = {
4005     (char *) "dn", NULL 
4006   };
4007   
4008   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"|O:new_Message",kwnames,&obj0)) SWIG_fail;
4009   if (obj0) {
4010     res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
4011     if (!SWIG_IsOK(res1)) {
4012       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_Message" "', argument " "1"" of type '" "ldb_dn *""'"); 
4013     }
4014     arg1 = (ldb_dn *)(argp1);
4015   }
4016   result = (ldb_msg *)new_ldb_msg(arg1);
4017   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_message, SWIG_POINTER_NEW |  0 );
4018   return resultobj;
4019 fail:
4020   return NULL;
4021 }
4022
4023
4024 SWIGINTERN PyObject *_wrap_delete_Message(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4025   PyObject *resultobj = 0;
4026   ldb_msg *arg1 = (ldb_msg *) 0 ;
4027   void *argp1 = 0 ;
4028   int res1 = 0 ;
4029   PyObject *swig_obj[1] ;
4030   
4031   if (!args) SWIG_fail;
4032   swig_obj[0] = args;
4033   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, SWIG_POINTER_DISOWN |  0 );
4034   if (!SWIG_IsOK(res1)) {
4035     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Message" "', argument " "1"" of type '" "ldb_msg *""'"); 
4036   }
4037   arg1 = (ldb_msg *)(argp1);
4038   if (arg1 == NULL)
4039   SWIG_exception(SWIG_ValueError, 
4040     "Message can not be None");
4041   delete_ldb_msg(arg1);
4042   
4043   resultobj = SWIG_Py_Void();
4044   return resultobj;
4045 fail:
4046   return NULL;
4047 }
4048
4049
4050 SWIGINTERN PyObject *_wrap_Message___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4051   PyObject *resultobj = 0;
4052   ldb_msg *arg1 = (ldb_msg *) 0 ;
4053   char *arg2 = (char *) 0 ;
4054   ldb_msg_element *result = 0 ;
4055   void *argp1 = 0 ;
4056   int res1 = 0 ;
4057   int res2 ;
4058   char *buf2 = 0 ;
4059   int alloc2 = 0 ;
4060   PyObject * obj0 = 0 ;
4061   PyObject * obj1 = 0 ;
4062   char *  kwnames[] = {
4063     (char *) "self",(char *) "name", NULL 
4064   };
4065   
4066   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Message___getitem__",kwnames,&obj0,&obj1)) SWIG_fail;
4067   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4068   if (!SWIG_IsOK(res1)) {
4069     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___getitem__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4070   }
4071   arg1 = (ldb_msg *)(argp1);
4072   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4073   if (!SWIG_IsOK(res2)) {
4074     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Message___getitem__" "', argument " "2"" of type '" "char const *""'");
4075   }
4076   arg2 = (char *)(buf2);
4077   if (arg1 == NULL)
4078   SWIG_exception(SWIG_ValueError, 
4079     "Message can not be None");
4080   result = (ldb_msg_element *)ldb_msg_find_element(arg1,(char const *)arg2);
4081   {
4082     if (result == NULL)
4083     PyErr_SetString(PyExc_KeyError, "no such element");
4084     else
4085     resultobj = SWIG_NewPointerObj(result, SWIGTYPE_p_ldb_message_element, 0);
4086   }
4087   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4088   return resultobj;
4089 fail:
4090   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4091   return NULL;
4092 }
4093
4094
4095 SWIGINTERN PyObject *_wrap_Message___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
4096   PyObject *resultobj = 0;
4097   ldb_msg *arg1 = (ldb_msg *) 0 ;
4098   char *arg2 = (char *) 0 ;
4099   ldb_msg_element *arg3 = (ldb_msg_element *) 0 ;
4100   void *argp1 = 0 ;
4101   int res1 = 0 ;
4102   int res2 ;
4103   char *buf2 = 0 ;
4104   int alloc2 = 0 ;
4105   void *argp3 = 0 ;
4106   int res3 = 0 ;
4107   
4108   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
4109   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4110   if (!SWIG_IsOK(res1)) {
4111     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___setitem__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4112   }
4113   arg1 = (ldb_msg *)(argp1);
4114   res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2);
4115   if (!SWIG_IsOK(res2)) {
4116     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Message___setitem__" "', argument " "2"" of type '" "char const *""'");
4117   }
4118   arg2 = (char *)(buf2);
4119   res3 = SWIG_ConvertPtr(swig_obj[2], &argp3,SWIGTYPE_p_ldb_message_element, 0 |  0 );
4120   if (!SWIG_IsOK(res3)) {
4121     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Message___setitem__" "', argument " "3"" of type '" "ldb_msg_element *""'"); 
4122   }
4123   arg3 = (ldb_msg_element *)(argp3);
4124   if (arg1 == NULL)
4125   SWIG_exception(SWIG_ValueError, 
4126     "Message can not be None");
4127   ldb_msg___setitem____SWIG_0(arg1,(char const *)arg2,arg3);
4128   resultobj = SWIG_Py_Void();
4129   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4130   return resultobj;
4131 fail:
4132   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4133   return NULL;
4134 }
4135
4136
4137 SWIGINTERN PyObject *_wrap_Message___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
4138   PyObject *resultobj = 0;
4139   ldb_msg *arg1 = (ldb_msg *) 0 ;
4140   char *arg2 = (char *) 0 ;
4141   PyObject *arg3 = (PyObject *) 0 ;
4142   void *argp1 = 0 ;
4143   int res1 = 0 ;
4144   int res2 ;
4145   char *buf2 = 0 ;
4146   int alloc2 = 0 ;
4147   
4148   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
4149   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4150   if (!SWIG_IsOK(res1)) {
4151     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___setitem__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4152   }
4153   arg1 = (ldb_msg *)(argp1);
4154   res2 = SWIG_AsCharPtrAndSize(swig_obj[1], &buf2, NULL, &alloc2);
4155   if (!SWIG_IsOK(res2)) {
4156     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Message___setitem__" "', argument " "2"" of type '" "char const *""'");
4157   }
4158   arg2 = (char *)(buf2);
4159   arg3 = swig_obj[2];
4160   if (arg1 == NULL)
4161   SWIG_exception(SWIG_ValueError, 
4162     "Message can not be None");
4163   ldb_msg___setitem____SWIG_1(arg1,(char const *)arg2,arg3);
4164   resultobj = SWIG_Py_Void();
4165   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4166   return resultobj;
4167 fail:
4168   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4169   return NULL;
4170 }
4171
4172
4173 SWIGINTERN PyObject *_wrap_Message___setitem__(PyObject *self, PyObject *args) {
4174   int argc;
4175   PyObject *argv[4];
4176   
4177   if (!(argc = SWIG_Python_UnpackTuple(args,"Message___setitem__",0,3,argv))) SWIG_fail;
4178   --argc;
4179   if (argc == 3) {
4180     int _v = 0;
4181     {
4182       void *vptr = 0;
4183       int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_ldb_message_element, 0);
4184       _v = SWIG_CheckState(res);
4185     }
4186     if (!_v) goto check_1;
4187     return _wrap_Message___setitem____SWIG_0(self, argc, argv);
4188   }
4189 check_1:
4190   
4191   if (argc == 3) {
4192     return _wrap_Message___setitem____SWIG_1(self, argc, argv);
4193   }
4194   
4195 fail:
4196   SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Message___setitem__'.\n  Possible C/C++ prototypes are:\n""    __setitem__(ldb_msg *,char const *,ldb_msg_element *)\n""    __setitem__(ldb_msg *,char const *,PyObject *)\n");
4197   return NULL;
4198 }
4199
4200
4201 SWIGINTERN PyObject *_wrap_Message___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4202   PyObject *resultobj = 0;
4203   ldb_msg *arg1 = (ldb_msg *) 0 ;
4204   unsigned int result;
4205   void *argp1 = 0 ;
4206   int res1 = 0 ;
4207   PyObject *swig_obj[1] ;
4208   
4209   if (!args) SWIG_fail;
4210   swig_obj[0] = args;
4211   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4212   if (!SWIG_IsOK(res1)) {
4213     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___len__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4214   }
4215   arg1 = (ldb_msg *)(argp1);
4216   if (arg1 == NULL)
4217   SWIG_exception(SWIG_ValueError, 
4218     "Message can not be None");
4219   result = (unsigned int)ldb_msg___len__(arg1);
4220   resultobj = SWIG_From_unsigned_SS_int((unsigned int)(result));
4221   return resultobj;
4222 fail:
4223   return NULL;
4224 }
4225
4226
4227 SWIGINTERN PyObject *_wrap_Message_keys(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4228   PyObject *resultobj = 0;
4229   ldb_msg *arg1 = (ldb_msg *) 0 ;
4230   PyObject *result = 0 ;
4231   void *argp1 = 0 ;
4232   int res1 = 0 ;
4233   PyObject *swig_obj[1] ;
4234   
4235   if (!args) SWIG_fail;
4236   swig_obj[0] = args;
4237   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4238   if (!SWIG_IsOK(res1)) {
4239     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message_keys" "', argument " "1"" of type '" "ldb_msg *""'"); 
4240   }
4241   arg1 = (ldb_msg *)(argp1);
4242   if (arg1 == NULL)
4243   SWIG_exception(SWIG_ValueError, 
4244     "Message can not be None");
4245   result = (PyObject *)ldb_msg_keys(arg1);
4246   resultobj = result;
4247   return resultobj;
4248 fail:
4249   return NULL;
4250 }
4251
4252
4253 SWIGINTERN PyObject *_wrap_Message___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4254   PyObject *resultobj = 0;
4255   ldb_msg *arg1 = (ldb_msg *) 0 ;
4256   PyObject *result = 0 ;
4257   void *argp1 = 0 ;
4258   int res1 = 0 ;
4259   PyObject *swig_obj[1] ;
4260   
4261   if (!args) SWIG_fail;
4262   swig_obj[0] = args;
4263   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4264   if (!SWIG_IsOK(res1)) {
4265     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___iter__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4266   }
4267   arg1 = (ldb_msg *)(argp1);
4268   if (arg1 == NULL)
4269   SWIG_exception(SWIG_ValueError, 
4270     "Message can not be None");
4271   result = (PyObject *)ldb_msg___iter__(arg1);
4272   resultobj = result;
4273   return resultobj;
4274 fail:
4275   return NULL;
4276 }
4277
4278
4279 SWIGINTERN PyObject *_wrap_Message___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4280   PyObject *resultobj = 0;
4281   ldb_msg *arg1 = (ldb_msg *) 0 ;
4282   char *arg2 = (char *) 0 ;
4283   void *argp1 = 0 ;
4284   int res1 = 0 ;
4285   int res2 ;
4286   char *buf2 = 0 ;
4287   int alloc2 = 0 ;
4288   PyObject * obj0 = 0 ;
4289   PyObject * obj1 = 0 ;
4290   char *  kwnames[] = {
4291     (char *) "self",(char *) "name", NULL 
4292   };
4293   
4294   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Message___delitem__",kwnames,&obj0,&obj1)) SWIG_fail;
4295   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
4296   if (!SWIG_IsOK(res1)) {
4297     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Message___delitem__" "', argument " "1"" of type '" "ldb_msg *""'"); 
4298   }
4299   arg1 = (ldb_msg *)(argp1);
4300   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4301   if (!SWIG_IsOK(res2)) {
4302     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Message___delitem__" "', argument " "2"" of type '" "char const *""'");
4303   }
4304   arg2 = (char *)(buf2);
4305   if (arg1 == NULL)
4306   SWIG_exception(SWIG_ValueError, 
4307     "Message can not be None");
4308   ldb_msg_remove_attr(arg1,(char const *)arg2);
4309   resultobj = SWIG_Py_Void();
4310   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4311   return resultobj;
4312 fail:
4313   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4314   return NULL;
4315 }
4316
4317
4318 SWIGINTERN PyObject *Message_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4319   PyObject *obj;
4320   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
4321   SWIG_TypeNewClientData(SWIGTYPE_p_ldb_message, SWIG_NewClientData(obj));
4322   return SWIG_Py_Void();
4323 }
4324
4325 SWIGINTERN PyObject *Message_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4326   return SWIG_Python_InitShadowInstance(args);
4327 }
4328
4329 SWIGINTERN PyObject *_wrap_ldb_ldif_to_pyobject(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4330   PyObject *resultobj = 0;
4331   ldb_ldif *arg1 = (ldb_ldif *) 0 ;
4332   PyObject *result = 0 ;
4333   void *argp1 = 0 ;
4334   int res1 = 0 ;
4335   PyObject * obj0 = 0 ;
4336   char *  kwnames[] = {
4337     (char *) "ldif", NULL 
4338   };
4339   
4340   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ldb_ldif_to_pyobject",kwnames,&obj0)) SWIG_fail;
4341   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_ldif, 0 |  0 );
4342   if (!SWIG_IsOK(res1)) {
4343     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ldb_ldif_to_pyobject" "', argument " "1"" of type '" "ldb_ldif *""'"); 
4344   }
4345   arg1 = (ldb_ldif *)(argp1);
4346   result = (PyObject *)ldb_ldif_to_pyobject(arg1);
4347   resultobj = result;
4348   return resultobj;
4349 fail:
4350   return NULL;
4351 }
4352
4353
4354 SWIGINTERN PyObject *_wrap_new_Ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4355   PyObject *resultobj = 0;
4356   ldb *result = 0 ;
4357   
4358   if (!SWIG_Python_UnpackTuple(args,"new_Ldb",0,0,0)) SWIG_fail;
4359   result = (ldb *)new_ldb();
4360   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_context, SWIG_POINTER_NEW |  0 );
4361   return resultobj;
4362 fail:
4363   return NULL;
4364 }
4365
4366
4367 SWIGINTERN PyObject *_wrap_Ldb_connect(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4368   PyObject *resultobj = 0;
4369   ldb *arg1 = (ldb *) 0 ;
4370   char *arg2 = (char *) 0 ;
4371   unsigned int arg3 = (unsigned int) 0 ;
4372   char **arg4 = (char **) (char **)NULL ;
4373   ldb_error result;
4374   void *argp1 = 0 ;
4375   int res1 = 0 ;
4376   int res2 ;
4377   char *buf2 = 0 ;
4378   int alloc2 = 0 ;
4379   unsigned int val3 ;
4380   int ecode3 = 0 ;
4381   void *argp4 = 0 ;
4382   int res4 = 0 ;
4383   PyObject * obj0 = 0 ;
4384   PyObject * obj1 = 0 ;
4385   PyObject * obj2 = 0 ;
4386   PyObject * obj3 = 0 ;
4387   char *  kwnames[] = {
4388     (char *) "self",(char *) "url",(char *) "flags",(char *) "options", NULL 
4389   };
4390   
4391   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|OO:Ldb_connect",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
4392   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4393   if (!SWIG_IsOK(res1)) {
4394     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_connect" "', argument " "1"" of type '" "ldb *""'"); 
4395   }
4396   arg1 = (ldb *)(argp1);
4397   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4398   if (!SWIG_IsOK(res2)) {
4399     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_connect" "', argument " "2"" of type '" "char const *""'");
4400   }
4401   arg2 = (char *)(buf2);
4402   if (obj2) {
4403     ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
4404     if (!SWIG_IsOK(ecode3)) {
4405       SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Ldb_connect" "', argument " "3"" of type '" "unsigned int""'");
4406     } 
4407     arg3 = (unsigned int)(val3);
4408   }
4409   if (obj3) {
4410     res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_char, 0 |  0 );
4411     if (!SWIG_IsOK(res4)) {
4412       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "Ldb_connect" "', argument " "4"" of type '" "char const *[]""'"); 
4413     } 
4414     arg4 = (char **)(argp4);
4415   }
4416   if (arg1 == NULL)
4417   SWIG_exception(SWIG_ValueError, 
4418     "ldb context must be non-NULL");
4419   result = ldb_connect(arg1,(char const *)arg2,arg3,(char const *(*))arg4);
4420   if (result != 0) {
4421     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4422     SWIG_fail;
4423   }
4424   resultobj = Py_None;
4425   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4426   return resultobj;
4427 fail:
4428   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4429   return NULL;
4430 }
4431
4432
4433 SWIGINTERN PyObject *_wrap_delete_Ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4434   PyObject *resultobj = 0;
4435   ldb *arg1 = (ldb *) 0 ;
4436   void *argp1 = 0 ;
4437   int res1 = 0 ;
4438   PyObject *swig_obj[1] ;
4439   
4440   if (!args) SWIG_fail;
4441   swig_obj[0] = args;
4442   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, SWIG_POINTER_DISOWN |  0 );
4443   if (!SWIG_IsOK(res1)) {
4444     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Ldb" "', argument " "1"" of type '" "ldb *""'"); 
4445   }
4446   arg1 = (ldb *)(argp1);
4447   if (arg1 == NULL)
4448   SWIG_exception(SWIG_ValueError, 
4449     "ldb context must be non-NULL");
4450   delete_ldb(arg1);
4451   
4452   resultobj = SWIG_Py_Void();
4453   return resultobj;
4454 fail:
4455   return NULL;
4456 }
4457
4458
4459 SWIGINTERN PyObject *_wrap_Ldb_search_ex(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4460   PyObject *resultobj = 0;
4461   ldb *arg1 = (ldb *) 0 ;
4462   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
4463   ldb_dn *arg3 = (ldb_dn *) NULL ;
4464   enum ldb_scope arg4 = (enum ldb_scope) LDB_SCOPE_DEFAULT ;
4465   char *arg5 = (char *) NULL ;
4466   char **arg6 = (char **) NULL ;
4467   struct ldb_control **arg7 = (struct ldb_control **) NULL ;
4468   struct ldb_result **arg8 = (struct ldb_result **) 0 ;
4469   ldb_error result;
4470   void *argp1 = 0 ;
4471   int res1 = 0 ;
4472   int val4 ;
4473   int ecode4 = 0 ;
4474   int res5 ;
4475   char *buf5 = 0 ;
4476   int alloc5 = 0 ;
4477   void *argp7 = 0 ;
4478   int res7 = 0 ;
4479   struct ldb_result *temp_ldb_result8 ;
4480   int i8 ;
4481   PyObject * obj0 = 0 ;
4482   PyObject * obj1 = 0 ;
4483   PyObject * obj2 = 0 ;
4484   PyObject * obj3 = 0 ;
4485   PyObject * obj4 = 0 ;
4486   PyObject * obj5 = 0 ;
4487   char *  kwnames[] = {
4488     (char *) "self",(char *) "base",(char *) "scope",(char *) "expression",(char *) "attrs",(char *) "controls", NULL 
4489   };
4490   
4491   arg2 = NULL;
4492   arg8 = &temp_ldb_result8;
4493   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|OOOOO:Ldb_search_ex",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
4494   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4495   if (!SWIG_IsOK(res1)) {
4496     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_search_ex" "', argument " "1"" of type '" "ldb *""'"); 
4497   }
4498   arg1 = (ldb *)(argp1);
4499   if (obj1) {
4500     if (ldb_dn_from_pyobject(NULL, obj1, arg1, &arg3) != 0) {
4501       SWIG_fail;
4502     }
4503   }
4504   if (obj2) {
4505     ecode4 = SWIG_AsVal_int(obj2, &val4);
4506     if (!SWIG_IsOK(ecode4)) {
4507       SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "Ldb_search_ex" "', argument " "4"" of type '" "enum ldb_scope""'");
4508     } 
4509     arg4 = (enum ldb_scope)(val4);
4510   }
4511   if (obj3) {
4512     res5 = SWIG_AsCharPtrAndSize(obj3, &buf5, NULL, &alloc5);
4513     if (!SWIG_IsOK(res5)) {
4514       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "Ldb_search_ex" "', argument " "5"" of type '" "char const *""'");
4515     }
4516     arg5 = (char *)(buf5);
4517   }
4518   if (obj4) {
4519     if (obj4 == Py_None) {
4520       arg6 = NULL;
4521     } else if (PySequence_Check(obj4)) {
4522       int i;
4523       arg6 = talloc_array(NULL, char *, PySequence_Size(obj4)+1);
4524       for(i = 0; i < PySequence_Size(obj4); i++)
4525       arg6[i] = PyString_AsString(PySequence_GetItem(obj4, i));
4526       arg6[i] = NULL;
4527     } else {
4528       SWIG_exception(SWIG_TypeError, "expected sequence");
4529     }
4530   }
4531   if (obj5) {
4532     res7 = SWIG_ConvertPtr(obj5, &argp7,SWIGTYPE_p_p_ldb_control, 0 |  0 );
4533     if (!SWIG_IsOK(res7)) {
4534       SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "Ldb_search_ex" "', argument " "7"" of type '" "struct ldb_control **""'"); 
4535     }
4536     arg7 = (struct ldb_control **)(argp7);
4537   }
4538   if (arg1 == NULL)
4539   SWIG_exception(SWIG_ValueError, 
4540     "ldb context must be non-NULL");
4541   result = ldb_search_ex(arg1,arg2,arg3,arg4,(char const *)arg5,(char const *const *)arg6,arg7,arg8);
4542   if (result != 0) {
4543     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4544     SWIG_fail;
4545   }
4546   resultobj = Py_None;
4547   resultobj = PyList_New((*arg8)->count);
4548   for (i8 = 0; i8 < (*arg8)->count; i8++) {
4549     PyList_SetItem(resultobj, i8, 
4550       SWIG_NewPointerObj((*arg8)->msgs[i8], SWIGTYPE_p_ldb_message, 0)
4551       );
4552   }
4553   talloc_free(arg3);
4554   if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
4555   talloc_free(arg6);
4556   return resultobj;
4557 fail:
4558   talloc_free(arg3);
4559   if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
4560   talloc_free(arg6);
4561   return NULL;
4562 }
4563
4564
4565 SWIGINTERN PyObject *_wrap_Ldb_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4566   PyObject *resultobj = 0;
4567   ldb *arg1 = (ldb *) 0 ;
4568   ldb_dn *arg2 = (ldb_dn *) 0 ;
4569   ldb_error result;
4570   void *argp1 = 0 ;
4571   int res1 = 0 ;
4572   PyObject * obj0 = 0 ;
4573   PyObject * obj1 = 0 ;
4574   char *  kwnames[] = {
4575     (char *) "self",(char *) "dn", NULL 
4576   };
4577   
4578   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_delete",kwnames,&obj0,&obj1)) SWIG_fail;
4579   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4580   if (!SWIG_IsOK(res1)) {
4581     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_delete" "', argument " "1"" of type '" "ldb *""'"); 
4582   }
4583   arg1 = (ldb *)(argp1);
4584   if (ldb_dn_from_pyobject(NULL, obj1, arg1, &arg2) != 0) {
4585     SWIG_fail;
4586   }
4587   if (arg1 == NULL)
4588   SWIG_exception(SWIG_ValueError, 
4589     "ldb context must be non-NULL");
4590   result = ldb_delete(arg1,arg2);
4591   if (result != 0) {
4592     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4593     SWIG_fail;
4594   }
4595   resultobj = Py_None;
4596   talloc_free(arg2);
4597   return resultobj;
4598 fail:
4599   talloc_free(arg2);
4600   return NULL;
4601 }
4602
4603
4604 SWIGINTERN PyObject *_wrap_Ldb_rename(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4605   PyObject *resultobj = 0;
4606   ldb *arg1 = (ldb *) 0 ;
4607   ldb_dn *arg2 = (ldb_dn *) 0 ;
4608   ldb_dn *arg3 = (ldb_dn *) 0 ;
4609   ldb_error result;
4610   void *argp1 = 0 ;
4611   int res1 = 0 ;
4612   PyObject * obj0 = 0 ;
4613   PyObject * obj1 = 0 ;
4614   PyObject * obj2 = 0 ;
4615   char *  kwnames[] = {
4616     (char *) "self",(char *) "olddn",(char *) "newdn", NULL 
4617   };
4618   
4619   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_rename",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
4620   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4621   if (!SWIG_IsOK(res1)) {
4622     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_rename" "', argument " "1"" of type '" "ldb *""'"); 
4623   }
4624   arg1 = (ldb *)(argp1);
4625   if (ldb_dn_from_pyobject(NULL, obj1, arg1, &arg2) != 0) {
4626     SWIG_fail;
4627   }
4628   if (ldb_dn_from_pyobject(NULL, obj2, arg1, &arg3) != 0) {
4629     SWIG_fail;
4630   }
4631   if (arg1 == NULL)
4632   SWIG_exception(SWIG_ValueError, 
4633     "ldb context must be non-NULL");
4634   result = ldb_rename(arg1,arg2,arg3);
4635   if (result != 0) {
4636     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4637     SWIG_fail;
4638   }
4639   resultobj = Py_None;
4640   talloc_free(arg2);
4641   talloc_free(arg3);
4642   return resultobj;
4643 fail:
4644   talloc_free(arg2);
4645   talloc_free(arg3);
4646   return NULL;
4647 }
4648
4649
4650 SWIGINTERN PyObject *_wrap_Ldb_parse_control_strings(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4651   PyObject *resultobj = 0;
4652   ldb *arg1 = (ldb *) 0 ;
4653   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
4654   char **arg3 = (char **) 0 ;
4655   struct ldb_control **result = 0 ;
4656   void *argp1 = 0 ;
4657   int res1 = 0 ;
4658   PyObject * obj0 = 0 ;
4659   PyObject * obj1 = 0 ;
4660   char *  kwnames[] = {
4661     (char *) "self",(char *) "control_strings", NULL 
4662   };
4663   
4664   arg2 = NULL;
4665   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_parse_control_strings",kwnames,&obj0,&obj1)) SWIG_fail;
4666   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4667   if (!SWIG_IsOK(res1)) {
4668     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_parse_control_strings" "', argument " "1"" of type '" "ldb *""'"); 
4669   }
4670   arg1 = (ldb *)(argp1);
4671   if (obj1 == Py_None) {
4672     arg3 = NULL;
4673   } else if (PySequence_Check(obj1)) {
4674     int i;
4675     arg3 = talloc_array(NULL, char *, PySequence_Size(obj1)+1);
4676     for(i = 0; i < PySequence_Size(obj1); i++)
4677     arg3[i] = PyString_AsString(PySequence_GetItem(obj1, i));
4678     arg3[i] = NULL;
4679   } else {
4680     SWIG_exception(SWIG_TypeError, "expected sequence");
4681   }
4682   if (arg1 == NULL)
4683   SWIG_exception(SWIG_ValueError, 
4684     "ldb context must be non-NULL");
4685   result = (struct ldb_control **)ldb_parse_control_strings(arg1,arg2,(char const *const *)arg3);
4686   if (result == NULL) {
4687     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(s)", ldb_errstring(arg1)));
4688     SWIG_fail;
4689   }
4690   resultobj = SWIG_NewPointerObj(result, SWIGTYPE_p_p_ldb_control, 0);
4691   talloc_free(arg3);
4692   return resultobj;
4693 fail:
4694   talloc_free(arg3);
4695   return NULL;
4696 }
4697
4698
4699 SWIGINTERN PyObject *_wrap_Ldb_add(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4700   PyObject *resultobj = 0;
4701   ldb *arg1 = (ldb *) 0 ;
4702   ldb_msg *arg2 = (ldb_msg *) 0 ;
4703   ldb_error result;
4704   void *argp1 = 0 ;
4705   int res1 = 0 ;
4706   PyObject * obj0 = 0 ;
4707   PyObject * obj1 = 0 ;
4708   char *  kwnames[] = {
4709     (char *) "self",(char *) "add_msg", NULL 
4710   };
4711   
4712   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_add",kwnames,&obj0,&obj1)) SWIG_fail;
4713   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4714   if (!SWIG_IsOK(res1)) {
4715     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_add" "', argument " "1"" of type '" "ldb *""'"); 
4716   }
4717   arg1 = (ldb *)(argp1);
4718   {
4719     Py_ssize_t dict_pos, msg_pos;
4720     ldb_msg_element *msgel;
4721     PyObject *key, *value;
4722     
4723     if (PyDict_Check(obj1)) {
4724       PyObject *dn_value = PyDict_GetItemString(obj1, "dn");
4725       arg2 = ldb_msg_new(NULL);
4726       arg2->elements = talloc_zero_array(arg2, struct ldb_message_element, PyDict_Size(obj1));
4727       msg_pos = dict_pos = 0;
4728       if (dn_value) {
4729         /* using argp1 (magic SWIG value) here is a hack */
4730         if (ldb_dn_from_pyobject(arg2, dn_value, argp1, &arg2->dn) != 0) {
4731           SWIG_exception(SWIG_TypeError, "unable to import dn object");
4732         }
4733         if (arg2->dn == NULL) {
4734           SWIG_exception(SWIG_TypeError, "dn set but not found");
4735         }
4736       }
4737       
4738       while (PyDict_Next(obj1, &dict_pos, &key, &value)) {
4739         char *key_str = PyString_AsString(key);
4740         if (strcmp(key_str, "dn") != 0) {
4741           msgel = ldb_msg_element_from_pyobject(arg2->elements, value, 0, key_str);
4742           if (msgel == NULL) {
4743             SWIG_exception(SWIG_TypeError, "unable to import element");
4744           }
4745           memcpy(&arg2->elements[msg_pos], msgel, sizeof(*msgel));
4746           msg_pos++;
4747         }
4748       }
4749       
4750       if (arg2->dn == NULL) {
4751         SWIG_exception(SWIG_TypeError, "no dn set");
4752       }
4753       
4754       arg2->num_elements = msg_pos;
4755     } else {
4756       if (SWIG_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_ldb_message, 0) != 0) {
4757         SWIG_exception(SWIG_TypeError, "unable to convert ldb message");
4758       }
4759     }
4760   }
4761   if (arg1 == NULL)
4762   SWIG_exception(SWIG_ValueError, 
4763     "ldb context must be non-NULL");
4764   if (arg2 == NULL)
4765   SWIG_exception(SWIG_ValueError, 
4766     "Message can not be None");
4767   result = ldb_add(arg1,arg2);
4768   if (result != 0) {
4769     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4770     SWIG_fail;
4771   }
4772   resultobj = Py_None;
4773   return resultobj;
4774 fail:
4775   return NULL;
4776 }
4777
4778
4779 SWIGINTERN PyObject *_wrap_Ldb_modify(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4780   PyObject *resultobj = 0;
4781   ldb *arg1 = (ldb *) 0 ;
4782   ldb_msg *arg2 = (ldb_msg *) 0 ;
4783   ldb_error result;
4784   void *argp1 = 0 ;
4785   int res1 = 0 ;
4786   void *argp2 = 0 ;
4787   int res2 = 0 ;
4788   PyObject * obj0 = 0 ;
4789   PyObject * obj1 = 0 ;
4790   char *  kwnames[] = {
4791     (char *) "self",(char *) "message", NULL 
4792   };
4793   
4794   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_modify",kwnames,&obj0,&obj1)) SWIG_fail;
4795   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4796   if (!SWIG_IsOK(res1)) {
4797     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_modify" "', argument " "1"" of type '" "ldb *""'"); 
4798   }
4799   arg1 = (ldb *)(argp1);
4800   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_ldb_message, 0 |  0 );
4801   if (!SWIG_IsOK(res2)) {
4802     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_modify" "', argument " "2"" of type '" "ldb_msg *""'"); 
4803   }
4804   arg2 = (ldb_msg *)(argp2);
4805   if (arg1 == NULL)
4806   SWIG_exception(SWIG_ValueError, 
4807     "ldb context must be non-NULL");
4808   if (arg2 == NULL)
4809   SWIG_exception(SWIG_ValueError, 
4810     "Message can not be None");
4811   result = ldb_modify(arg1,arg2);
4812   if (result != 0) {
4813     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
4814     SWIG_fail;
4815   }
4816   resultobj = Py_None;
4817   return resultobj;
4818 fail:
4819   return NULL;
4820 }
4821
4822
4823 SWIGINTERN PyObject *_wrap_Ldb_get_config_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4824   PyObject *resultobj = 0;
4825   ldb *arg1 = (ldb *) 0 ;
4826   ldb_dn *result = 0 ;
4827   void *argp1 = 0 ;
4828   int res1 = 0 ;
4829   PyObject *swig_obj[1] ;
4830   
4831   if (!args) SWIG_fail;
4832   swig_obj[0] = args;
4833   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4834   if (!SWIG_IsOK(res1)) {
4835     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_get_config_basedn" "', argument " "1"" of type '" "ldb *""'"); 
4836   }
4837   arg1 = (ldb *)(argp1);
4838   if (arg1 == NULL)
4839   SWIG_exception(SWIG_ValueError, 
4840     "ldb context must be non-NULL");
4841   result = (ldb_dn *)ldb_get_config_basedn(arg1);
4842   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
4843   return resultobj;
4844 fail:
4845   return NULL;
4846 }
4847
4848
4849 SWIGINTERN PyObject *_wrap_Ldb_get_root_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4850   PyObject *resultobj = 0;
4851   ldb *arg1 = (ldb *) 0 ;
4852   ldb_dn *result = 0 ;
4853   void *argp1 = 0 ;
4854   int res1 = 0 ;
4855   PyObject *swig_obj[1] ;
4856   
4857   if (!args) SWIG_fail;
4858   swig_obj[0] = args;
4859   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4860   if (!SWIG_IsOK(res1)) {
4861     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_get_root_basedn" "', argument " "1"" of type '" "ldb *""'"); 
4862   }
4863   arg1 = (ldb *)(argp1);
4864   if (arg1 == NULL)
4865   SWIG_exception(SWIG_ValueError, 
4866     "ldb context must be non-NULL");
4867   result = (ldb_dn *)ldb_get_root_basedn(arg1);
4868   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
4869   return resultobj;
4870 fail:
4871   return NULL;
4872 }
4873
4874
4875 SWIGINTERN PyObject *_wrap_Ldb_get_schema_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4876   PyObject *resultobj = 0;
4877   ldb *arg1 = (ldb *) 0 ;
4878   ldb_dn *result = 0 ;
4879   void *argp1 = 0 ;
4880   int res1 = 0 ;
4881   PyObject *swig_obj[1] ;
4882   
4883   if (!args) SWIG_fail;
4884   swig_obj[0] = args;
4885   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4886   if (!SWIG_IsOK(res1)) {
4887     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_get_schema_basedn" "', argument " "1"" of type '" "ldb *""'"); 
4888   }
4889   arg1 = (ldb *)(argp1);
4890   if (arg1 == NULL)
4891   SWIG_exception(SWIG_ValueError, 
4892     "ldb context must be non-NULL");
4893   result = (ldb_dn *)ldb_get_schema_basedn(arg1);
4894   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
4895   return resultobj;
4896 fail:
4897   return NULL;
4898 }
4899
4900
4901 SWIGINTERN PyObject *_wrap_Ldb_get_default_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4902   PyObject *resultobj = 0;
4903   ldb *arg1 = (ldb *) 0 ;
4904   ldb_dn *result = 0 ;
4905   void *argp1 = 0 ;
4906   int res1 = 0 ;
4907   PyObject *swig_obj[1] ;
4908   
4909   if (!args) SWIG_fail;
4910   swig_obj[0] = args;
4911   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4912   if (!SWIG_IsOK(res1)) {
4913     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_get_default_basedn" "', argument " "1"" of type '" "ldb *""'"); 
4914   }
4915   arg1 = (ldb *)(argp1);
4916   if (arg1 == NULL)
4917   SWIG_exception(SWIG_ValueError, 
4918     "ldb context must be non-NULL");
4919   result = (ldb_dn *)ldb_get_default_basedn(arg1);
4920   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ldb_dn, 0 |  0 );
4921   return resultobj;
4922 fail:
4923   return NULL;
4924 }
4925
4926
4927 SWIGINTERN PyObject *_wrap_Ldb_schema_format_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4928   PyObject *resultobj = 0;
4929   ldb *arg1 = (ldb *) 0 ;
4930   char *arg2 = (char *) 0 ;
4931   PyObject *arg3 = (PyObject *) 0 ;
4932   PyObject *result = 0 ;
4933   void *argp1 = 0 ;
4934   int res1 = 0 ;
4935   int res2 ;
4936   char *buf2 = 0 ;
4937   int alloc2 = 0 ;
4938   PyObject * obj0 = 0 ;
4939   PyObject * obj1 = 0 ;
4940   PyObject * obj2 = 0 ;
4941   char *  kwnames[] = {
4942     (char *) "self",(char *) "element_name",(char *) "val", NULL 
4943   };
4944   
4945   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_schema_format_value",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
4946   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4947   if (!SWIG_IsOK(res1)) {
4948     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_schema_format_value" "', argument " "1"" of type '" "ldb *""'"); 
4949   }
4950   arg1 = (ldb *)(argp1);
4951   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4952   if (!SWIG_IsOK(res2)) {
4953     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_schema_format_value" "', argument " "2"" of type '" "char const *""'");
4954   }
4955   arg2 = (char *)(buf2);
4956   arg3 = obj2;
4957   if (arg1 == NULL)
4958   SWIG_exception(SWIG_ValueError, 
4959     "ldb context must be non-NULL");
4960   result = (PyObject *)ldb_schema_format_value(arg1,(char const *)arg2,arg3);
4961   resultobj = result;
4962   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4963   return resultobj;
4964 fail:
4965   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4966   return NULL;
4967 }
4968
4969
4970 SWIGINTERN PyObject *_wrap_Ldb_errstring(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4971   PyObject *resultobj = 0;
4972   ldb *arg1 = (ldb *) 0 ;
4973   char *result = 0 ;
4974   void *argp1 = 0 ;
4975   int res1 = 0 ;
4976   PyObject *swig_obj[1] ;
4977   
4978   if (!args) SWIG_fail;
4979   swig_obj[0] = args;
4980   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
4981   if (!SWIG_IsOK(res1)) {
4982     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_errstring" "', argument " "1"" of type '" "ldb *""'"); 
4983   }
4984   arg1 = (ldb *)(argp1);
4985   if (arg1 == NULL)
4986   SWIG_exception(SWIG_ValueError, 
4987     "ldb context must be non-NULL");
4988   result = (char *)ldb_errstring(arg1);
4989   resultobj = SWIG_FromCharPtr((const char *)result);
4990   return resultobj;
4991 fail:
4992   return NULL;
4993 }
4994
4995
4996 SWIGINTERN PyObject *_wrap_Ldb_set_create_perms(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
4997   PyObject *resultobj = 0;
4998   ldb *arg1 = (ldb *) 0 ;
4999   unsigned int arg2 ;
5000   void *argp1 = 0 ;
5001   int res1 = 0 ;
5002   unsigned int val2 ;
5003   int ecode2 = 0 ;
5004   PyObject * obj0 = 0 ;
5005   PyObject * obj1 = 0 ;
5006   char *  kwnames[] = {
5007     (char *) "self",(char *) "perms", NULL 
5008   };
5009   
5010   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_set_create_perms",kwnames,&obj0,&obj1)) SWIG_fail;
5011   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5012   if (!SWIG_IsOK(res1)) {
5013     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_set_create_perms" "', argument " "1"" of type '" "ldb *""'"); 
5014   }
5015   arg1 = (ldb *)(argp1);
5016   ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
5017   if (!SWIG_IsOK(ecode2)) {
5018     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "Ldb_set_create_perms" "', argument " "2"" of type '" "unsigned int""'");
5019   } 
5020   arg2 = (unsigned int)(val2);
5021   if (arg1 == NULL)
5022   SWIG_exception(SWIG_ValueError, 
5023     "ldb context must be non-NULL");
5024   ldb_set_create_perms(arg1,arg2);
5025   resultobj = SWIG_Py_Void();
5026   return resultobj;
5027 fail:
5028   return NULL;
5029 }
5030
5031
5032 SWIGINTERN PyObject *_wrap_Ldb_set_modules_dir(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5033   PyObject *resultobj = 0;
5034   ldb *arg1 = (ldb *) 0 ;
5035   char *arg2 = (char *) 0 ;
5036   void *argp1 = 0 ;
5037   int res1 = 0 ;
5038   int res2 ;
5039   char *buf2 = 0 ;
5040   int alloc2 = 0 ;
5041   PyObject * obj0 = 0 ;
5042   PyObject * obj1 = 0 ;
5043   char *  kwnames[] = {
5044     (char *) "self",(char *) "path", NULL 
5045   };
5046   
5047   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_set_modules_dir",kwnames,&obj0,&obj1)) SWIG_fail;
5048   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5049   if (!SWIG_IsOK(res1)) {
5050     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_set_modules_dir" "', argument " "1"" of type '" "ldb *""'"); 
5051   }
5052   arg1 = (ldb *)(argp1);
5053   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5054   if (!SWIG_IsOK(res2)) {
5055     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_set_modules_dir" "', argument " "2"" of type '" "char const *""'");
5056   }
5057   arg2 = (char *)(buf2);
5058   if (arg1 == NULL)
5059   SWIG_exception(SWIG_ValueError, 
5060     "ldb context must be non-NULL");
5061   ldb_set_modules_dir(arg1,(char const *)arg2);
5062   resultobj = SWIG_Py_Void();
5063   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5064   return resultobj;
5065 fail:
5066   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5067   return NULL;
5068 }
5069
5070
5071 SWIGINTERN PyObject *_wrap_Ldb_set_debug(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5072   PyObject *resultobj = 0;
5073   ldb *arg1 = (ldb *) 0 ;
5074   void (*arg2)(void *,enum ldb_debug_level,char const *,va_list) = (void (*)(void *,enum ldb_debug_level,char const *,va_list)) 0 ;
5075   void *arg3 = (void *) 0 ;
5076   ldb_error result;
5077   void *argp1 = 0 ;
5078   int res1 = 0 ;
5079   PyObject * obj0 = 0 ;
5080   PyObject * obj1 = 0 ;
5081   char *  kwnames[] = {
5082     (char *) "self",(char *) "debug", NULL 
5083   };
5084   
5085   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_set_debug",kwnames,&obj0,&obj1)) SWIG_fail;
5086   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5087   if (!SWIG_IsOK(res1)) {
5088     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_set_debug" "', argument " "1"" of type '" "ldb *""'"); 
5089   }
5090   arg1 = (ldb *)(argp1);
5091   arg2 = py_ldb_debug;
5092   /* FIXME: Should be decreased somewhere as well. Perhaps register a 
5093          destructor and tie it to the ldb context ? */
5094   Py_INCREF(obj1);
5095   arg3 = obj1;
5096   if (arg1 == NULL)
5097   SWIG_exception(SWIG_ValueError, 
5098     "ldb context must be non-NULL");
5099   result = ldb_set_debug(arg1,arg2,arg3);
5100   if (result != 0) {
5101     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5102     SWIG_fail;
5103   }
5104   resultobj = Py_None;
5105   return resultobj;
5106 fail:
5107   return NULL;
5108 }
5109
5110
5111 SWIGINTERN PyObject *_wrap_Ldb_set_opaque(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5112   PyObject *resultobj = 0;
5113   ldb *arg1 = (ldb *) 0 ;
5114   char *arg2 = (char *) 0 ;
5115   void *arg3 = (void *) 0 ;
5116   ldb_error result;
5117   void *argp1 = 0 ;
5118   int res1 = 0 ;
5119   int res2 ;
5120   char *buf2 = 0 ;
5121   int alloc2 = 0 ;
5122   int res3 ;
5123   PyObject * obj0 = 0 ;
5124   PyObject * obj1 = 0 ;
5125   PyObject * obj2 = 0 ;
5126   char *  kwnames[] = {
5127     (char *) "self",(char *) "name",(char *) "value", NULL 
5128   };
5129   
5130   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_set_opaque",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
5131   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5132   if (!SWIG_IsOK(res1)) {
5133     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_set_opaque" "', argument " "1"" of type '" "ldb *""'"); 
5134   }
5135   arg1 = (ldb *)(argp1);
5136   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5137   if (!SWIG_IsOK(res2)) {
5138     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_set_opaque" "', argument " "2"" of type '" "char const *""'");
5139   }
5140   arg2 = (char *)(buf2);
5141   res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0);
5142   if (!SWIG_IsOK(res3)) {
5143     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Ldb_set_opaque" "', argument " "3"" of type '" "void *""'"); 
5144   }
5145   if (arg1 == NULL)
5146   SWIG_exception(SWIG_ValueError, 
5147     "ldb context must be non-NULL");
5148   result = ldb_set_opaque(arg1,(char const *)arg2,arg3);
5149   if (result != 0) {
5150     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5151     SWIG_fail;
5152   }
5153   resultobj = Py_None;
5154   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5155   return resultobj;
5156 fail:
5157   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5158   return NULL;
5159 }
5160
5161
5162 SWIGINTERN PyObject *_wrap_Ldb_get_opaque(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5163   PyObject *resultobj = 0;
5164   ldb *arg1 = (ldb *) 0 ;
5165   char *arg2 = (char *) 0 ;
5166   void *result = 0 ;
5167   void *argp1 = 0 ;
5168   int res1 = 0 ;
5169   int res2 ;
5170   char *buf2 = 0 ;
5171   int alloc2 = 0 ;
5172   PyObject * obj0 = 0 ;
5173   PyObject * obj1 = 0 ;
5174   char *  kwnames[] = {
5175     (char *) "self",(char *) "name", NULL 
5176   };
5177   
5178   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_get_opaque",kwnames,&obj0,&obj1)) SWIG_fail;
5179   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5180   if (!SWIG_IsOK(res1)) {
5181     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_get_opaque" "', argument " "1"" of type '" "ldb *""'"); 
5182   }
5183   arg1 = (ldb *)(argp1);
5184   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5185   if (!SWIG_IsOK(res2)) {
5186     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_get_opaque" "', argument " "2"" of type '" "char const *""'");
5187   }
5188   arg2 = (char *)(buf2);
5189   if (arg1 == NULL)
5190   SWIG_exception(SWIG_ValueError, 
5191     "ldb context must be non-NULL");
5192   result = (void *)ldb_get_opaque(arg1,(char const *)arg2);
5193   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 |  0 );
5194   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5195   return resultobj;
5196 fail:
5197   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5198   return NULL;
5199 }
5200
5201
5202 SWIGINTERN PyObject *_wrap_Ldb_transaction_start(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5203   PyObject *resultobj = 0;
5204   ldb *arg1 = (ldb *) 0 ;
5205   ldb_error result;
5206   void *argp1 = 0 ;
5207   int res1 = 0 ;
5208   PyObject *swig_obj[1] ;
5209   
5210   if (!args) SWIG_fail;
5211   swig_obj[0] = args;
5212   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5213   if (!SWIG_IsOK(res1)) {
5214     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_transaction_start" "', argument " "1"" of type '" "ldb *""'"); 
5215   }
5216   arg1 = (ldb *)(argp1);
5217   if (arg1 == NULL)
5218   SWIG_exception(SWIG_ValueError, 
5219     "ldb context must be non-NULL");
5220   result = ldb_transaction_start(arg1);
5221   if (result != 0) {
5222     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5223     SWIG_fail;
5224   }
5225   resultobj = Py_None;
5226   return resultobj;
5227 fail:
5228   return NULL;
5229 }
5230
5231
5232 SWIGINTERN PyObject *_wrap_Ldb_transaction_commit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5233   PyObject *resultobj = 0;
5234   ldb *arg1 = (ldb *) 0 ;
5235   ldb_error result;
5236   void *argp1 = 0 ;
5237   int res1 = 0 ;
5238   PyObject *swig_obj[1] ;
5239   
5240   if (!args) SWIG_fail;
5241   swig_obj[0] = args;
5242   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5243   if (!SWIG_IsOK(res1)) {
5244     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_transaction_commit" "', argument " "1"" of type '" "ldb *""'"); 
5245   }
5246   arg1 = (ldb *)(argp1);
5247   if (arg1 == NULL)
5248   SWIG_exception(SWIG_ValueError, 
5249     "ldb context must be non-NULL");
5250   result = ldb_transaction_commit(arg1);
5251   if (result != 0) {
5252     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5253     SWIG_fail;
5254   }
5255   resultobj = Py_None;
5256   return resultobj;
5257 fail:
5258   return NULL;
5259 }
5260
5261
5262 SWIGINTERN PyObject *_wrap_Ldb_transaction_cancel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5263   PyObject *resultobj = 0;
5264   ldb *arg1 = (ldb *) 0 ;
5265   ldb_error result;
5266   void *argp1 = 0 ;
5267   int res1 = 0 ;
5268   PyObject *swig_obj[1] ;
5269   
5270   if (!args) SWIG_fail;
5271   swig_obj[0] = args;
5272   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5273   if (!SWIG_IsOK(res1)) {
5274     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_transaction_cancel" "', argument " "1"" of type '" "ldb *""'"); 
5275   }
5276   arg1 = (ldb *)(argp1);
5277   if (arg1 == NULL)
5278   SWIG_exception(SWIG_ValueError, 
5279     "ldb context must be non-NULL");
5280   result = ldb_transaction_cancel(arg1);
5281   if (result != 0) {
5282     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5283     SWIG_fail;
5284   }
5285   resultobj = Py_None;
5286   return resultobj;
5287 fail:
5288   return NULL;
5289 }
5290
5291
5292 SWIGINTERN PyObject *_wrap_Ldb_schema_attribute_remove(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5293   PyObject *resultobj = 0;
5294   ldb *arg1 = (ldb *) 0 ;
5295   char *arg2 = (char *) 0 ;
5296   void *argp1 = 0 ;
5297   int res1 = 0 ;
5298   int res2 ;
5299   char *buf2 = 0 ;
5300   int alloc2 = 0 ;
5301   PyObject * obj0 = 0 ;
5302   PyObject * obj1 = 0 ;
5303   char *  kwnames[] = {
5304     (char *) "self",(char *) "name", NULL 
5305   };
5306   
5307   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_schema_attribute_remove",kwnames,&obj0,&obj1)) SWIG_fail;
5308   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5309   if (!SWIG_IsOK(res1)) {
5310     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_schema_attribute_remove" "', argument " "1"" of type '" "ldb *""'"); 
5311   }
5312   arg1 = (ldb *)(argp1);
5313   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5314   if (!SWIG_IsOK(res2)) {
5315     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_schema_attribute_remove" "', argument " "2"" of type '" "char const *""'");
5316   }
5317   arg2 = (char *)(buf2);
5318   if (arg1 == NULL)
5319   SWIG_exception(SWIG_ValueError, 
5320     "ldb context must be non-NULL");
5321   ldb_schema_attribute_remove(arg1,(char const *)arg2);
5322   resultobj = SWIG_Py_Void();
5323   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5324   return resultobj;
5325 fail:
5326   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5327   return NULL;
5328 }
5329
5330
5331 SWIGINTERN PyObject *_wrap_Ldb_schema_attribute_add(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5332   PyObject *resultobj = 0;
5333   ldb *arg1 = (ldb *) 0 ;
5334   char *arg2 = (char *) 0 ;
5335   unsigned int arg3 ;
5336   char *arg4 = (char *) 0 ;
5337   ldb_error result;
5338   void *argp1 = 0 ;
5339   int res1 = 0 ;
5340   int res2 ;
5341   char *buf2 = 0 ;
5342   int alloc2 = 0 ;
5343   unsigned int val3 ;
5344   int ecode3 = 0 ;
5345   int res4 ;
5346   char *buf4 = 0 ;
5347   int alloc4 = 0 ;
5348   PyObject * obj0 = 0 ;
5349   PyObject * obj1 = 0 ;
5350   PyObject * obj2 = 0 ;
5351   PyObject * obj3 = 0 ;
5352   char *  kwnames[] = {
5353     (char *) "self",(char *) "attribute",(char *) "flags",(char *) "syntax", NULL 
5354   };
5355   
5356   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:Ldb_schema_attribute_add",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
5357   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5358   if (!SWIG_IsOK(res1)) {
5359     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_schema_attribute_add" "', argument " "1"" of type '" "ldb *""'"); 
5360   }
5361   arg1 = (ldb *)(argp1);
5362   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5363   if (!SWIG_IsOK(res2)) {
5364     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_schema_attribute_add" "', argument " "2"" of type '" "char const *""'");
5365   }
5366   arg2 = (char *)(buf2);
5367   ecode3 = SWIG_AsVal_unsigned_SS_int(obj2, &val3);
5368   if (!SWIG_IsOK(ecode3)) {
5369     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "Ldb_schema_attribute_add" "', argument " "3"" of type '" "unsigned int""'");
5370   } 
5371   arg3 = (unsigned int)(val3);
5372   res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4);
5373   if (!SWIG_IsOK(res4)) {
5374     SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "Ldb_schema_attribute_add" "', argument " "4"" of type '" "char const *""'");
5375   }
5376   arg4 = (char *)(buf4);
5377   if (arg1 == NULL)
5378   SWIG_exception(SWIG_ValueError, 
5379     "ldb context must be non-NULL");
5380   result = ldb_schema_attribute_add(arg1,(char const *)arg2,arg3,(char const *)arg4);
5381   if (result != 0) {
5382     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5383     SWIG_fail;
5384   }
5385   resultobj = Py_None;
5386   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5387   if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
5388   return resultobj;
5389 fail:
5390   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5391   if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
5392   return NULL;
5393 }
5394
5395
5396 SWIGINTERN PyObject *_wrap_Ldb_setup_wellknown_attributes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5397   PyObject *resultobj = 0;
5398   ldb *arg1 = (ldb *) 0 ;
5399   ldb_error result;
5400   void *argp1 = 0 ;
5401   int res1 = 0 ;
5402   PyObject *swig_obj[1] ;
5403   
5404   if (!args) SWIG_fail;
5405   swig_obj[0] = args;
5406   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5407   if (!SWIG_IsOK(res1)) {
5408     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_setup_wellknown_attributes" "', argument " "1"" of type '" "ldb *""'"); 
5409   }
5410   arg1 = (ldb *)(argp1);
5411   if (arg1 == NULL)
5412   SWIG_exception(SWIG_ValueError, 
5413     "ldb context must be non-NULL");
5414   result = ldb_setup_wellknown_attributes(arg1);
5415   if (result != 0) {
5416     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5417     SWIG_fail;
5418   }
5419   resultobj = Py_None;
5420   return resultobj;
5421 fail:
5422   return NULL;
5423 }
5424
5425
5426 SWIGINTERN PyObject *_wrap_Ldb___contains__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5427   PyObject *resultobj = 0;
5428   ldb *arg1 = (ldb *) 0 ;
5429   ldb_dn *arg2 = (ldb_dn *) 0 ;
5430   struct ldb_result **arg3 = (struct ldb_result **) 0 ;
5431   ldb_error result;
5432   void *argp1 = 0 ;
5433   int res1 = 0 ;
5434   struct ldb_result *tmp3 ;
5435   PyObject * obj0 = 0 ;
5436   PyObject * obj1 = 0 ;
5437   char *  kwnames[] = {
5438     (char *) "self",(char *) "dn", NULL 
5439   };
5440   
5441   arg3 = &tmp3;
5442   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb___contains__",kwnames,&obj0,&obj1)) SWIG_fail;
5443   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5444   if (!SWIG_IsOK(res1)) {
5445     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb___contains__" "', argument " "1"" of type '" "ldb *""'"); 
5446   }
5447   arg1 = (ldb *)(argp1);
5448   if (ldb_dn_from_pyobject(NULL, obj1, arg1, &arg2) != 0) {
5449     SWIG_fail;
5450   }
5451   if (arg1 == NULL)
5452   SWIG_exception(SWIG_ValueError, 
5453     "ldb context must be non-NULL");
5454   result = ldb___contains__(arg1,arg2,arg3);
5455   if (result != 0) {
5456     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_errstring(arg1)));
5457     SWIG_fail;
5458   }
5459   resultobj = Py_None;
5460   resultobj = ((*arg3)->count > 0)?Py_True:Py_False;
5461   talloc_free(arg2);
5462   talloc_free(*arg3);
5463   return resultobj;
5464 fail:
5465   talloc_free(arg2);
5466   talloc_free(*arg3);
5467   return NULL;
5468 }
5469
5470
5471 SWIGINTERN PyObject *_wrap_Ldb_parse_ldif(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5472   PyObject *resultobj = 0;
5473   ldb *arg1 = (ldb *) 0 ;
5474   char *arg2 = (char *) 0 ;
5475   PyObject *result = 0 ;
5476   void *argp1 = 0 ;
5477   int res1 = 0 ;
5478   int res2 ;
5479   char *buf2 = 0 ;
5480   int alloc2 = 0 ;
5481   PyObject * obj0 = 0 ;
5482   PyObject * obj1 = 0 ;
5483   char *  kwnames[] = {
5484     (char *) "self",(char *) "s", NULL 
5485   };
5486   
5487   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_parse_ldif",kwnames,&obj0,&obj1)) SWIG_fail;
5488   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
5489   if (!SWIG_IsOK(res1)) {
5490     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Ldb_parse_ldif" "', argument " "1"" of type '" "ldb *""'"); 
5491   }
5492   arg1 = (ldb *)(argp1);
5493   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
5494   if (!SWIG_IsOK(res2)) {
5495     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Ldb_parse_ldif" "', argument " "2"" of type '" "char const *""'");
5496   }
5497   arg2 = (char *)(buf2);
5498   if (arg1 == NULL)
5499   SWIG_exception(SWIG_ValueError, 
5500     "ldb context must be non-NULL");
5501   result = (PyObject *)ldb_parse_ldif(arg1,(char const *)arg2);
5502   resultobj = result;
5503   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5504   return resultobj;
5505 fail:
5506   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
5507   return NULL;
5508 }
5509
5510
5511 SWIGINTERN PyObject *Ldb_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5512   PyObject *obj;
5513   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
5514   SWIG_TypeNewClientData(SWIGTYPE_p_ldb_context, SWIG_NewClientData(obj));
5515   return SWIG_Py_Void();
5516 }
5517
5518 SWIGINTERN PyObject *Ldb_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
5519   return SWIG_Python_InitShadowInstance(args);
5520 }
5521
5522 SWIGINTERN PyObject *_wrap_valid_attr_name(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5523   PyObject *resultobj = 0;
5524   char *arg1 = (char *) 0 ;
5525   int result;
5526   int res1 ;
5527   char *buf1 = 0 ;
5528   int alloc1 = 0 ;
5529   PyObject * obj0 = 0 ;
5530   char *  kwnames[] = {
5531     (char *) "s", NULL 
5532   };
5533   
5534   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:valid_attr_name",kwnames,&obj0)) SWIG_fail;
5535   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
5536   if (!SWIG_IsOK(res1)) {
5537     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "valid_attr_name" "', argument " "1"" of type '" "char const *""'");
5538   }
5539   arg1 = (char *)(buf1);
5540   result = (int)ldb_valid_attr_name((char const *)arg1);
5541   resultobj = SWIG_From_int((int)(result));
5542   if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
5543   return resultobj;
5544 fail:
5545   if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
5546   return NULL;
5547 }
5548
5549
5550 SWIGINTERN PyObject *_wrap_timestring(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5551   PyObject *resultobj = 0;
5552   time_t arg1 ;
5553   char *result = 0 ;
5554   unsigned long val1 ;
5555   int ecode1 = 0 ;
5556   PyObject * obj0 = 0 ;
5557   char *  kwnames[] = {
5558     (char *) "t", NULL 
5559   };
5560   
5561   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:timestring",kwnames,&obj0)) SWIG_fail;
5562   ecode1 = SWIG_AsVal_unsigned_SS_long(obj0, &val1);
5563   if (!SWIG_IsOK(ecode1)) {
5564     SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "timestring" "', argument " "1"" of type '" "time_t""'");
5565   } 
5566   arg1 = (time_t)(val1);
5567   result = (char *)timestring(arg1);
5568   resultobj = SWIG_FromCharPtr((const char *)result);
5569   return resultobj;
5570 fail:
5571   return NULL;
5572 }
5573
5574
5575 SWIGINTERN PyObject *_wrap_string_to_time(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5576   PyObject *resultobj = 0;
5577   char *arg1 = (char *) 0 ;
5578   time_t result;
5579   int res1 ;
5580   char *buf1 = 0 ;
5581   int alloc1 = 0 ;
5582   PyObject * obj0 = 0 ;
5583   char *  kwnames[] = {
5584     (char *) "s", NULL 
5585   };
5586   
5587   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:string_to_time",kwnames,&obj0)) SWIG_fail;
5588   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
5589   if (!SWIG_IsOK(res1)) {
5590     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "string_to_time" "', argument " "1"" of type '" "char const *""'");
5591   }
5592   arg1 = (char *)(buf1);
5593   result = (time_t)ldb_string_to_time((char const *)arg1);
5594   resultobj = SWIG_From_unsigned_SS_long((unsigned long)(result));
5595   if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
5596   return resultobj;
5597 fail:
5598   if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
5599   return NULL;
5600 }
5601
5602
5603 SWIGINTERN PyObject *_wrap_register_module(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
5604   PyObject *resultobj = 0;
5605   struct ldb_module_ops *arg1 = (struct ldb_module_ops *) 0 ;
5606   ldb_int_error result;
5607   PyObject * obj0 = 0 ;
5608   char *  kwnames[] = {
5609     (char *)"arg1", NULL 
5610   };
5611   
5612   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:register_module",kwnames,&obj0)) SWIG_fail;
5613   arg1 = talloc_zero(talloc_autofree_context(), struct ldb_module_ops);
5614   
5615   arg1->name = (char *)PyObject_GetAttrString(obj0, (char *)"name");
5616   result = ldb_register_module((struct ldb_module_ops const *)arg1);
5617   if (result != 0) {
5618     PyErr_SetObject(PyExc_LdbError, Py_BuildValue((char *)"(i,s)", result, ldb_strerror(result)));
5619     SWIG_fail;
5620   }
5621   resultobj = Py_None;
5622   return resultobj;
5623 fail:
5624   return NULL;
5625 }
5626
5627
5628 static PyMethodDef SwigMethods[] = {
5629          { (char *)"ldb_val_to_py_object", (PyCFunction) _wrap_ldb_val_to_py_object, METH_VARARGS | METH_KEYWORDS, NULL},
5630          { (char *)"new_Dn", (PyCFunction) _wrap_new_Dn, METH_VARARGS | METH_KEYWORDS, NULL},
5631          { (char *)"delete_Dn", (PyCFunction)_wrap_delete_Dn, METH_O, NULL},
5632          { (char *)"Dn_validate", (PyCFunction)_wrap_Dn_validate, METH_O, NULL},
5633          { (char *)"Dn_get_casefold", (PyCFunction)_wrap_Dn_get_casefold, METH_O, NULL},
5634          { (char *)"Dn___str__", (PyCFunction)_wrap_Dn___str__, METH_O, NULL},
5635          { (char *)"Dn_parent", (PyCFunction)_wrap_Dn_parent, METH_O, NULL},
5636          { (char *)"Dn___cmp__", (PyCFunction) _wrap_Dn___cmp__, METH_VARARGS | METH_KEYWORDS, NULL},
5637          { (char *)"Dn_is_valid", (PyCFunction)_wrap_Dn_is_valid, METH_O, NULL},
5638          { (char *)"Dn_is_special", (PyCFunction)_wrap_Dn_is_special, METH_O, NULL},
5639          { (char *)"Dn_is_null", (PyCFunction)_wrap_Dn_is_null, METH_O, NULL},
5640          { (char *)"Dn_check_special", (PyCFunction) _wrap_Dn_check_special, METH_VARARGS | METH_KEYWORDS, NULL},
5641          { (char *)"Dn___len__", (PyCFunction)_wrap_Dn___len__, METH_O, NULL},
5642          { (char *)"Dn_add_child", (PyCFunction) _wrap_Dn_add_child, METH_VARARGS | METH_KEYWORDS, NULL},
5643          { (char *)"Dn_add_base", (PyCFunction) _wrap_Dn_add_base, METH_VARARGS | METH_KEYWORDS, NULL},
5644          { (char *)"Dn_canonical_str", (PyCFunction)_wrap_Dn_canonical_str, METH_O, NULL},
5645          { (char *)"Dn_canonical_ex_str", (PyCFunction)_wrap_Dn_canonical_ex_str, METH_O, NULL},
5646          { (char *)"Dn___add__", (PyCFunction) _wrap_Dn___add__, METH_VARARGS | METH_KEYWORDS, NULL},
5647          { (char *)"Dn_swigregister", Dn_swigregister, METH_VARARGS, NULL},
5648          { (char *)"Dn_swiginit", Dn_swiginit, METH_VARARGS, NULL},
5649          { (char *)"ldb_msg_element___iter__", (PyCFunction)_wrap_ldb_msg_element___iter__, METH_O, NULL},
5650          { (char *)"ldb_msg_element___set__", (PyCFunction)_wrap_ldb_msg_element___set__, METH_O, NULL},
5651          { (char *)"new_MessageElement", (PyCFunction) _wrap_new_MessageElement, METH_VARARGS | METH_KEYWORDS, NULL},
5652          { (char *)"ldb_msg_element___len__", (PyCFunction)_wrap_ldb_msg_element___len__, METH_O, NULL},
5653          { (char *)"ldb_msg_element_get", (PyCFunction) _wrap_ldb_msg_element_get, METH_VARARGS | METH_KEYWORDS, NULL},
5654          { (char *)"delete_ldb_msg_element", (PyCFunction)_wrap_delete_ldb_msg_element, METH_O, NULL},
5655          { (char *)"ldb_msg_element___cmp__", (PyCFunction) _wrap_ldb_msg_element___cmp__, METH_VARARGS | METH_KEYWORDS, NULL},
5656          { (char *)"ldb_msg_element_swigregister", ldb_msg_element_swigregister, METH_VARARGS, NULL},
5657          { (char *)"ldb_msg_list_elements", (PyCFunction) _wrap_ldb_msg_list_elements, METH_VARARGS | METH_KEYWORDS, NULL},
5658          { (char *)"Message_dn_set", _wrap_Message_dn_set, METH_VARARGS, NULL},
5659          { (char *)"Message_dn_get", (PyCFunction)_wrap_Message_dn_get, METH_O, NULL},
5660          { (char *)"new_Message", (PyCFunction) _wrap_new_Message, METH_VARARGS | METH_KEYWORDS, NULL},
5661          { (char *)"delete_Message", (PyCFunction)_wrap_delete_Message, METH_O, NULL},
5662          { (char *)"Message___getitem__", (PyCFunction) _wrap_Message___getitem__, METH_VARARGS | METH_KEYWORDS, NULL},
5663          { (char *)"Message___setitem__", _wrap_Message___setitem__, METH_VARARGS, NULL},
5664          { (char *)"Message___len__", (PyCFunction)_wrap_Message___len__, METH_O, NULL},
5665          { (char *)"Message_keys", (PyCFunction)_wrap_Message_keys, METH_O, NULL},
5666          { (char *)"Message___iter__", (PyCFunction)_wrap_Message___iter__, METH_O, NULL},
5667          { (char *)"Message___delitem__", (PyCFunction) _wrap_Message___delitem__, METH_VARARGS | METH_KEYWORDS, NULL},
5668          { (char *)"Message_swigregister", Message_swigregister, METH_VARARGS, NULL},
5669          { (char *)"Message_swiginit", Message_swiginit, METH_VARARGS, NULL},
5670          { (char *)"ldb_ldif_to_pyobject", (PyCFunction) _wrap_ldb_ldif_to_pyobject, METH_VARARGS | METH_KEYWORDS, NULL},
5671          { (char *)"new_Ldb", (PyCFunction)_wrap_new_Ldb, METH_NOARGS, NULL},
5672          { (char *)"Ldb_connect", (PyCFunction) _wrap_Ldb_connect, METH_VARARGS | METH_KEYWORDS, NULL},
5673          { (char *)"delete_Ldb", (PyCFunction)_wrap_delete_Ldb, METH_O, NULL},
5674          { (char *)"Ldb_search_ex", (PyCFunction) _wrap_Ldb_search_ex, METH_VARARGS | METH_KEYWORDS, NULL},
5675          { (char *)"Ldb_delete", (PyCFunction) _wrap_Ldb_delete, METH_VARARGS | METH_KEYWORDS, NULL},
5676          { (char *)"Ldb_rename", (PyCFunction) _wrap_Ldb_rename, METH_VARARGS | METH_KEYWORDS, NULL},
5677          { (char *)"Ldb_parse_control_strings", (PyCFunction) _wrap_Ldb_parse_control_strings, METH_VARARGS | METH_KEYWORDS, NULL},
5678          { (char *)"Ldb_add", (PyCFunction) _wrap_Ldb_add, METH_VARARGS | METH_KEYWORDS, NULL},
5679          { (char *)"Ldb_modify", (PyCFunction) _wrap_Ldb_modify, METH_VARARGS | METH_KEYWORDS, NULL},
5680          { (char *)"Ldb_get_config_basedn", (PyCFunction)_wrap_Ldb_get_config_basedn, METH_O, NULL},
5681          { (char *)"Ldb_get_root_basedn", (PyCFunction)_wrap_Ldb_get_root_basedn, METH_O, NULL},
5682          { (char *)"Ldb_get_schema_basedn", (PyCFunction)_wrap_Ldb_get_schema_basedn, METH_O, NULL},
5683          { (char *)"Ldb_get_default_basedn", (PyCFunction)_wrap_Ldb_get_default_basedn, METH_O, NULL},
5684          { (char *)"Ldb_schema_format_value", (PyCFunction) _wrap_Ldb_schema_format_value, METH_VARARGS | METH_KEYWORDS, NULL},
5685          { (char *)"Ldb_errstring", (PyCFunction)_wrap_Ldb_errstring, METH_O, NULL},
5686          { (char *)"Ldb_set_create_perms", (PyCFunction) _wrap_Ldb_set_create_perms, METH_VARARGS | METH_KEYWORDS, NULL},
5687          { (char *)"Ldb_set_modules_dir", (PyCFunction) _wrap_Ldb_set_modules_dir, METH_VARARGS | METH_KEYWORDS, NULL},
5688          { (char *)"Ldb_set_debug", (PyCFunction) _wrap_Ldb_set_debug, METH_VARARGS | METH_KEYWORDS, NULL},
5689          { (char *)"Ldb_set_opaque", (PyCFunction) _wrap_Ldb_set_opaque, METH_VARARGS | METH_KEYWORDS, NULL},
5690          { (char *)"Ldb_get_opaque", (PyCFunction) _wrap_Ldb_get_opaque, METH_VARARGS | METH_KEYWORDS, NULL},
5691          { (char *)"Ldb_transaction_start", (PyCFunction)_wrap_Ldb_transaction_start, METH_O, NULL},
5692          { (char *)"Ldb_transaction_commit", (PyCFunction)_wrap_Ldb_transaction_commit, METH_O, NULL},
5693          { (char *)"Ldb_transaction_cancel", (PyCFunction)_wrap_Ldb_transaction_cancel, METH_O, NULL},
5694          { (char *)"Ldb_schema_attribute_remove", (PyCFunction) _wrap_Ldb_schema_attribute_remove, METH_VARARGS | METH_KEYWORDS, NULL},
5695          { (char *)"Ldb_schema_attribute_add", (PyCFunction) _wrap_Ldb_schema_attribute_add, METH_VARARGS | METH_KEYWORDS, NULL},
5696          { (char *)"Ldb_setup_wellknown_attributes", (PyCFunction)_wrap_Ldb_setup_wellknown_attributes, METH_O, NULL},
5697          { (char *)"Ldb___contains__", (PyCFunction) _wrap_Ldb___contains__, METH_VARARGS | METH_KEYWORDS, NULL},
5698          { (char *)"Ldb_parse_ldif", (PyCFunction) _wrap_Ldb_parse_ldif, METH_VARARGS | METH_KEYWORDS, NULL},
5699          { (char *)"Ldb_swigregister", Ldb_swigregister, METH_VARARGS, NULL},
5700          { (char *)"Ldb_swiginit", Ldb_swiginit, METH_VARARGS, NULL},
5701          { (char *)"valid_attr_name", (PyCFunction) _wrap_valid_attr_name, METH_VARARGS | METH_KEYWORDS, NULL},
5702          { (char *)"timestring", (PyCFunction) _wrap_timestring, METH_VARARGS | METH_KEYWORDS, NULL},
5703          { (char *)"string_to_time", (PyCFunction) _wrap_string_to_time, METH_VARARGS | METH_KEYWORDS, NULL},
5704          { (char *)"register_module", (PyCFunction) _wrap_register_module, METH_VARARGS | METH_KEYWORDS, NULL},
5705          { NULL, NULL, 0, NULL }
5706 };
5707
5708
5709 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
5710
5711 static swig_type_info _swigt__p_TALLOC_CTX = {"_p_TALLOC_CTX", "TALLOC_CTX *", 0, 0, (void*)0, 0};
5712 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
5713 static swig_type_info _swigt__p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void = {"_p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void", "void (*)(void *,enum ldb_debug_level,char const *,va_list)", 0, 0, (void*)0, 0};
5714 static swig_type_info _swigt__p_int = {"_p_int", "int *|int_least32_t *|int32_t *", 0, 0, (void*)0, 0};
5715 static swig_type_info _swigt__p_ldb_context = {"_p_ldb_context", "struct ldb_context *|ldb *", 0, 0, (void*)0, 0};
5716 static swig_type_info _swigt__p_ldb_dn = {"_p_ldb_dn", "struct ldb_dn *|ldb_dn *", 0, 0, (void*)0, 0};
5717 static swig_type_info _swigt__p_ldb_ldif = {"_p_ldb_ldif", "struct ldb_ldif *|ldb_ldif *", 0, 0, (void*)0, 0};
5718 static swig_type_info _swigt__p_ldb_message = {"_p_ldb_message", "ldb_msg *|struct ldb_message *", 0, 0, (void*)0, 0};
5719 static swig_type_info _swigt__p_ldb_message_element = {"_p_ldb_message_element", "struct ldb_message_element *|ldb_msg_element *", 0, 0, (void*)0, 0};
5720 static swig_type_info _swigt__p_ldb_module_ops = {"_p_ldb_module_ops", "struct ldb_module_ops *", 0, 0, (void*)0, 0};
5721 static swig_type_info _swigt__p_ldb_result = {"_p_ldb_result", "struct ldb_result *", 0, 0, (void*)0, 0};
5722 static swig_type_info _swigt__p_ldb_val = {"_p_ldb_val", "struct ldb_val *", 0, 0, (void*)0, 0};
5723 static swig_type_info _swigt__p_long = {"_p_long", "intptr_t *|int_least64_t *|int_fast32_t *|int_fast64_t *|int64_t *|long *|int_fast16_t *|intmax_t *", 0, 0, (void*)0, 0};
5724 static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
5725 static swig_type_info _swigt__p_p_ldb_control = {"_p_p_ldb_control", "struct ldb_control **", 0, 0, (void*)0, 0};
5726 static swig_type_info _swigt__p_p_ldb_result = {"_p_p_ldb_result", "struct ldb_result **", 0, 0, (void*)0, 0};
5727 static swig_type_info _swigt__p_short = {"_p_short", "short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
5728 static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
5729 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
5730 static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint_least32_t *|uint32_t *|unsigned int *", 0, 0, (void*)0, 0};
5731 static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "uintptr_t *|uint_least64_t *|uint_fast32_t *|uint_fast64_t *|uint64_t *|unsigned long *|time_t *|uint_fast16_t *|uintmax_t *", 0, 0, (void*)0, 0};
5732 static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
5733 static swig_type_info _swigt__p_void = {"_p_void", "void *", 0, 0, (void*)0, 0};
5734
5735 static swig_type_info *swig_type_initial[] = {
5736   &_swigt__p_TALLOC_CTX,
5737   &_swigt__p_char,
5738   &_swigt__p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void,
5739   &_swigt__p_int,
5740   &_swigt__p_ldb_context,
5741   &_swigt__p_ldb_dn,
5742   &_swigt__p_ldb_ldif,
5743   &_swigt__p_ldb_message,
5744   &_swigt__p_ldb_message_element,
5745   &_swigt__p_ldb_module_ops,
5746   &_swigt__p_ldb_result,
5747   &_swigt__p_ldb_val,
5748   &_swigt__p_long,
5749   &_swigt__p_p_char,
5750   &_swigt__p_p_ldb_control,
5751   &_swigt__p_p_ldb_result,
5752   &_swigt__p_short,
5753   &_swigt__p_signed_char,
5754   &_swigt__p_unsigned_char,
5755   &_swigt__p_unsigned_int,
5756   &_swigt__p_unsigned_long,
5757   &_swigt__p_unsigned_short,
5758   &_swigt__p_void,
5759 };
5760
5761 static swig_cast_info _swigc__p_TALLOC_CTX[] = {  {&_swigt__p_TALLOC_CTX, 0, 0, 0},{0, 0, 0, 0}};
5762 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
5763 static swig_cast_info _swigc__p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void[] = {  {&_swigt__p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void, 0, 0, 0},{0, 0, 0, 0}};
5764 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
5765 static swig_cast_info _swigc__p_ldb_context[] = {  {&_swigt__p_ldb_context, 0, 0, 0},{0, 0, 0, 0}};
5766 static swig_cast_info _swigc__p_ldb_dn[] = {  {&_swigt__p_ldb_dn, 0, 0, 0},{0, 0, 0, 0}};
5767 static swig_cast_info _swigc__p_ldb_ldif[] = {  {&_swigt__p_ldb_ldif, 0, 0, 0},{0, 0, 0, 0}};
5768 static swig_cast_info _swigc__p_ldb_message[] = {  {&_swigt__p_ldb_message, 0, 0, 0},{0, 0, 0, 0}};
5769 static swig_cast_info _swigc__p_ldb_message_element[] = {  {&_swigt__p_ldb_message_element, 0, 0, 0},{0, 0, 0, 0}};
5770 static swig_cast_info _swigc__p_ldb_module_ops[] = {  {&_swigt__p_ldb_module_ops, 0, 0, 0},{0, 0, 0, 0}};
5771 static swig_cast_info _swigc__p_ldb_result[] = {  {&_swigt__p_ldb_result, 0, 0, 0},{0, 0, 0, 0}};
5772 static swig_cast_info _swigc__p_ldb_val[] = {  {&_swigt__p_ldb_val, 0, 0, 0},{0, 0, 0, 0}};
5773 static swig_cast_info _swigc__p_long[] = {  {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}};
5774 static swig_cast_info _swigc__p_p_char[] = {  {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
5775 static swig_cast_info _swigc__p_p_ldb_control[] = {  {&_swigt__p_p_ldb_control, 0, 0, 0},{0, 0, 0, 0}};
5776 static swig_cast_info _swigc__p_p_ldb_result[] = {  {&_swigt__p_p_ldb_result, 0, 0, 0},{0, 0, 0, 0}};
5777 static swig_cast_info _swigc__p_short[] = {  {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}};
5778 static swig_cast_info _swigc__p_signed_char[] = {  {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
5779 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
5780 static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
5781 static swig_cast_info _swigc__p_unsigned_long[] = {  {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
5782 static swig_cast_info _swigc__p_unsigned_short[] = {  {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}};
5783 static swig_cast_info _swigc__p_void[] = {  {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}};
5784
5785 static swig_cast_info *swig_cast_initial[] = {
5786   _swigc__p_TALLOC_CTX,
5787   _swigc__p_char,
5788   _swigc__p_f_p_void_enum_ldb_debug_level_p_q_const__char_va_list__void,
5789   _swigc__p_int,
5790   _swigc__p_ldb_context,
5791   _swigc__p_ldb_dn,
5792   _swigc__p_ldb_ldif,
5793   _swigc__p_ldb_message,
5794   _swigc__p_ldb_message_element,
5795   _swigc__p_ldb_module_ops,
5796   _swigc__p_ldb_result,
5797   _swigc__p_ldb_val,
5798   _swigc__p_long,
5799   _swigc__p_p_char,
5800   _swigc__p_p_ldb_control,
5801   _swigc__p_p_ldb_result,
5802   _swigc__p_short,
5803   _swigc__p_signed_char,
5804   _swigc__p_unsigned_char,
5805   _swigc__p_unsigned_int,
5806   _swigc__p_unsigned_long,
5807   _swigc__p_unsigned_short,
5808   _swigc__p_void,
5809 };
5810
5811
5812 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
5813
5814 static swig_const_info swig_const_table[] = {
5815 {0, 0, 0, 0.0, 0, 0}};
5816
5817 #ifdef __cplusplus
5818 }
5819 #endif
5820 /* -----------------------------------------------------------------------------
5821  * Type initialization:
5822  * This problem is tough by the requirement that no dynamic 
5823  * memory is used. Also, since swig_type_info structures store pointers to 
5824  * swig_cast_info structures and swig_cast_info structures store pointers back
5825  * to swig_type_info structures, we need some lookup code at initialization. 
5826  * The idea is that swig generates all the structures that are needed. 
5827  * The runtime then collects these partially filled structures. 
5828  * The SWIG_InitializeModule function takes these initial arrays out of 
5829  * swig_module, and does all the lookup, filling in the swig_module.types
5830  * array with the correct data and linking the correct swig_cast_info
5831  * structures together.
5832  *
5833  * The generated swig_type_info structures are assigned staticly to an initial 
5834  * array. We just loop through that array, and handle each type individually.
5835  * First we lookup if this type has been already loaded, and if so, use the
5836  * loaded structure instead of the generated one. Then we have to fill in the
5837  * cast linked list. The cast data is initially stored in something like a
5838  * two-dimensional array. Each row corresponds to a type (there are the same
5839  * number of rows as there are in the swig_type_initial array). Each entry in
5840  * a column is one of the swig_cast_info structures for that type.
5841  * The cast_initial array is actually an array of arrays, because each row has
5842  * a variable number of columns. So to actually build the cast linked list,
5843  * we find the array of casts associated with the type, and loop through it 
5844  * adding the casts to the list. The one last trick we need to do is making
5845  * sure the type pointer in the swig_cast_info struct is correct.
5846  *
5847  * First off, we lookup the cast->type name to see if it is already loaded. 
5848  * There are three cases to handle:
5849  *  1) If the cast->type has already been loaded AND the type we are adding
5850  *     casting info to has not been loaded (it is in this module), THEN we
5851  *     replace the cast->type pointer with the type pointer that has already
5852  *     been loaded.
5853  *  2) If BOTH types (the one we are adding casting info to, and the 
5854  *     cast->type) are loaded, THEN the cast info has already been loaded by
5855  *     the previous module so we just ignore it.
5856  *  3) Finally, if cast->type has not already been loaded, then we add that
5857  *     swig_cast_info to the linked list (because the cast->type) pointer will
5858  *     be correct.
5859  * ----------------------------------------------------------------------------- */
5860
5861 #ifdef __cplusplus
5862 extern "C" {
5863 #if 0
5864 } /* c-mode */
5865 #endif
5866 #endif
5867
5868 #if 0
5869 #define SWIGRUNTIME_DEBUG
5870 #endif
5871
5872
5873 SWIGRUNTIME void
5874 SWIG_InitializeModule(void *clientdata) {
5875   size_t i;
5876   swig_module_info *module_head, *iter;
5877   int found;
5878   
5879   clientdata = clientdata;
5880   
5881   /* check to see if the circular list has been setup, if not, set it up */
5882   if (swig_module.next==0) {
5883     /* Initialize the swig_module */
5884     swig_module.type_initial = swig_type_initial;
5885     swig_module.cast_initial = swig_cast_initial;
5886     swig_module.next = &swig_module;
5887   }
5888   
5889   /* Try and load any already created modules */
5890   module_head = SWIG_GetModule(clientdata);
5891   if (!module_head) {
5892     /* This is the first module loaded for this interpreter */
5893     /* so set the swig module into the interpreter */
5894     SWIG_SetModule(clientdata, &swig_module);
5895     module_head = &swig_module;
5896   } else {
5897     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
5898     found=0;
5899     iter=module_head;
5900     do {
5901       if (iter==&swig_module) {
5902         found=1;
5903         break;
5904       }
5905       iter=iter->next;
5906     } while (iter!= module_head);
5907     
5908     /* if the is found in the list, then all is done and we may leave */
5909     if (found) return;
5910     /* otherwise we must add out module into the list */
5911     swig_module.next = module_head->next;
5912     module_head->next = &swig_module;
5913   }
5914   
5915   /* Now work on filling in swig_module.types */
5916 #ifdef SWIGRUNTIME_DEBUG
5917   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
5918 #endif
5919   for (i = 0; i < swig_module.size; ++i) {
5920     swig_type_info *type = 0;
5921     swig_type_info *ret;
5922     swig_cast_info *cast;
5923     
5924 #ifdef SWIGRUNTIME_DEBUG
5925     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
5926 #endif
5927     
5928     /* if there is another module already loaded */
5929     if (swig_module.next != &swig_module) {
5930       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
5931     }
5932     if (type) {
5933       /* Overwrite clientdata field */
5934 #ifdef SWIGRUNTIME_DEBUG
5935       printf("SWIG_InitializeModule: found type %s\n", type->name);
5936 #endif
5937       if (swig_module.type_initial[i]->clientdata) {
5938         type->clientdata = swig_module.type_initial[i]->clientdata;
5939 #ifdef SWIGRUNTIME_DEBUG
5940         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
5941 #endif
5942       }
5943     } else {
5944       type = swig_module.type_initial[i];
5945     }
5946     
5947     /* Insert casting types */
5948     cast = swig_module.cast_initial[i];
5949     while (cast->type) {
5950       /* Don't need to add information already in the list */
5951       ret = 0;
5952 #ifdef SWIGRUNTIME_DEBUG
5953       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
5954 #endif
5955       if (swig_module.next != &swig_module) {
5956         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
5957 #ifdef SWIGRUNTIME_DEBUG
5958         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
5959 #endif
5960       }
5961       if (ret) {
5962         if (type == swig_module.type_initial[i]) {
5963 #ifdef SWIGRUNTIME_DEBUG
5964           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
5965 #endif
5966           cast->type = ret;
5967           ret = 0;
5968         } else {
5969           /* Check for casting already in the list */
5970           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
5971 #ifdef SWIGRUNTIME_DEBUG
5972           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
5973 #endif
5974           if (!ocast) ret = 0;
5975         }
5976       }
5977       
5978       if (!ret) {
5979 #ifdef SWIGRUNTIME_DEBUG
5980         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
5981 #endif
5982         if (type->cast) {
5983           type->cast->prev = cast;
5984           cast->next = type->cast;
5985         }
5986         type->cast = cast;
5987       }
5988       cast++;
5989     }
5990     /* Set entry in modules->types array equal to the type */
5991     swig_module.types[i] = type;
5992   }
5993   swig_module.types[i] = 0;
5994   
5995 #ifdef SWIGRUNTIME_DEBUG
5996   printf("**** SWIG_InitializeModule: Cast List ******\n");
5997   for (i = 0; i < swig_module.size; ++i) {
5998     int j = 0;
5999     swig_cast_info *cast = swig_module.cast_initial[i];
6000     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
6001     while (cast->type) {
6002       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
6003       cast++;
6004       ++j;
6005     }
6006     printf("---- Total casts: %d\n",j);
6007   }
6008   printf("**** SWIG_InitializeModule: Cast List ******\n");
6009 #endif
6010 }
6011
6012 /* This function will propagate the clientdata field of type to
6013 * any new swig_type_info structures that have been added into the list
6014 * of equivalent types.  It is like calling
6015 * SWIG_TypeClientData(type, clientdata) a second time.
6016 */
6017 SWIGRUNTIME void
6018 SWIG_PropagateClientData(void) {
6019   size_t i;
6020   swig_cast_info *equiv;
6021   static int init_run = 0;
6022   
6023   if (init_run) return;
6024   init_run = 1;
6025   
6026   for (i = 0; i < swig_module.size; i++) {
6027     if (swig_module.types[i]->clientdata) {
6028       equiv = swig_module.types[i]->cast;
6029       while (equiv) {
6030         if (!equiv->converter) {
6031           if (equiv->type && !equiv->type->clientdata)
6032           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
6033         }
6034         equiv = equiv->next;
6035       }
6036     }
6037   }
6038 }
6039
6040 #ifdef __cplusplus
6041 #if 0
6042 {
6043   /* c-mode */
6044 #endif
6045 }
6046 #endif
6047
6048
6049
6050 #ifdef __cplusplus
6051 extern "C" {
6052 #endif
6053   
6054   /* Python-specific SWIG API */
6055 #define SWIG_newvarlink()                             SWIG_Python_newvarlink()
6056 #define SWIG_addvarlink(p, name, get_attr, set_attr)  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
6057 #define SWIG_InstallConstants(d, constants)           SWIG_Python_InstallConstants(d, constants)
6058   
6059   /* -----------------------------------------------------------------------------
6060    * global variable support code.
6061    * ----------------------------------------------------------------------------- */
6062   
6063   typedef struct swig_globalvar {
6064     char       *name;                  /* Name of global variable */
6065     PyObject *(*get_attr)(void);       /* Return the current value */
6066     int       (*set_attr)(PyObject *); /* Set the value */
6067     struct swig_globalvar *next;
6068   } swig_globalvar;
6069   
6070   typedef struct swig_varlinkobject {
6071     PyObject_HEAD
6072     swig_globalvar *vars;
6073   } swig_varlinkobject;
6074   
6075   SWIGINTERN PyObject *
6076   swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
6077     return PyString_FromString("<Swig global variables>");
6078   }
6079   
6080   SWIGINTERN PyObject *
6081   swig_varlink_str(swig_varlinkobject *v) {
6082     PyObject *str = PyString_FromString("(");
6083     swig_globalvar  *var;
6084     for (var = v->vars; var; var=var->next) {
6085       PyString_ConcatAndDel(&str,PyString_FromString(var->name));
6086       if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
6087     }
6088     PyString_ConcatAndDel(&str,PyString_FromString(")"));
6089     return str;
6090   }
6091   
6092   SWIGINTERN int
6093   swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
6094     PyObject *str = swig_varlink_str(v);
6095     fprintf(fp,"Swig global variables ");
6096     fprintf(fp,"%s\n", PyString_AsString(str));
6097     Py_DECREF(str);
6098     return 0;
6099   }
6100   
6101   SWIGINTERN void
6102   swig_varlink_dealloc(swig_varlinkobject *v) {
6103     swig_globalvar *var = v->vars;
6104     while (var) {
6105       swig_globalvar *n = var->next;
6106       free(var->name);
6107       free(var);
6108       var = n;
6109     }
6110   }
6111   
6112   SWIGINTERN PyObject *
6113   swig_varlink_getattr(swig_varlinkobject *v, char *n) {
6114     PyObject *res = NULL;
6115     swig_globalvar *var = v->vars;
6116     while (var) {
6117       if (strcmp(var->name,n) == 0) {
6118         res = (*var->get_attr)();
6119         break;
6120       }
6121       var = var->next;
6122     }
6123     if (res == NULL && !PyErr_Occurred()) {
6124       PyErr_SetString(PyExc_NameError,"Unknown C global variable");
6125     }
6126     return res;
6127   }
6128   
6129   SWIGINTERN int
6130   swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
6131     int res = 1;
6132     swig_globalvar *var = v->vars;
6133     while (var) {
6134       if (strcmp(var->name,n) == 0) {
6135         res = (*var->set_attr)(p);
6136         break;
6137       }
6138       var = var->next;
6139     }
6140     if (res == 1 && !PyErr_Occurred()) {
6141       PyErr_SetString(PyExc_NameError,"Unknown C global variable");
6142     }
6143     return res;
6144   }
6145   
6146   SWIGINTERN PyTypeObject*
6147   swig_varlink_type(void) {
6148     static char varlink__doc__[] = "Swig var link object";
6149     static PyTypeObject varlink_type;
6150     static int type_init = 0;  
6151     if (!type_init) {
6152       const PyTypeObject tmp
6153       = {
6154         PyObject_HEAD_INIT(NULL)
6155         0,                                  /* Number of items in variable part (ob_size) */
6156         (char *)"swigvarlink",              /* Type name (tp_name) */
6157         sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
6158         0,                                  /* Itemsize (tp_itemsize) */
6159         (destructor) swig_varlink_dealloc,   /* Deallocator (tp_dealloc) */ 
6160         (printfunc) swig_varlink_print,     /* Print (tp_print) */
6161         (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
6162         (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
6163         0,                                  /* tp_compare */
6164         (reprfunc) swig_varlink_repr,       /* tp_repr */
6165         0,                                  /* tp_as_number */
6166         0,                                  /* tp_as_sequence */
6167         0,                                  /* tp_as_mapping */
6168         0,                                  /* tp_hash */
6169         0,                                  /* tp_call */
6170         (reprfunc)swig_varlink_str,        /* tp_str */
6171         0,                                  /* tp_getattro */
6172         0,                                  /* tp_setattro */
6173         0,                                  /* tp_as_buffer */
6174         0,                                  /* tp_flags */
6175         varlink__doc__,                     /* tp_doc */
6176         0,                                  /* tp_traverse */
6177         0,                                  /* tp_clear */
6178         0,                                  /* tp_richcompare */
6179         0,                                  /* tp_weaklistoffset */
6180 #if PY_VERSION_HEX >= 0x02020000
6181         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
6182 #endif
6183 #if PY_VERSION_HEX >= 0x02030000
6184         0,                                  /* tp_del */
6185 #endif
6186 #ifdef COUNT_ALLOCS
6187         0,0,0,0                             /* tp_alloc -> tp_next */
6188 #endif
6189       };
6190       varlink_type = tmp;
6191       varlink_type.ob_type = &PyType_Type;
6192       type_init = 1;
6193     }
6194     return &varlink_type;
6195   }
6196   
6197   /* Create a variable linking object for use later */
6198   SWIGINTERN PyObject *
6199   SWIG_Python_newvarlink(void) {
6200     swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
6201     if (result) {
6202       result->vars = 0;
6203     }
6204     return ((PyObject*) result);
6205   }
6206   
6207   SWIGINTERN void 
6208   SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
6209     swig_varlinkobject *v = (swig_varlinkobject *) p;
6210     swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
6211     if (gv) {
6212       size_t size = strlen(name)+1;
6213       gv->name = (char *)malloc(size);
6214       if (gv->name) {
6215         strncpy(gv->name,name,size);
6216         gv->get_attr = get_attr;
6217         gv->set_attr = set_attr;
6218         gv->next = v->vars;
6219       }
6220     }
6221     v->vars = gv;
6222   }
6223   
6224   SWIGINTERN PyObject *
6225   SWIG_globals(void) {
6226     static PyObject *_SWIG_globals = 0; 
6227     if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();  
6228     return _SWIG_globals;
6229   }
6230   
6231   /* -----------------------------------------------------------------------------
6232    * constants/methods manipulation
6233    * ----------------------------------------------------------------------------- */
6234   
6235   /* Install Constants */
6236   SWIGINTERN void
6237   SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
6238     PyObject *obj = 0;
6239     size_t i;
6240     for (i = 0; constants[i].type; ++i) {
6241       switch(constants[i].type) {
6242       case SWIG_PY_POINTER:
6243         obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
6244         break;
6245       case SWIG_PY_BINARY:
6246         obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
6247         break;
6248       default:
6249         obj = 0;
6250         break;
6251       }
6252       if (obj) {
6253         PyDict_SetItemString(d, constants[i].name, obj);
6254         Py_DECREF(obj);
6255       }
6256     }
6257   }
6258   
6259   /* -----------------------------------------------------------------------------*/
6260   /* Fix SwigMethods to carry the callback ptrs when needed */
6261   /* -----------------------------------------------------------------------------*/
6262   
6263   SWIGINTERN void
6264   SWIG_Python_FixMethods(PyMethodDef *methods,
6265     swig_const_info *const_table,
6266     swig_type_info **types,
6267     swig_type_info **types_initial) {
6268     size_t i;
6269     for (i = 0; methods[i].ml_name; ++i) {
6270       const char *c = methods[i].ml_doc;
6271       if (c && (c = strstr(c, "swig_ptr: "))) {
6272         int j;
6273         swig_const_info *ci = 0;
6274         const char *name = c + 10;
6275         for (j = 0; const_table[j].type; ++j) {
6276           if (strncmp(const_table[j].name, name, 
6277               strlen(const_table[j].name)) == 0) {
6278             ci = &(const_table[j]);
6279             break;
6280           }
6281         }
6282         if (ci) {
6283           size_t shift = (ci->ptype) - types;
6284           swig_type_info *ty = types_initial[shift];
6285           size_t ldoc = (c - methods[i].ml_doc);
6286           size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
6287           char *ndoc = (char*)malloc(ldoc + lptr + 10);
6288           if (ndoc) {
6289             char *buff = ndoc;
6290             void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
6291             if (ptr) {
6292               strncpy(buff, methods[i].ml_doc, ldoc);
6293               buff += ldoc;
6294               strncpy(buff, "swig_ptr: ", 10);
6295               buff += 10;
6296               SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
6297               methods[i].ml_doc = ndoc;
6298             }
6299           }
6300         }
6301       }
6302     }
6303   } 
6304   
6305 #ifdef __cplusplus
6306 }
6307 #endif
6308
6309 /* -----------------------------------------------------------------------------*
6310  *  Partial Init method
6311  * -----------------------------------------------------------------------------*/
6312
6313 #ifdef __cplusplus
6314 extern "C"
6315 #endif
6316 SWIGEXPORT void SWIG_init(void) {
6317   PyObject *m, *d;
6318   
6319   /* Fix SwigMethods to carry the callback ptrs when needed */
6320   SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
6321   
6322   m = Py_InitModule((char *) SWIG_name, SwigMethods);
6323   d = PyModule_GetDict(m);
6324   
6325   SWIG_InitializeModule(0);
6326   SWIG_InstallConstants(d,swig_const_table);
6327   
6328   
6329   SWIG_Python_SetConstant(d, "SCOPE_DEFAULT",SWIG_From_int((int)(LDB_SCOPE_DEFAULT)));
6330   SWIG_Python_SetConstant(d, "SCOPE_BASE",SWIG_From_int((int)(LDB_SCOPE_BASE)));
6331   SWIG_Python_SetConstant(d, "SCOPE_ONELEVEL",SWIG_From_int((int)(LDB_SCOPE_ONELEVEL)));
6332   SWIG_Python_SetConstant(d, "SCOPE_SUBTREE",SWIG_From_int((int)(LDB_SCOPE_SUBTREE)));
6333   SWIG_Python_SetConstant(d, "CHANGETYPE_NONE",SWIG_From_int((int)(LDB_CHANGETYPE_NONE)));
6334   SWIG_Python_SetConstant(d, "CHANGETYPE_ADD",SWIG_From_int((int)(LDB_CHANGETYPE_ADD)));
6335   SWIG_Python_SetConstant(d, "CHANGETYPE_DELETE",SWIG_From_int((int)(LDB_CHANGETYPE_DELETE)));
6336   SWIG_Python_SetConstant(d, "CHANGETYPE_MODIFY",SWIG_From_int((int)(LDB_CHANGETYPE_MODIFY)));
6337   
6338   PyExc_LdbError = PyErr_NewException((char *)"_ldb.LdbError", NULL, NULL);
6339   PyDict_SetItemString(d, "LdbError", PyExc_LdbError);
6340   
6341   SWIG_Python_SetConstant(d, "LDB_ERR_OPERATIONS_ERROR",SWIG_From_int((int)(1)));
6342   SWIG_Python_SetConstant(d, "LDB_ERR_PROTOCOL_ERROR",SWIG_From_int((int)(2)));
6343   SWIG_Python_SetConstant(d, "LDB_ERR_TIME_LIMIT_EXCEEDED",SWIG_From_int((int)(3)));
6344   SWIG_Python_SetConstant(d, "LDB_ERR_SIZE_LIMIT_EXCEEDED",SWIG_From_int((int)(4)));
6345   SWIG_Python_SetConstant(d, "LDB_ERR_COMPARE_FALSE",SWIG_From_int((int)(5)));
6346   SWIG_Python_SetConstant(d, "LDB_ERR_COMPARE_TRUE",SWIG_From_int((int)(6)));
6347   SWIG_Python_SetConstant(d, "LDB_ERR_AUTH_METHOD_NOT_SUPPORTED",SWIG_From_int((int)(7)));
6348   SWIG_Python_SetConstant(d, "LDB_ERR_STRONG_AUTH_REQUIRED",SWIG_From_int((int)(8)));
6349   SWIG_Python_SetConstant(d, "LDB_ERR_REFERRAL",SWIG_From_int((int)(10)));
6350   SWIG_Python_SetConstant(d, "LDB_ERR_ADMIN_LIMIT_EXCEEDED",SWIG_From_int((int)(11)));
6351   SWIG_Python_SetConstant(d, "LDB_ERR_UNSUPPORTED_CRITICAL_EXTENSION",SWIG_From_int((int)(12)));
6352   SWIG_Python_SetConstant(d, "LDB_ERR_CONFIDENTIALITY_REQUIRED",SWIG_From_int((int)(13)));
6353   SWIG_Python_SetConstant(d, "LDB_ERR_SASL_BIND_IN_PROGRESS",SWIG_From_int((int)(14)));
6354   SWIG_Python_SetConstant(d, "LDB_ERR_NO_SUCH_ATTRIBUTE",SWIG_From_int((int)(16)));
6355   SWIG_Python_SetConstant(d, "LDB_ERR_UNDEFINED_ATTRIBUTE_TYPE",SWIG_From_int((int)(17)));
6356   SWIG_Python_SetConstant(d, "LDB_ERR_INAPPROPRIATE_MATCHING",SWIG_From_int((int)(18)));
6357   SWIG_Python_SetConstant(d, "LDB_ERR_CONSTRAINT_VIOLATION",SWIG_From_int((int)(19)));
6358   SWIG_Python_SetConstant(d, "LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS",SWIG_From_int((int)(20)));
6359   SWIG_Python_SetConstant(d, "LDB_ERR_INVALID_ATTRIBUTE_SYNTAX",SWIG_From_int((int)(21)));
6360   SWIG_Python_SetConstant(d, "LDB_ERR_NO_SUCH_OBJECT",SWIG_From_int((int)(32)));
6361   SWIG_Python_SetConstant(d, "LDB_ERR_ALIAS_PROBLEM",SWIG_From_int((int)(33)));
6362   SWIG_Python_SetConstant(d, "LDB_ERR_INVALID_DN_SYNTAX",SWIG_From_int((int)(34)));
6363   SWIG_Python_SetConstant(d, "LDB_ERR_ALIAS_DEREFERENCING_PROBLEM",SWIG_From_int((int)(36)));
6364   SWIG_Python_SetConstant(d, "LDB_ERR_INAPPROPRIATE_AUTHENTICATION",SWIG_From_int((int)(48)));
6365   SWIG_Python_SetConstant(d, "LDB_ERR_INVALID_CREDENTIALS",SWIG_From_int((int)(49)));
6366   SWIG_Python_SetConstant(d, "LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS",SWIG_From_int((int)(50)));
6367   SWIG_Python_SetConstant(d, "LDB_ERR_BUSY",SWIG_From_int((int)(51)));
6368   SWIG_Python_SetConstant(d, "LDB_ERR_UNAVAILABLE",SWIG_From_int((int)(52)));
6369   SWIG_Python_SetConstant(d, "LDB_ERR_UNWILLING_TO_PERFORM",SWIG_From_int((int)(53)));
6370   SWIG_Python_SetConstant(d, "LDB_ERR_LOOP_DETECT",SWIG_From_int((int)(54)));
6371   SWIG_Python_SetConstant(d, "LDB_ERR_NAMING_VIOLATION",SWIG_From_int((int)(64)));
6372   SWIG_Python_SetConstant(d, "LDB_ERR_OBJECT_CLASS_VIOLATION",SWIG_From_int((int)(65)));
6373   SWIG_Python_SetConstant(d, "LDB_ERR_NOT_ALLOWED_ON_NON_LEAF",SWIG_From_int((int)(66)));
6374   SWIG_Python_SetConstant(d, "LDB_ERR_NOT_ALLOWED_ON_RDN",SWIG_From_int((int)(67)));
6375   SWIG_Python_SetConstant(d, "LDB_ERR_ENTRY_ALREADY_EXISTS",SWIG_From_int((int)(68)));
6376   SWIG_Python_SetConstant(d, "LDB_ERR_OBJECT_CLASS_MODS_PROHIBITED",SWIG_From_int((int)(69)));
6377   SWIG_Python_SetConstant(d, "LDB_ERR_AFFECTS_MULTIPLE_DSAS",SWIG_From_int((int)(71)));
6378   SWIG_Python_SetConstant(d, "LDB_ERR_OTHER",SWIG_From_int((int)(80)));
6379 }
6380