Remove unused arguments from reg_open_local().
authorJelmer Vernooij <jelmer@samba.org>
Tue, 15 Apr 2008 23:32:54 +0000 (01:32 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 15 Apr 2008 23:32:54 +0000 (01:32 +0200)
(This used to be commit fee7ea7080ec40182efc6ffe57b267444eb9389a)

source4/lib/registry/local.c
source4/lib/registry/registry.h
source4/lib/registry/registry.i
source4/lib/registry/registry.py
source4/lib/registry/registry_wrap.c
source4/lib/registry/samba.c
source4/lib/registry/tests/registry.c
source4/lib/registry/tools/common.c
source4/lib/registry/tools/regdiff.c

index 5bf2d86588f97987a33b4641143418f6fe142fe1..903bbb0b80a9d0850a349e70506d172d67551bd3 100644 (file)
@@ -37,9 +37,6 @@ struct registry_local {
                struct hive_key *key;
                struct mountpoint *prev, *next;
        } *mountpoints;
-
-       struct auth_session_info *session_info;
-       struct cli_credentials *credentials;
 };
 
 struct local_key {
@@ -294,9 +291,7 @@ const static struct registry_operations local_ops = {
        .get_key_info = local_get_key_info,
 };
 
-WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx,
-                     struct auth_session_info *session_info,
-                     struct cli_credentials *credentials)
+WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx)
 {
        struct registry_local *ret = talloc_zero(mem_ctx,
                                                 struct registry_local);
@@ -304,8 +299,6 @@ WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx,
        W_ERROR_HAVE_NO_MEMORY(ret);
 
        ret->ops = &local_ops;
-       ret->session_info = session_info;
-       ret->credentials = credentials;
 
        *ctx = (struct registry_context *)ret;
 
index a86294bf4656c1ab996a6c9d027d093c53560089..d4c4a89c2097e9152d958955c21bef13bcaa7384 100644 (file)
@@ -355,9 +355,7 @@ struct loadparm_context;
  * Open the locally defined registry.
  */
 WERROR reg_open_local(TALLOC_CTX *mem_ctx,
-                     struct registry_context **ctx,
-                     struct auth_session_info *session_info,
-                     struct cli_credentials *credentials);
+                     struct registry_context **ctx);
 
 WERROR reg_open_samba(TALLOC_CTX *mem_ctx,
                      struct registry_context **ctx,
index 8ab402d57d133d8929cc6cf9d8eee3bf937c0e4c..1b3c1c281a824421e4dfda0b21adc266a4a3641f 100644 (file)
@@ -57,9 +57,7 @@ const char *str_regtype(int type);
 }
 
 %rename(Registry) reg_open_local;
