Add a setexpiry operation in samdb.py
authorAndrew Tridgell <tridge@samba.org>
Fri, 29 Aug 2008 21:32:44 +0000 (07:32 +1000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 29 Aug 2008 21:32:44 +0000 (07:32 +1000)
This makes it easy to set the expiry (or no expiry) for a samdb user

source/lib/ldb/ldb.py
source/lib/ldb/ldb_wrap.c
source/lib/registry/registry.py
source/lib/registry/registry_wrap.c
source/scripting/python/misc.i
source/scripting/python/misc.py
source/scripting/python/misc_wrap.c
source/scripting/python/samba/samdb.py
source/setup/tests/blackbox_newuser.sh

index ae2c187367fdd455f03cb308a6cc87e36428e14a..5826c6b7526d31d0df5e2a0514f9a19a408746dc 100644 (file)
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.35
+# Version 1.3.36
 #
 # Don't modify this file, modify the SWIG interface instead.
 
index f9dd8471c7186af4c39ca59217830a8458b813c4..c9dd9dccd8d951bdb4a91273ded2af02f126fd89 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.35
+ * Version 1.3.36
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
 # endif
 #endif
 
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
 #ifndef SWIGUNUSEDPARM
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
@@ -2534,7 +2540,7 @@ static swig_module_info swig_module = {swig_types, 24, 0, 0, 0, 0};
 
 #define SWIG_name    "_ldb"
 
-#define SWIGVERSION 0x010335 
+#define SWIGVERSION 0x010336 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3228,7 +3234,6 @@ SWIGINTERN PyObject *_wrap_ldb_val_to_py_object(PyObject *SWIGUNUSEDPARM(self),
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
   struct ldb_message_element *arg2 = (struct ldb_message_element *) 0 ;
   struct ldb_val *arg3 = (struct ldb_val *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3241,6 +3246,7 @@ SWIGINTERN PyObject *_wrap_ldb_val_to_py_object(PyObject *SWIGUNUSEDPARM(self),
   char *  kwnames[] = {
     (char *) "ldb_ctx",(char *) "el",(char *) "val", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:ldb_val_to_py_object",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3273,7 +3279,6 @@ SWIGINTERN PyObject *_wrap_new_Dn(PyObject *SWIGUNUSEDPARM(self), PyObject *args
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   char *arg2 = (char *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3284,6 +3289,7 @@ SWIGINTERN PyObject *_wrap_new_Dn(PyObject *SWIGUNUSEDPARM(self), PyObject *args
   char *  kwnames[] = {
     (char *) "ldb_ctx",(char *) "str", NULL 
   };
+  ldb_dn *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:new_Dn",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3324,7 +3330,6 @@ SWIGINTERN PyObject *_wrap_delete_Dn(PyObject *SWIGUNUSEDPARM(self), PyObject *a
   }
   arg1 = (ldb_dn *)(argp1);
   delete_ldb_dn(arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -3335,10 +3340,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_validate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  bool result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3358,10 +3363,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_get_casefold(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3381,10 +3386,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn___str__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3404,10 +3409,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_parent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3428,7 +3433,6 @@ SWIGINTERN PyObject *_wrap_Dn___cmp__(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3438,6 +3442,7 @@ SWIGINTERN PyObject *_wrap_Dn___cmp__(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "self",(char *) "other", NULL 
   };
+  int result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn___cmp__",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
@@ -3461,10 +3466,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_is_valid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  bool result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3484,10 +3489,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_is_special(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  bool result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3507,10 +3512,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_is_null(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  bool result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3531,7 +3536,6 @@ SWIGINTERN PyObject *_wrap_Dn_check_special(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
   char *arg2 = (char *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3542,6 +3546,7 @@ SWIGINTERN PyObject *_wrap_Dn_check_special(PyObject *SWIGUNUSEDPARM(self), PyOb
   char *  kwnames[] = {
     (char *) "self",(char *) "name", NULL 
   };
+  bool result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_check_special",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
@@ -3567,10 +3572,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  int result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3591,7 +3596,6 @@ SWIGINTERN PyObject *_wrap_Dn_add_child(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3601,6 +3605,7 @@ SWIGINTERN PyObject *_wrap_Dn_add_child(PyObject *SWIGUNUSEDPARM(self), PyObject
   char *  kwnames[] = {
     (char *) "self",(char *) "child", NULL 
   };
+  bool result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_add_child",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
@@ -3625,7 +3630,6 @@ SWIGINTERN PyObject *_wrap_Dn_add_base(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3635,6 +3639,7 @@ SWIGINTERN PyObject *_wrap_Dn_add_base(PyObject *SWIGUNUSEDPARM(self), PyObject
   char *  kwnames[] = {
     (char *) "self",(char *) "base", NULL 
   };
+  bool result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn_add_base",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
@@ -3658,10 +3663,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_canonical_str(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3681,10 +3686,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn_canonical_ex_str(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3704,10 +3709,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Dn___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3728,7 +3733,6 @@ SWIGINTERN PyObject *_wrap_Dn___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3738,6 +3742,7 @@ SWIGINTERN PyObject *_wrap_Dn___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "self",(char *) "other", NULL 
   };
+  ldb_dn *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Dn___add__",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_dn, 0 |  0 );
@@ -3773,7 +3778,6 @@ SWIGINTERN PyObject *_wrap_MessageElement___cmp__(PyObject *SWIGUNUSEDPARM(self)
   PyObject *resultobj = 0;
   ldb_message_element *arg1 = (ldb_message_element *) 0 ;
   ldb_message_element *arg2 = (ldb_message_element *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3783,6 +3787,7 @@ SWIGINTERN PyObject *_wrap_MessageElement___cmp__(PyObject *SWIGUNUSEDPARM(self)
   char *  kwnames[] = {
     (char *) "self",(char *) "other", NULL 
   };
+  int result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MessageElement___cmp__",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
@@ -3806,10 +3811,10 @@ fail:
 SWIGINTERN PyObject *_wrap_MessageElement___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_message_element *arg1 = (ldb_message_element *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  PyObject *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3829,10 +3834,10 @@ fail:
 SWIGINTERN PyObject *_wrap_MessageElement___set__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_message_element *arg1 = (ldb_message_element *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  PyObject *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3854,7 +3859,6 @@ SWIGINTERN PyObject *_wrap_new_MessageElement(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *arg1 = (PyObject *) 0 ;
   int arg2 = (int) 0 ;
   char *arg3 = (char *) NULL ;
-  ldb_message_element *result = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   int res3 ;
@@ -3866,6 +3870,7 @@ SWIGINTERN PyObject *_wrap_new_MessageElement(PyObject *SWIGUNUSEDPARM(self), Py
   char *  kwnames[] = {
     (char *) "set_obj",(char *) "flags",(char *) "name", NULL 
   };
+  ldb_message_element *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|OO:new_MessageElement",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   arg1 = obj0;
@@ -3896,10 +3901,10 @@ fail:
 SWIGINTERN PyObject *_wrap_MessageElement___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_message_element *arg1 = (ldb_message_element *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  int result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -3920,7 +3925,6 @@ SWIGINTERN PyObject *_wrap_MessageElement_get(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   ldb_message_element *arg1 = (ldb_message_element *) 0 ;
   int arg2 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -3930,6 +3934,7 @@ SWIGINTERN PyObject *_wrap_MessageElement_get(PyObject *SWIGUNUSEDPARM(self), Py
   char *  kwnames[] = {
     (char *) "self",(char *) "i", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MessageElement_get",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message_element, 0 |  0 );
@@ -3965,7 +3970,6 @@ SWIGINTERN PyObject *_wrap_delete_MessageElement(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = (ldb_message_element *)(argp1);
   delete_ldb_message_element(arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -3987,13 +3991,13 @@ SWIGINTERN PyObject *MessageElement_swiginit(PyObject *SWIGUNUSEDPARM(self), PyO
 SWIGINTERN PyObject *_wrap_ldb_msg_list_elements(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "msg", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ldb_msg_list_elements",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
@@ -4037,7 +4041,6 @@ SWIGINTERN PyObject *_wrap_Message_dn_set(PyObject *SWIGUNUSEDPARM(self), PyObje
   SWIG_exception(SWIG_ValueError, 
     "Message can not be None");
   if (arg1) (arg1)->dn = arg2;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4048,10 +4051,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Message_dn_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4074,13 +4077,13 @@ fail:
 SWIGINTERN PyObject *_wrap_new_Message(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   ldb_dn *arg1 = (ldb_dn *) NULL ;
-  ldb_msg *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "dn", NULL 
   };
+  ldb_msg *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"|O:new_Message",kwnames,&obj0)) SWIG_fail;
   if (obj0) {
@@ -4116,7 +4119,6 @@ SWIGINTERN PyObject *_wrap_delete_Message(PyObject *SWIGUNUSEDPARM(self), PyObje
   SWIG_exception(SWIG_ValueError, 
     "Message can not be None");
   delete_ldb_msg(arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4128,7 +4130,6 @@ SWIGINTERN PyObject *_wrap_Message_find_element(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
   char *arg2 = (char *) 0 ;
-  ldb_message_element *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -4139,6 +4140,7 @@ SWIGINTERN PyObject *_wrap_Message_find_element(PyObject *SWIGUNUSEDPARM(self),
   char *  kwnames[] = {
     (char *) "self",(char *) "name", NULL 
   };
+  ldb_message_element *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Message_find_element",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_message, 0 |  0 );
@@ -4281,10 +4283,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Message___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
-  unsigned int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  unsigned int result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4307,10 +4309,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Message_keys(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  PyObject *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4333,10 +4335,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Message___iter__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb_msg *arg1 = (ldb_msg *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  PyObject *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4409,13 +4411,13 @@ SWIGINTERN PyObject *Message_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *
 SWIGINTERN PyObject *_wrap_ldb_ldif_to_pyobject(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   ldb_ldif *arg1 = (ldb_ldif *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "ldif", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ldb_ldif_to_pyobject",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_ldif, 0 |  0 );
@@ -4450,7 +4452,6 @@ SWIGINTERN PyObject *_wrap_Ldb_connect(PyObject *SWIGUNUSEDPARM(self), PyObject
   char *arg2 = (char *) 0 ;
   unsigned int arg3 = (unsigned int) 0 ;
   char **arg4 = (char **) (char **)NULL ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -4467,6 +4468,7 @@ SWIGINTERN PyObject *_wrap_Ldb_connect(PyObject *SWIGUNUSEDPARM(self), PyObject
   char *  kwnames[] = {
     (char *) "self",(char *) "url",(char *) "flags",(char *) "options", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|OO:Ldb_connect",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -4528,7 +4530,6 @@ SWIGINTERN PyObject *_wrap_delete_Ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *
   SWIG_exception(SWIG_ValueError, 
     "ldb context must be non-NULL");
   delete_ldb(arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4546,7 +4547,6 @@ SWIGINTERN PyObject *_wrap_Ldb_search_ex(PyObject *SWIGUNUSEDPARM(self), PyObjec
   char **arg6 = (char **) NULL ;
   struct ldb_control **arg7 = (struct ldb_control **) NULL ;
   struct ldb_result **arg8 = (struct ldb_result **) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val4 ;
@@ -4567,6 +4567,7 @@ SWIGINTERN PyObject *_wrap_Ldb_search_ex(PyObject *SWIGUNUSEDPARM(self), PyObjec
   char *  kwnames[] = {
     (char *) "self",(char *) "base",(char *) "scope",(char *) "expression",(char *) "attrs",(char *) "controls", NULL 
   };
+  ldb_error result;
   
   arg2 = NULL;
   arg8 = &temp_ldb_result8;
@@ -4646,7 +4647,6 @@ SWIGINTERN PyObject *_wrap_Ldb_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -4654,6 +4654,7 @@ SWIGINTERN PyObject *_wrap_Ldb_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "self",(char *) "dn", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_delete",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -4686,7 +4687,6 @@ SWIGINTERN PyObject *_wrap_Ldb_rename(PyObject *SWIGUNUSEDPARM(self), PyObject *
   ldb *arg1 = (ldb *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
   ldb_dn *arg3 = (ldb_dn *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -4695,6 +4695,7 @@ SWIGINTERN PyObject *_wrap_Ldb_rename(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "self",(char *) "olddn",(char *) "newdn", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_rename",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -4732,7 +4733,6 @@ SWIGINTERN PyObject *_wrap_Ldb_parse_control_strings(PyObject *SWIGUNUSEDPARM(se
   ldb *arg1 = (ldb *) 0 ;
   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
   char **arg3 = (char **) 0 ;
-  struct ldb_control **result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -4740,6 +4740,7 @@ SWIGINTERN PyObject *_wrap_Ldb_parse_control_strings(PyObject *SWIGUNUSEDPARM(se
   char *  kwnames[] = {
     (char *) "self",(char *) "control_strings", NULL 
   };
+  struct ldb_control **result = 0 ;
   
   arg2 = NULL;
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_parse_control_strings",kwnames,&obj0,&obj1)) SWIG_fail;
@@ -4780,7 +4781,6 @@ SWIGINTERN PyObject *_wrap_Ldb_add(PyObject *SWIGUNUSEDPARM(self), PyObject *arg
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   ldb_msg *arg2 = (ldb_msg *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -4788,6 +4788,7 @@ SWIGINTERN PyObject *_wrap_Ldb_add(PyObject *SWIGUNUSEDPARM(self), PyObject *arg
   char *  kwnames[] = {
     (char *) "self",(char *) "add_msg", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_add",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -4860,7 +4861,6 @@ SWIGINTERN PyObject *_wrap_Ldb_modify(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   ldb_msg *arg2 = (ldb_msg *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -4870,6 +4870,7 @@ SWIGINTERN PyObject *_wrap_Ldb_modify(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "self",(char *) "message", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_modify",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -4903,10 +4904,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_get_config_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4929,10 +4930,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_get_root_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4955,10 +4956,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_get_schema_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -4981,10 +4982,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_get_default_basedn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_dn *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_dn *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5009,7 +5010,6 @@ SWIGINTERN PyObject *_wrap_Ldb_schema_format_value(PyObject *SWIGUNUSEDPARM(self
   ldb *arg1 = (ldb *) 0 ;
   char *arg2 = (char *) 0 ;
   PyObject *arg3 = (PyObject *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -5021,6 +5021,7 @@ SWIGINTERN PyObject *_wrap_Ldb_schema_format_value(PyObject *SWIGUNUSEDPARM(self
   char *  kwnames[] = {
     (char *) "self",(char *) "element_name",(char *) "val", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_schema_format_value",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5050,10 +5051,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_errstring(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5153,7 +5154,6 @@ SWIGINTERN PyObject *_wrap_Ldb_set_debug(PyObject *SWIGUNUSEDPARM(self), PyObjec
   ldb *arg1 = (ldb *) 0 ;
   void (*arg2)(void *,enum ldb_debug_level,char const *,va_list) = (void (*)(void *,enum ldb_debug_level,char const *,va_list)) 0 ;
   void *arg3 = (void *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -5161,6 +5161,7 @@ SWIGINTERN PyObject *_wrap_Ldb_set_debug(PyObject *SWIGUNUSEDPARM(self), PyObjec
   char *  kwnames[] = {
     (char *) "self",(char *) "debug", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_set_debug",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5193,7 +5194,6 @@ SWIGINTERN PyObject *_wrap_Ldb_set_opaque(PyObject *SWIGUNUSEDPARM(self), PyObje
   ldb *arg1 = (ldb *) 0 ;
   char *arg2 = (char *) 0 ;
   void *arg3 = (void *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -5206,6 +5206,7 @@ SWIGINTERN PyObject *_wrap_Ldb_set_opaque(PyObject *SWIGUNUSEDPARM(self), PyObje
   char *  kwnames[] = {
     (char *) "self",(char *) "name",(char *) "value", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:Ldb_set_opaque",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5243,7 +5244,6 @@ SWIGINTERN PyObject *_wrap_Ldb_get_opaque(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   char *arg2 = (char *) 0 ;
-  void *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -5254,6 +5254,7 @@ SWIGINTERN PyObject *_wrap_Ldb_get_opaque(PyObject *SWIGUNUSEDPARM(self), PyObje
   char *  kwnames[] = {
     (char *) "self",(char *) "name", NULL 
   };
+  void *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_get_opaque",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5282,10 +5283,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_transaction_start(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_error result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5312,10 +5313,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_transaction_commit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_error result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5342,10 +5343,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_transaction_cancel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_error result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5414,7 +5415,6 @@ SWIGINTERN PyObject *_wrap_Ldb_schema_attribute_add(PyObject *SWIGUNUSEDPARM(sel
   char *arg2 = (char *) 0 ;
   unsigned int arg3 ;
   char *arg4 = (char *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -5432,6 +5432,7 @@ SWIGINTERN PyObject *_wrap_Ldb_schema_attribute_add(PyObject *SWIGUNUSEDPARM(sel
   char *  kwnames[] = {
     (char *) "self",(char *) "attribute",(char *) "flags",(char *) "syntax", NULL 
   };
+  ldb_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:Ldb_schema_attribute_add",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5476,10 +5477,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb_setup_wellknown_attributes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  ldb_error result;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5508,7 +5509,6 @@ SWIGINTERN PyObject *_wrap_Ldb___contains__(PyObject *SWIGUNUSEDPARM(self), PyOb
   ldb *arg1 = (ldb *) 0 ;
   ldb_dn *arg2 = (ldb_dn *) 0 ;
   struct ldb_result **arg3 = (struct ldb_result **) 0 ;
-  ldb_error result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   struct ldb_result *tmp3 ;
@@ -5517,6 +5517,7 @@ SWIGINTERN PyObject *_wrap_Ldb___contains__(PyObject *SWIGUNUSEDPARM(self), PyOb
   char *  kwnames[] = {
     (char *) "self",(char *) "dn", NULL 
   };
+  ldb_error result;
   
   arg3 = &tmp3;
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb___contains__",kwnames,&obj0,&obj1)) SWIG_fail;
@@ -5552,7 +5553,6 @@ SWIGINTERN PyObject *_wrap_Ldb_parse_ldif(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
   char *arg2 = (char *) 0 ;
-  PyObject *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -5563,6 +5563,7 @@ SWIGINTERN PyObject *_wrap_Ldb_parse_ldif(PyObject *SWIGUNUSEDPARM(self), PyObje
   char *  kwnames[] = {
     (char *) "self",(char *) "s", NULL 
   };
+  PyObject *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Ldb_parse_ldif",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -5591,10 +5592,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Ldb___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ldb *arg1 = (ldb *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
+  char *result = 0 ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
@@ -5628,7 +5629,6 @@ SWIGINTERN PyObject *Ldb_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args
 SWIGINTERN PyObject *_wrap_valid_attr_name(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5636,6 +5636,7 @@ SWIGINTERN PyObject *_wrap_valid_attr_name(PyObject *SWIGUNUSEDPARM(self), PyObj
   char *  kwnames[] = {
     (char *) "s", NULL 
   };
+  int result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:valid_attr_name",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5656,13 +5657,13 @@ fail:
 SWIGINTERN PyObject *_wrap_timestring(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   time_t arg1 ;
-  char *result = 0 ;
   unsigned long val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "t", NULL 
   };
+  char *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:timestring",kwnames,&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_long(obj0, &val1);
@@ -5681,7 +5682,6 @@ fail:
 SWIGINTERN PyObject *_wrap_string_to_time(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
-  time_t result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -5689,6 +5689,7 @@ SWIGINTERN PyObject *_wrap_string_to_time(PyObject *SWIGUNUSEDPARM(self), PyObje
   char *  kwnames[] = {
     (char *) "s", NULL 
   };
+  time_t result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:string_to_time",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -5709,11 +5710,11 @@ fail:
 SWIGINTERN PyObject *_wrap_register_module(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   struct ldb_module_ops *arg1 = (struct ldb_module_ops *) 0 ;
-  ldb_int_error result;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *)"arg1", NULL 
   };
+  ldb_int_error result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:register_module",kwnames,&obj0)) SWIG_fail;
   arg1 = talloc_zero(talloc_autofree_context(), struct ldb_module_ops);
index 0aeefb86c1cb5f74838d4c660168dbb1bbe4137e..e086a6ad37de237773e81ed3cddbf8474a6f7e41 100644 (file)
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.35
+# Version 1.3.36
 #
 # Don't modify this file, modify the SWIG interface instead.
 
index 3fc34b1fe304682c690bbebf66943a96cf9a3c05..809610fd1d7506a99ed0836d7c7cab68d39b59d7 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.35
+ * Version 1.3.36
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
 # endif
 #endif
 
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
 #ifndef SWIGUNUSEDPARM
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
@@ -2533,7 +2539,7 @@ static swig_module_info swig_module = {swig_types, 26, 0, 0, 0, 0};
 
 #define SWIG_name    "_registry"
 
-#define SWIGVERSION 0x010335 
+#define SWIGVERSION 0x010336 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2886,13 +2892,13 @@ extern "C" {
 SWIGINTERN PyObject *_wrap_reg_get_predef_name(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   uint32_t arg1 ;
-  char *result = 0 ;
   unsigned int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "hkey", NULL 
   };
+  char *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:reg_get_predef_name",kwnames,&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
@@ -2911,13 +2917,13 @@ fail:
 SWIGINTERN PyObject *_wrap_str_regtype(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   int arg1 ;
-  char *result = 0 ;
   int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "type", NULL 
   };
+  char *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:str_regtype",kwnames,&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -2937,8 +2943,8 @@ SWIGINTERN PyObject *_wrap_Registry(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   PyObject *resultobj = 0;
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   struct registry_context **arg2 = (struct registry_context **) 0 ;
-  WERROR result;
   struct registry_context *tmp2 ;
+  WERROR result;
   
   arg1 = NULL;
   arg2 = &tmp2;
@@ -2962,7 +2968,6 @@ SWIGINTERN PyObject *_wrap_reg_get_predefined_key_by_name(PyObject *SWIGUNUSEDPA
   reg *arg1 = (reg *) 0 ;
   char *arg2 = (char *) 0 ;
   struct registry_key **arg3 = (struct registry_key **) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -2976,6 +2981,7 @@ SWIGINTERN PyObject *_wrap_reg_get_predefined_key_by_name(PyObject *SWIGUNUSEDPA
   char *  kwnames[] = {
     (char *) "self",(char *) "name",(char *) "key", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:reg_get_predefined_key_by_name",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3012,7 +3018,6 @@ SWIGINTERN PyObject *_wrap_reg_key_del_abs(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   reg *arg1 = (reg *) 0 ;
   char *arg2 = (char *) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3023,6 +3028,7 @@ SWIGINTERN PyObject *_wrap_reg_key_del_abs(PyObject *SWIGUNUSEDPARM(self), PyObj
   char *  kwnames[] = {
     (char *) "self",(char *) "path", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:reg_key_del_abs",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3055,7 +3061,6 @@ SWIGINTERN PyObject *_wrap_reg_get_predefined_key(PyObject *SWIGUNUSEDPARM(self)
   reg *arg1 = (reg *) 0 ;
   uint32_t arg2 ;
   struct registry_key **arg3 = (struct registry_key **) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   unsigned int val2 ;
@@ -3068,6 +3073,7 @@ SWIGINTERN PyObject *_wrap_reg_get_predefined_key(PyObject *SWIGUNUSEDPARM(self)
   char *  kwnames[] = {
     (char *) "self",(char *) "hkey_id",(char *) "key", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:reg_get_predefined_key",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3102,7 +3108,6 @@ SWIGINTERN PyObject *_wrap_reg_diff_apply(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   reg *arg1 = (reg *) 0 ;
   char *arg2 = (char *) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3113,6 +3118,7 @@ SWIGINTERN PyObject *_wrap_reg_diff_apply(PyObject *SWIGUNUSEDPARM(self), PyObje
   char *  kwnames[] = {
     (char *) "self",(char *) "filename", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:reg_diff_apply",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3146,7 +3152,6 @@ SWIGINTERN PyObject *_wrap_reg_generate_diff(PyObject *SWIGUNUSEDPARM(self), PyO
   struct registry_context *arg2 = (struct registry_context *) 0 ;
   struct reg_diff_callbacks *arg3 = (struct reg_diff_callbacks *) 0 ;
   void *arg4 = (void *) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3161,6 +3166,7 @@ SWIGINTERN PyObject *_wrap_reg_generate_diff(PyObject *SWIGUNUSEDPARM(self), PyO
   char *  kwnames[] = {
     (char *) "self",(char *) "ctx2",(char *) "callbacks",(char *) "callback_data", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:reg_generate_diff",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3201,13 +3207,13 @@ SWIGINTERN PyObject *_wrap_reg_mount_hive__SWIG_0(PyObject *SWIGUNUSEDPARM(self)
   struct hive_key *arg2 = (struct hive_key *) 0 ;
   uint32_t arg3 ;
   char **arg4 = (char **) NULL ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   unsigned int val3 ;
   int ecode3 = 0 ;
+  WERROR result;
   
   if ((nobjs < 3) || (nobjs > 4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3268,7 +3274,6 @@ SWIGINTERN PyObject *_wrap_reg_import_hive_key(PyObject *SWIGUNUSEDPARM(self), P
   struct hive_key *arg2 = (struct hive_key *) 0 ;
   uint32_t arg3 ;
   char **arg4 = (char **) 0 ;
-  struct registry_key *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3282,6 +3287,7 @@ SWIGINTERN PyObject *_wrap_reg_import_hive_key(PyObject *SWIGUNUSEDPARM(self), P
   char *  kwnames[] = {
     (char *) "self",(char *) "hive",(char *) "predef_key",(char *) "elements", NULL 
   };
+  struct registry_key *result = 0 ;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:reg_import_hive_key",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3334,7 +3340,6 @@ SWIGINTERN PyObject *_wrap_reg_mount_hive__SWIG_1(PyObject *SWIGUNUSEDPARM(self)
   reg *arg1 = (reg *) 0 ;
   struct hive_key *arg2 = (struct hive_key *) 0 ;
   char *arg3 = (char *) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -3342,6 +3347,7 @@ SWIGINTERN PyObject *_wrap_reg_mount_hive__SWIG_1(PyObject *SWIGUNUSEDPARM(self)
   int res3 ;
   char *buf3 = 0 ;
   int alloc3 = 0 ;
+  WERROR result;
   
   if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_registry_context, 0 |  0 );
@@ -3434,7 +3440,6 @@ SWIGINTERN PyObject *_wrap_delete_reg(PyObject *SWIGUNUSEDPARM(self), PyObject *
   }
   arg1 = (reg *)(argp1);
   free((char *) arg1);
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -3462,7 +3467,6 @@ SWIGINTERN PyObject *_wrap_hive_key(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   struct event_context *arg5 = (struct event_context *) 0 ;
   struct loadparm_context *arg6 = (struct loadparm_context *) 0 ;
   struct hive_key **arg7 = (struct hive_key **) 0 ;
-  WERROR result;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
@@ -3483,10 +3487,11 @@ SWIGINTERN PyObject *_wrap_hive_key(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   char *  kwnames[] = {
     (char *) "location",(char *) "session_info",(char *) "credentials",(char *) "ev_ctx",(char *) "lp_ctx", NULL 
   };
+  WERROR result;
   
   arg3 = NULL;
   arg4 = NULL;
-  arg5 = s4_event_context_init(NULL);
+  arg5 = event_context_init(NULL);
   arg6 = loadparm_init(NULL);
   arg1 = NULL;
   arg7 = &tmp7;
@@ -3550,7 +3555,6 @@ SWIGINTERN PyObject *_wrap_open_ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   struct event_context *arg5 = (struct event_context *) 0 ;
   struct loadparm_context *arg6 = (struct loadparm_context *) 0 ;
   struct hive_key **arg7 = (struct hive_key **) 0 ;
-  WERROR result;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
@@ -3571,10 +3575,11 @@ SWIGINTERN PyObject *_wrap_open_ldb(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   char *  kwnames[] = {
     (char *) "location",(char *) "session_info",(char *) "credentials",(char *) "ev_ctx",(char *) "lp_ctx", NULL 
   };
+  WERROR result;
   
   arg3 = NULL;
   arg4 = NULL;
-  arg5 = s4_event_context_init(NULL);
+  arg5 = event_context_init(NULL);
   arg6 = loadparm_init(NULL);
   arg1 = NULL;
   arg7 = &tmp7;
@@ -3634,7 +3639,6 @@ SWIGINTERN PyObject *_wrap_create_dir(PyObject *SWIGUNUSEDPARM(self), PyObject *
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   char *arg2 = (char *) 0 ;
   struct hive_key **arg3 = (struct hive_key **) 0 ;
-  WERROR result;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
@@ -3643,6 +3647,7 @@ SWIGINTERN PyObject *_wrap_create_dir(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "location", NULL 
   };
+  WERROR result;
   
   arg1 = NULL;
   arg3 = &tmp3;
@@ -3674,7 +3679,6 @@ SWIGINTERN PyObject *_wrap_open_dir(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   char *arg2 = (char *) 0 ;
   struct hive_key **arg3 = (struct hive_key **) 0 ;
-  WERROR result;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
@@ -3683,6 +3687,7 @@ SWIGINTERN PyObject *_wrap_open_dir(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   char *  kwnames[] = {
     (char *) "location", NULL 
   };
+  WERROR result;
   
   arg1 = NULL;
   arg3 = &tmp3;
@@ -3717,7 +3722,6 @@ SWIGINTERN PyObject *_wrap_open_samba(PyObject *SWIGUNUSEDPARM(self), PyObject *
   struct loadparm_context *arg4 = (struct loadparm_context *) 0 ;
   struct auth_session_info *arg5 = (struct auth_session_info *) 0 ;
   struct cli_credentials *arg6 = (struct cli_credentials *) 0 ;
-  WERROR result;
   struct registry_context *tmp2 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
@@ -3734,8 +3738,9 @@ SWIGINTERN PyObject *_wrap_open_samba(PyObject *SWIGUNUSEDPARM(self), PyObject *
   char *  kwnames[] = {
     (char *) "ev_ctx",(char *) "lp_ctx",(char *) "session_info",(char *) "credentials", NULL 
   };
+  WERROR result;
   
-  arg3 = s4_event_context_init(NULL);
+  arg3 = event_context_init(NULL);
   arg4 = loadparm_init(NULL);
   arg5 = NULL;
   arg6 = NULL;
index 1d331215b5f0fb7fc4116ede263a3f4ff06af917..f0bc156abde4884af95686a63be5213c394f8251 100644 (file)
@@ -100,3 +100,16 @@ bool dsdb_set_ntds_invocation_id(struct ldb_context *ldb, const char *guid)
 char *private_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
                const char *name);
 
+typedef unsigned long time_t;
+
+/*
+  convert from unix time to NT time
+*/
+%inline %{
+uint64_t unix2nttime(time_t t)
+{
+       NTTIME nt;
+       unix_to_nt_time(&nt, t);
+       return (uint64_t)nt;
+}
+%}
index 0c14944001a00fd237c5d77483ebdc1cba23a7e2..e52d7df11d8cfe16e17f329d33e4c6e13d5932c1 100644 (file)
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.35
+# Version 1.3.36
 #
 # Don't modify this file, modify the SWIG interface instead.
 
@@ -118,5 +118,6 @@ def ldb_register_samba_handlers(*args, **kwargs):
   return _misc.ldb_register_samba_handlers(*args, **kwargs)
 dsdb_set_ntds_invocation_id = _misc.dsdb_set_ntds_invocation_id
 private_path = _misc.private_path
+unix2nttime = _misc.unix2nttime
 
 
index 888918ef533a9d9ca50378e7e7039a9d414b16c9..4b5bfb01740d33b26b7f35339e718e2a4c27c355 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.35
+ * Version 1.3.36
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
 # endif
 #endif
 
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
 #ifndef SWIGUNUSEDPARM
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
@@ -2537,7 +2543,7 @@ static swig_module_info swig_module = {swig_types, 27, 0, 0, 0, 0};
 
 #define SWIG_name    "_misc"
 
-#define SWIGVERSION 0x010335 
+#define SWIGVERSION 0x010336 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2826,6 +2832,40 @@ bool dsdb_set_ntds_invocation_id(struct ldb_context *ldb, const char *guid)
     return samdb_set_ntds_invocation_id(ldb, &invocation_id_in);
 }
 
+
+uint64_t unix2nttime(time_t t)
+{
+       NTTIME nt;
+       unix_to_nt_time(&nt, t);
+       return (uint64_t)nt;
+}
+
+
+#include <limits.h>
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
+
+
+SWIGINTERNINLINE PyObject* 
+SWIG_From_long_SS_long  (long long value)
+{
+  return ((value < LONG_MIN) || (value > LONG_MAX)) ?
+    PyLong_FromLongLong(value) : PyInt_FromLong((long)(value)); 
+}
+
+
+SWIGINTERNINLINE PyObject* 
+SWIG_From_unsigned_SS_long_SS_long  (unsigned long long value)
+{
+  return (value > LONG_MAX) ?
+    PyLong_FromUnsignedLongLong(value) : PyInt_FromLong((long)(value)); 
+}
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -2833,13 +2873,13 @@ SWIGINTERN PyObject *_wrap_random_password(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   size_t arg2 ;
-  char *result = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "len", NULL 
   };
+  char *result = 0 ;
   
   arg1 = NULL;
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:random_password",kwnames,&obj0)) SWIG_fail;
@@ -2974,7 +3014,6 @@ SWIGINTERN PyObject *_wrap_samdb_set_domain_sid(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
   struct dom_sid *arg2 = (struct dom_sid *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -2984,6 +3023,7 @@ SWIGINTERN PyObject *_wrap_samdb_set_domain_sid(PyObject *SWIGUNUSEDPARM(self),
   char *  kwnames[] = {
     (char *) "ldb",(char *) "dom_sid_in", NULL 
   };
+  bool result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:samdb_set_domain_sid",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3012,7 +3052,6 @@ SWIGINTERN PyObject *_wrap_dsdb_attach_schema_from_ldif_file(PyObject *SWIGUNUSE
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
-  WERROR result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3027,6 +3066,7 @@ SWIGINTERN PyObject *_wrap_dsdb_attach_schema_from_ldif_file(PyObject *SWIGUNUSE
   char *  kwnames[] = {
     (char *) "ldb",(char *) "pf",(char *) "df", NULL 
   };
+  WERROR result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:dsdb_attach_schema_from_ldif_file",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3080,13 +3120,13 @@ fail:
 SWIGINTERN PyObject *_wrap_dsdb_set_global_schema(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "ldb", NULL 
   };
+  int result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:dsdb_set_global_schema",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3108,13 +3148,13 @@ fail:
 SWIGINTERN PyObject *_wrap_ldb_register_samba_handlers(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   char *  kwnames[] = {
     (char *) "ldb", NULL 
   };
+  int result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ldb_register_samba_handlers",kwnames,&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3137,7 +3177,6 @@ SWIGINTERN PyObject *_wrap_dsdb_set_ntds_invocation_id(PyObject *SWIGUNUSEDPARM(
   PyObject *resultobj = 0;
   struct ldb_context *arg1 = (struct ldb_context *) 0 ;
   char *arg2 = (char *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -3148,6 +3187,7 @@ SWIGINTERN PyObject *_wrap_dsdb_set_ntds_invocation_id(PyObject *SWIGUNUSEDPARM(
   char *  kwnames[] = {
     (char *) "ldb",(char *) "guid", NULL 
   };
+  bool result;
   
   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:dsdb_set_ntds_invocation_id",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ldb_context, 0 |  0 );
@@ -3178,7 +3218,6 @@ SWIGINTERN PyObject *_wrap_private_path(PyObject *SWIGUNUSEDPARM(self), PyObject
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   struct loadparm_context *arg2 = (struct loadparm_context *) 0 ;
   char *arg3 = (char *) 0 ;
-  char *result = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   int res3 ;
@@ -3189,6 +3228,7 @@ SWIGINTERN PyObject *_wrap_private_path(PyObject *SWIGUNUSEDPARM(self), PyObject
   char *  kwnames[] = {
     (char *) "lp_ctx",(char *) "name", NULL 
   };
+  char *result = 0 ;
   
   arg2 = loadparm_init(NULL);
   arg1 = NULL;
@@ -3217,6 +3257,31 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_unix2nttime(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+  PyObject *resultobj = 0;
+  time_t arg1 ;
+  unsigned long val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *  kwnames[] = {
+    (char *) "t", NULL 
+  };
+  uint64_t result;
+  
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:unix2nttime",kwnames,&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_unsigned_SS_long(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "unix2nttime" "', argument " "1"" of type '" "time_t""'");
+  } 
+  arg1 = (time_t)(val1);
+  result = (uint64_t)unix2nttime(arg1);
+  resultobj = SWIG_From_unsigned_SS_long_SS_long((unsigned long long)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 static PyMethodDef SwigMethods[] = {
         { (char *)"random_password", (PyCFunction) _wrap_random_password, METH_VARARGS | METH_KEYWORDS, (char *)"\n"
                "S.random_password(len) -> string\n"
@@ -3250,6 +3315,7 @@ static PyMethodDef SwigMethods[] = {
                ""},
         { (char *)"dsdb_set_ntds_invocation_id", (PyCFunction) _wrap_dsdb_set_ntds_invocation_id, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"private_path", (PyCFunction) _wrap_private_path, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"unix2nttime", (PyCFunction) _wrap_unix2nttime, METH_VARARGS | METH_KEYWORDS, NULL},
         { NULL, NULL, 0, NULL }
 };
 
index c7d93d6aff756624b781e500a27698f0e7040926..4a64c2f76d348c390bad84d585fd88f42488341b 100644 (file)
@@ -27,6 +27,7 @@ import misc
 import ldb
 from samba.idmap import IDmapDB
 import pwd
+import time
 
 __docformat__ = "restructuredText"
 
@@ -192,3 +193,35 @@ userPassword: %s
        :param invocation_id: GUID of the invocation id.
        """
        misc.dsdb_set_ntds_invocation_id(self, invocation_id)
+
+    def setexpiry(self, user, expiry_seconds, noexpiry):
+        """Set the password expiry for a user
+        
+        :param expiry_seconds: expiry time from now in seconds
+        :param noexpiry: if set, then don't expire password
+        """
+        self.transaction_start();
+        res = self.search(base=self.domain_dn(), scope=ldb.SCOPE_SUBTREE,
+                          expression=("(samAccountName=%s)" % user),
+                          attrs=["userAccountControl", "accountExpires"])
+        assert len(res) == 1
+        userAccountControl = int(res[0]["userAccountControl"][0])
+        accountExpires     = int(res[0]["accountExpires"][0])
+        if noexpiry:
+            userAccountControl = userAccountControl | 0x10000
+            accountExpires = 0
+        else:
+            userAccountControl = userAccountControl & ~0x10000
+            accountExpires = misc.unix2nttime(expiry_seconds + int(time.time()))
+
+        mod = """
+dn: %s
+changetype: modify
+replace: userAccountControl
+userAccountControl: %u
+replace: accountExpires
+accountExpires: %u
+""" % (res[0].dn, userAccountControl, accountExpires)
+        # now change the database
+        self.modify_ldif(mod)
+        self.transaction_commit();
index 3e534f2b5207514630bb70d341cc67ee3889565b..d25c70669b450cf9c3a46fafb5c25b7a3feb6035 100755 (executable)
@@ -15,6 +15,18 @@ shift 1
 
 testit "simple-dc" $PYTHON ./setup/provision --server-role="dc" --domain=FOO --realm=foo.example.com --domain-sid=S-1-5-21-4177067393-1453636373-93818738 --targetdir=$PREFIX/simple-dc
 
-testit "newuser" $PYTHON ./setup/newuser --configfile=$PREFIX/simple-dc/etc/smb.conf testuser testpass
+CONFIG="--configfile=$PREFIX/simple-dc/etc/smb.conf"
+
+testit "newuser" $PYTHON ./setup/newuser $CONFIG testuser testpass
+
+# check the enable account script
+testit "enableaccount" $PYTHON ./setup/enableaccount $CONFIG testuser
+
+# check the enable account script
+testit "setpassword" $PYTHON ./setup/setpassword $CONFIG testuser --newpassword=testpass2
+
+# check the setexpiry script
+testit "noexpiry" $PYTHON ./setup/setexpiry $CONFIG testuser --noexpiry
+testit "expiry" $PYTHON ./setup/setexpiry $CONFIG testuser --days=7
 
 exit $failed