-WERROR reg_open_local(TALLOC_CTX *parent_ctx, struct registry_context **ctx,
-                      struct auth_session_info *session_info,
-                      struct cli_credentials *credentials);
+WERROR reg_open_local(TALLOC_CTX *parent_ctx, struct registry_context **ctx);
 
 %typemap(in,noblock=1) const char ** {
   /* Check if is a list */
index bf8ac604981537d0958b5aed2b430942c4a7bd20..9dab309f33ffc25e6b9d2b374e950a1e0a832f44 100644 (file)
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.33
+# Version 1.3.35
 #
 # Don't modify this file, modify the SWIG interface instead.
 
index da09ecbe08dc68abda707c2930600646aaa13699..4879b2e144d3bc03f6a5064a19491636f4c765d5 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.33
+ * Version 1.3.35
  * 
  * 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
 
 /* This should only be incremented when either the layout of swig_type_info changes,
    or for whatever reason, the runtime changes incompatibly */
-#define SWIG_RUNTIME_VERSION "3"
+#define SWIG_RUNTIME_VERSION "4"
 
 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
 #ifdef SWIG_TYPE_TABLE
 
 /* Flags for pointer conversions */
 #define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
 
 /* Flags for new pointer objects */
 #define SWIG_POINTER_OWN           0x1
@@ -301,10 +302,10 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
 extern "C" {
 #endif
 
-typedef void *(*swig_converter_func)(void *);
+typedef void *(*swig_converter_func)(void *, int *);
 typedef struct swig_type_info *(*swig_dycast_func)(void **);
 
-/* Structure to store inforomation on one type */
+/* Structure to store information on one type */
 typedef struct swig_type_info {
   const char             *name;                        /* mangled name of this type */
   const char             *str;                 /* human readable name of this type */
@@ -431,8 +432,8 @@ SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
   Cast a pointer up an inheritance hierarchy
 */
 SWIGRUNTIMEINLINE void *
-SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
-  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
 }
 
 /* 
@@ -856,7 +857,7 @@ SWIG_Python_AddErrorMsg(const char* mesg)
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
-    PyErr_Format(PyExc_RuntimeError, mesg);
+    PyErr_SetString(PyExc_RuntimeError, mesg);
   }
 }
 
@@ -1416,7 +1417,7 @@ PySwigObject_dealloc(PyObject *v)
 {
   PySwigObject *sobj = (PySwigObject *) v;
   PyObject *next = sobj->next;
-  if (sobj->own) {
+  if (sobj->own == SWIG_POINTER_OWN) {
     swig_type_info *ty = sobj->ty;
     PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
     PyObject *destroy = data ? data->destroy : 0;
@@ -1434,12 +1435,13 @@ PySwigObject_dealloc(PyObject *v)
        res = ((*meth)(mself, v));
       }
       Py_XDECREF(res);
-    } else {
-      const char *name = SWIG_TypePrettyName(ty);
+    } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
-      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
-#endif
+    else {
+      const char *name = SWIG_TypePrettyName(ty);
+      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
     }
+#endif
   } 
   Py_XDECREF(next);
   PyObject_DEL(v);
@@ -1944,7 +1946,7 @@ SWIG_Python_GetSwigThis(PyObject *pyobj)
 
 SWIGRUNTIME int
 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
-  if (own) {
+  if (own == SWIG_POINTER_OWN) {
     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
     if (sobj) {
       int oldown = sobj->own;
@@ -1965,6 +1967,8 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int
     return SWIG_OK;
   } else {
     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+    if (own)
+      *own = 0;
     while (sobj) {
       void *vptr = sobj->ptr;
       if (ty) {
@@ -1978,7 +1982,15 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int
          if (!tc) {
            sobj = (PySwigObject *)sobj->next;
          } else {
-           if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
+           if (ptr) {
+              int newmemory = 0;
+              *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+              if (newmemory == SWIG_CAST_NEW_MEMORY) {
+                assert(own);
+                if (own)
+                  *own = *own | SWIG_CAST_NEW_MEMORY;
+              }
+            }
            break;
          }
        }
@@ -1988,7 +2000,8 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int
       }
     }
     if (sobj) {
-      if (own) *own = sobj->own;
+      if (own)
+        *own = *own | sobj->own;
       if (flags & SWIG_POINTER_DISOWN) {
        sobj->own = 0;
       }
@@ -2053,8 +2066,13 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
     }
     if (ty) {
       swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
-      if (!tc) return SWIG_ERROR;
-      *ptr = SWIG_TypeCast(tc,vptr);
+      if (tc) {
+        int newmemory = 0;
+        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+        assert(!newmemory); /* newmemory handling not yet implemented */
+      } else {
+        return SWIG_ERROR;
+      }
     } else {
       *ptr = vptr;
     }
@@ -2514,7 +2532,7 @@ static swig_module_info swig_module = {swig_types, 25, 0, 0, 0, 0};
 
 #define SWIG_name    "_registry"
 
-#define SWIGVERSION 0x010333 
+#define SWIGVERSION 0x010335 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2910,44 +2928,17 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_Registry(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_Registry(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   TALLOC_CTX *arg1 = (TALLOC_CTX *) 0 ;
   struct registry_context **arg2 = (struct registry_context **) 0 ;
-  struct auth_session_info *arg3 = (struct auth_session_info *) 0 ;
-  struct cli_credentials *arg4 = (struct cli_credentials *) 0 ;
   WERROR result;
   struct registry_context *tmp2 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  char *  kwnames[] = {
-    (char *) "session_info",(char *) "credentials", NULL 
-  };
   
-  arg3 = NULL;
-  arg4 = NULL;
   arg1 = NULL;
   arg2 = &tmp2;
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"|OO:Registry",kwnames,&obj0,&obj1)) SWIG_fail;
-  if (obj0) {
-    res3 = SWIG_ConvertPtr(obj0, &argp3,SWIGTYPE_p_auth_session_info, 0 |  0 );
-    if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Registry" "', argument " "3"" of type '" "struct auth_session_info *""'"); 
-    }
-    arg3 = (struct auth_session_info *)(argp3);
-  }
-  if (obj1) {
-    res4 = SWIG_ConvertPtr(obj1, &argp4,SWIGTYPE_p_cli_credentials, 0 |  0 );
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "Registry" "', argument " "4"" of type '" "struct cli_credentials *""'"); 
-    }
-    arg4 = (struct cli_credentials *)(argp4);
-  }
-  result = reg_open_local(arg1,arg2,arg3,arg4);
+  if (!SWIG_Python_UnpackTuple(args,"Registry",0,0,0)) SWIG_fail;
+  result = reg_open_local(arg1,arg2);
   if (!W_ERROR_IS_OK(result)) {
     PyObject *obj = Py_BuildValue((char *)"(i,s)", W_ERROR_V(result), win_errstr(result));
     PyErr_SetObject(PyExc_RuntimeError, obj);
@@ -3410,7 +3401,10 @@ check_1:
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'reg_mount_hive'.\n  Possible C/C++ prototypes are:\n""    mount_hive(reg *,struct hive_key *,uint32_t,char const **)\n""    mount_hive(reg *,struct hive_key *,char const *)\n");
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'reg_mount_hive'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mount_hive(reg *,struct hive_key *,uint32_t,char const **)\n"
+    "    mount_hive(reg *,struct hive_key *,char const *)\n");
   return NULL;
 }
 
@@ -3420,7 +3414,7 @@ SWIGINTERN PyObject *_wrap_new_reg(PyObject *SWIGUNUSEDPARM(self), PyObject *arg
   reg *result = 0 ;
   
   if (!SWIG_Python_UnpackTuple(args,"new_reg",0,0,0)) SWIG_fail;
-  result = (reg *)(reg *) calloc(1, sizeof(reg));
+  result = (reg *)calloc(1, sizeof(reg));
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_registry_context, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
@@ -3765,7 +3759,7 @@ fail:
 static PyMethodDef SwigMethods[] = {
         { (char *)"reg_get_predef_name", (PyCFunction) _wrap_reg_get_predef_name, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"str_regtype", (PyCFunction) _wrap_str_regtype, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"Registry", (PyCFunction) _wrap_Registry, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"Registry", (PyCFunction)_wrap_Registry, METH_NOARGS, NULL},
         { (char *)"reg_get_predefined_key_by_name", (PyCFunction) _wrap_reg_get_predefined_key_by_name, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"reg_key_del_abs", (PyCFunction) _wrap_reg_key_del_abs, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"reg_get_predefined_key", (PyCFunction) _wrap_reg_get_predefined_key, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -3962,7 +3956,7 @@ SWIGRUNTIME void
 SWIG_InitializeModule(void *clientdata) {
   size_t i;
   swig_module_info *module_head, *iter;
-  int found;
+  int found, init;
   
   clientdata = clientdata;
   
@@ -3972,6 +3966,9 @@ SWIG_InitializeModule(void *clientdata) {
     swig_module.type_initial = swig_type_initial;
     swig_module.cast_initial = swig_cast_initial;
     swig_module.next = &swig_module;
+    init = 1;
+  } else {
+    init = 0;
   }
   
   /* Try and load any already created modules */
@@ -4000,6 +3997,12 @@ SWIG_InitializeModule(void *clientdata) {
     module_head->next = &swig_module;
   }
   
+  /* When multiple interpeters are used, a module could have already been initialized in
+       a different interpreter, but not yet have a pointer in this interpreter.
+       In this case, we do not want to continue adding types... everything should be
+       set up already */
+  if (init == 0) return;
+  
   /* Now work on filling in swig_module.types */
 #ifdef SWIGRUNTIME_DEBUG
   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
index 599385e73c210819a59d539aae946966fe4421ed..59693dde8e60ea8c75df87f2dcf13e2eaf895383 100644 (file)
@@ -61,7 +61,7 @@ _PUBLIC_ WERROR reg_open_samba(TALLOC_CTX *mem_ctx,
 {
        WERROR result;
 
-       result = reg_open_local(mem_ctx, ctx, session_info, credentials);
+       result = reg_open_local(mem_ctx, ctx);
        if (!W_ERROR_IS_OK(result)) {
                return result;
        }
index b19a6abffb91bdf9a7e638115547a662df8f7d46..33512a0c8c472400e6947a07ab6b5028011184fd 100644 (file)
@@ -517,7 +517,7 @@ static bool setup_local_registry(struct torture_context *tctx, void **data)
        struct hive_key *hive_key;
        const char *filename;
 
-       error = reg_open_local(tctx, &rctx, NULL, NULL);
+       error = reg_open_local(tctx, &rctx);
        torture_assert_werr_ok(tctx, error, "Opening local registry failed");
 
        status = torture_temp_dir(tctx, "registry-local", &tempdir);
index cec0f8b9066c31f65bccff63f0a786053ea0d355..52f3c6f551e239ba6538fd586ee2eb93887383d2 100644 (file)
@@ -57,7 +57,7 @@ struct registry_key *reg_common_open_file(const char *path,
                return NULL;
        }
 
-       error = reg_open_local(NULL, &h, NULL, creds);
+       error = reg_open_local(NULL, &h);
        if (!W_ERROR_IS_OK(error)) {
                fprintf(stderr, "Unable to initialize local registry: %s\n",
                        win_errstr(error));
index c94380efd2b0be46febaedbb11a81f953df77b32..69fcfc2493142fc375c604bf0d206a382d945df6 100644 (file)
@@ -48,7 +48,7 @@ static struct registry_context *open_backend(poptContext pc,
                                        remote_host, NULL);
                break;
        case REG_NULL:
-               error = reg_open_local(NULL, &ctx, NULL, cmdline_credentials);
+               error = reg_open_local(NULL, &ctx);
                break;
        }